rem: directory_service = locator_service.QueryInterface(nsIProperties); 
add: directory_service = directory_service.QueryInterface(Components.interfaces.nsIProperties); 
context: function getSidebarDatasourceURI(panels_file_id){    try     {        /* use the fileLocator to look in the profile directory          * to find 'panels.rdf', which is the         * database of the user's currently selected panels. */        var directory_service = Components.classes[DIR_SERV_PROGID].getService();        if (directory_service)            directory_service = locator_service.QueryInterface(nsIProperties);        /* if <profile>/panels.rdf doesn't exist, get will copy         *bin/defaults/profile/panels.rdf to <profile>/panels.rdf */        var sidebar_file = directory_service.get(panels_file_id, nsIFile);        if (!sidebar_file.exists())        {            /* this should not happen, as GetFileLocation() should copy             * defaults/panels.rdf to the users profile directory */            debug("sidebar file does not exist");            return null;        }        var file_url = Components.classes[STD_URL_PROGID].createInstance(nsIFileURL);        file_url.file = sidebar_file;        debug("sidebar uri is " + file_url.spec);        return file_url.spec;    }    catch (ex)    {        /* this should not happen */        debug("caught " + ex + " getting sidebar datasource uri");        return null;    }}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/c318b023a9caab4e12de80cf0501fd409fedbda1/nsSidebar.js/clean/xpfe/components/sidebar/src/nsSidebar.js