diff --git a/common/content/completion.js b/common/content/completion.js index 60dc0af6..c3f349be 100644 --- a/common/content/completion.js +++ b/common/content/completion.js @@ -1651,7 +1651,9 @@ function Completion() //{{{ context.anchored = false; context.title = ["Firefox Preference", "Value"]; context.keys = { text: function (item) item, description: function (item) options.getPref(item) }; - context.completions = service["pref"].getChildList("", { value: 0 }); + context.completions = Cc["@mozilla.org/preferences-service;1"] + .getService(Ci.nsIPrefBranch) + .getChildList("", { value: 0 }); }, search: function search(context, noSuggest) diff --git a/common/content/events.js b/common/content/events.js index 7c7d486d..226d4483 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -1644,8 +1644,9 @@ function Events() //{{{ prefObserver: { register: function () { - this._branch = service["pref"].getBranch("") // better way to monitor all changes? - .QueryInterface(Ci.nsIPrefBranch2); + const prefService = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService); + this._branch = prefService.getBranch(""); // better way to monitor all changes? + this._branch.QueryInterface(Ci.nsIPrefBranch2); this._branch.addObserver("", this, false); }, diff --git a/common/content/io.js b/common/content/io.js index de7eb73e..1b7135e0 100644 --- a/common/content/io.js +++ b/common/content/io.js @@ -67,6 +67,7 @@ function IO() //{{{ const EXTENSION_NAME = config.name.toLowerCase(); // "vimperator" or "muttator" const downloadManager = Cc["@mozilla.org/download-manager;1"].createInstance(Ci.nsIDownloadManager); + const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); var processDir = service["directory"].get("CurWorkD", Ci.nsIFile); var cwd = processDir; @@ -777,7 +778,7 @@ lookup: liberator.echomsg("sourcing " + filename.quote(), 2); let str = ioManager.readFile(file); - let uri = service["io"].newFileURI(file); + let uri = ioService.newFileURI(file); // handle pure javascript files specially if (/\.js$/.test(filename)) diff --git a/common/content/liberator.js b/common/content/liberator.js index fd795a06..d3c6e5d3 100644 --- a/common/content/liberator.js +++ b/common/content/liberator.js @@ -1053,7 +1053,8 @@ const liberator = (function () //{{{ if (typeof msg == "object") msg = util.objectToString(msg, false); - service["console"].logStringMessage(config.name.toLowerCase() + ": " + msg); + const consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService); + consoleService.logStringMessage(config.name.toLowerCase() + ": " + msg); }, // open one or more URLs diff --git a/common/content/options.js b/common/content/options.js index 1e7b215e..48862381 100644 --- a/common/content/options.js +++ b/common/content/options.js @@ -303,6 +303,8 @@ function Options() //{{{ //////////////////////////////////////////////////////////////////////////////// ////////////////////// PRIVATE SECTION ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////{{{ + + const prefService = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); const SAVED = "liberator.saved."; @@ -330,27 +332,27 @@ function Options() //{{{ prefContexts[prefContexts.length - 1][name] = val; } - let type = service["pref"].getPrefType(name); + let type = prefService.getPrefType(name); switch (typeof value) { case "string": - if (type == service["pref"].PREF_INVALID || type == service["pref"].PREF_STRING) - service["pref"].setCharPref(name, value); - else if (type == service["pref"].PREF_INT) + if (type == prefService.PREF_INVALID || type == prefService.PREF_STRING) + prefService.setCharPref(name, value); + else if (type == prefService.PREF_INT) liberator.echoerr("E521: Number required after =: " + name + "=" + value); else liberator.echoerr("E474: Invalid argument: " + name + "=" + value); break; case "number": - if (type == service["pref"].PREF_INVALID || type == service["pref"].PREF_INT) - service["pref"].setIntPref(name, value); + if (type == prefService.PREF_INVALID || type == prefService.PREF_INT) + prefService.setIntPref(name, value); else liberator.echoerr("E474: Invalid argument: " + name + "=" + value); break; case "boolean": - if (type == service["pref"].PREF_INVALID || type == service["pref"].PREF_BOOL) - service["pref"].setBoolPref(name, value); - else if (type == service["pref"].PREF_INT) + if (type == prefService.PREF_INVALID || type == prefService.PREF_BOOL) + prefService.setBoolPref(name, value); + else if (type == prefService.PREF_INT) liberator.echoerr("E521: Number required after =: " + name + "=" + value); else liberator.echoerr("E474: Invalid argument: " + name + "=" + value); @@ -366,22 +368,22 @@ function Options() //{{{ if (forcedDefault != null) // this argument sets defaults for non-user settable options (like extensions.history.comp_history) defaultValue = forcedDefault; - let branch = defaultBranch ? service["pref"].getDefaultBranch("") : service["pref"]; - let type = service["pref"].getPrefType(name); + let branch = defaultBranch ? prefService.getDefaultBranch("") : prefService; + let type = prefService.getPrefType(name); try { switch (type) { - case service["pref"].PREF_STRING: + case prefService.PREF_STRING: let value = branch.getComplexValue(name, Ci.nsISupportsString).data; // try in case it's a localized string (will throw an exception if not) - if (!service["pref"].prefIsLocked(name) && !service["pref"].prefHasUserValue(name) && + if (!prefService.prefIsLocked(name) && !prefService.prefHasUserValue(name) && /^chrome:\/\/.+\/locale\/.+\.properties/.test(value)) value = branch.getComplexValue(name, Ci.nsIPrefLocalizedString).data; return value; - case service["pref"].PREF_INT: + case prefService.PREF_INT: return branch.getIntPref(name); - case service["pref"].PREF_BOOL: + case prefService.PREF_BOOL: return branch.getBoolPref(name); default: return defaultValue; @@ -786,7 +788,7 @@ function Options() //{{{ { completion.setFunctionCompleter(options.get, [function () ([o.name, o.description] for (o in options))]); completion.setFunctionCompleter([options.getPref, options.safeSetPref, options.setPref, options.resetPref, options.invertPref], - [function () service["pref"].getChildList("", { value: 0 }) + [function () prefService.getChildList("", { value: 0 }) .map(function (pref) [pref, ""])]); }); @@ -888,12 +890,12 @@ function Options() //{{{ if (!filter) filter = ""; - let prefArray = service["pref"].getChildList("", { value: 0 }); + let prefArray = prefService.getChildList("", { value: 0 }); prefArray.sort(); let prefs = function () { for each (let pref in prefArray) { - let userValue = service["pref"].prefHasUserValue(pref); + let userValue = prefService.prefHasUserValue(pref); if (onlyNonDefault && !userValue || pref.indexOf(filter) == -1) continue; @@ -988,7 +990,7 @@ function Options() //{{{ { try { - return service["pref"].clearUserPref(name); + return prefService.clearUserPref(name); } catch (e) { @@ -999,7 +1001,7 @@ function Options() //{{{ // this works only for booleans invertPref: function (name) { - if (service["pref"].getPrefType(name) == service["pref"].PREF_BOOL) + if (prefService.getPrefType(name) == prefService.PREF_BOOL) this.setPref(name, !this.getPref(name)); else liberator.echoerr("E488: Trailing characters: " + name + "!"); diff --git a/common/content/service.js b/common/content/service.js index 084a72b5..26fd1ab6 100644 --- a/common/content/service.js +++ b/common/content/service.js @@ -1,35 +1,34 @@ /** @scope modules */ -let (cc = function (class, iface, meth) { try { return Cc[class][meth || "getService"](iface) } catch (e) {} }) +let (cc = function (class, iface, meth) { try { return Components.classes[class][meth || "getService"](iface) } catch (e) {} }) { + // var Ci = Components.interfaces; // quick fix for muttator, will change/remove service.js anyway after the vacation + /** * Cached XPCOM services and instances. * * @singleton */ const service = { - appStartup: cc("@mozilla.org/toolkit/app-startup;1", Ci.nsIAppStartup), - autoCompleteSearch: cc("@mozilla.org/browser/global-history;2", Ci.nsIAutoCompleteSearch), - browserSearch: cc("@mozilla.org/browser/search-service;1", Ci.nsIBrowserSearchService), - cache: cc("@mozilla.org/network/cache-service;1", Ci.nsICacheService), - console: cc("@mozilla.org/consoleservice;1", Ci.nsIConsoleService), - directory: cc("@mozilla.org/file/directory_service;1", Ci.nsIProperties), - environment: cc("@mozilla.org/process/environment;1", Ci.nsIEnvironment), - extensionManager: cc("@mozilla.org/extensions/manager;1", Ci.nsIExtensionManager), - io: cc("@mozilla.org/network/io-service;1", Ci.nsIIOService).QueryInterface(Ci.nsIIOService2), - json: cc("@mozilla.org/dom/json;1", Ci.nsIJSON, "createInstance"), - observer: cc("@mozilla.org/observer-service;1", Ci.nsIObserverService), - profile: cc("@mozilla.org/toolkit/profile-service;1", Ci.nsIToolkitProfileService), - pref: cc("@mozilla.org/preferences-service;1", Ci.nsIPrefService) - .QueryInterface(Ci.nsIPrefBranch).QueryInterface(Ci.nsIPrefBranch2), - sessionStore: cc("@mozilla.org/browser/sessionstore;1", Ci.nsISessionStore), - subscriptLoader: cc("@mozilla.org/moz/jssubscript-loader;1", Ci.mozIJSSubScriptLoader), - threadManager: cc("@mozilla.org/thread-manager;1", Ci.nsIThreadManager), - windowMediator: cc("@mozilla.org/appshell/window-mediator;1", Ci.nsIWindowMediator), - windowWatcher: cc("@mozilla.org/embedcomp/window-watcher;1", Ci.nsIWindowWatcher), - getFile: function () Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile), - getFind: function () Cc["@mozilla.org/embedcomp/rangefind;1"].createInstance(Ci.nsIFind), - getProcess: function () Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess) + appStartup: cc("@mozilla.org/toolkit/app-startup;1", Components.interfaces.nsIAppStartup), + autoCompleteSearch: cc("@mozilla.org/browser/global-history;2", Components.interfaces.nsIAutoCompleteSearch), + browserSearch: cc("@mozilla.org/browser/search-service;1", Components.interfaces.nsIBrowserSearchService), + cache: cc("@mozilla.org/network/cache-service;1", Components.interfaces.nsICacheService), + console: cc("@mozilla.org/consoleservice;1", Components.interfaces.nsIConsoleService), + directory: cc("@mozilla.org/file/directory_service;1", Components.interfaces.nsIProperties), + environment: cc("@mozilla.org/process/environment;1", Components.interfaces.nsIEnvironment), + extensionManager: cc("@mozilla.org/extensions/manager;1", Components.interfaces.nsIExtensionManager), + json: cc("@mozilla.org/dom/json;1", Components.interfaces.nsIJSON, "createInstance"), + observer: cc("@mozilla.org/observer-service;1", Components.interfaces.nsIObserverService), + profile: cc("@mozilla.org/toolkit/profile-service;1", Components.interfaces.nsIToolkitProfileService), + sessionStore: cc("@mozilla.org/browser/sessionstore;1", Components.interfaces.nsISessionStore), + subscriptLoader: cc("@mozilla.org/moz/jssubscript-loader;1", Components.interfaces.mozIJSSubScriptLoader), + threadManager: cc("@mozilla.org/thread-manager;1", Components.interfaces.nsIThreadManager), + windowMediator: cc("@mozilla.org/appshell/window-mediator;1", Components.interfaces.nsIWindowMediator), + windowWatcher: cc("@mozilla.org/embedcomp/window-watcher;1", Components.interfaces.nsIWindowWatcher), + getFile: function () Cc["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile), + getFind: function () Cc["@mozilla.org/embedcomp/rangefind;1"].createInstance(Components.interfaces.nsIFind), + getProcess: function () Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess) }; }; diff --git a/common/content/style.js b/common/content/style.js index 2459dbb4..6bdcf232 100644 --- a/common/content/style.js +++ b/common/content/style.js @@ -248,8 +248,8 @@ function Styles(name, store, serial) const util = modules.util; const sleep = liberator.sleep; const storage = modules.storage; - const consoleService = service["console"]; - const ios = service["io"]; + const consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService); + const ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); const namespace = '@namespace html "' + XHTML + '";\n' + '@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";\n' + diff --git a/common/content/util.js b/common/content/util.js index 41b9d3f3..b6cf22f4 100644 --- a/common/content/util.js +++ b/common/content/util.js @@ -335,6 +335,12 @@ const util = { //{{{ return ary; }, + newURI: function (url) + { + const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); + return ioService.newURI(url, null, null); + }, + // if color = true it uses HTML markup to color certain items objectToString: function objectToString(object, color) { diff --git a/vimperator/content/bookmarks.js b/vimperator/content/bookmarks.js index 30747f9c..e0d525ee 100644 --- a/vimperator/content/bookmarks.js +++ b/vimperator/content/bookmarks.js @@ -60,7 +60,6 @@ function Bookmarks() //{{{ const bookmarksService = PlacesUtils.bookmarks; const taggingService = PlacesUtils.tagging; const searchService = service.browserSearch; - const ioService = service.io; const faviconService = Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.nsIFaviconService); const Bookmark = new Struct("url", "title", "icon", "keyword", "tags", "id"); @@ -91,7 +90,7 @@ function Bookmarks() //{{{ function loadBookmark(node) { - let uri = ioService.newURI(node.uri, null, null); + let uri = util.newURI(node.uri); let keyword = bookmarksService.getKeywordForBookmark(node.itemId); let tags = taggingService.getTagsForURI(uri, {}) || []; @@ -199,7 +198,7 @@ function Bookmarks() //{{{ if (bookmark) { if (property == "tags") - value = taggingService.getTagsForURI(ioService.newURI(bookmark.url, null, null), {}); + value = taggingService.getTagsForURI(util.newURI(bookmark.url), {}); if (property in bookmark) bookmark[property] = value; storage.fireEvent(name, "change", itemId); @@ -220,7 +219,7 @@ function Bookmarks() //{{{ { try { - return faviconService.getFaviconImageForPage(ioService.newURI(uri, null, null)).spec; + return faviconService.getFaviconImageForPage(util.newURI(uri)).spec; } catch (e) { @@ -487,7 +486,7 @@ function Bookmarks() //{{{ { try { - var uri = ioService.newURI(url, null, null); + var uri = util.newURI(url); return (bookmarksService.getBookmarkedURIFor(uri) != null); } catch (e) @@ -505,7 +504,7 @@ function Bookmarks() //{{{ var i = 0; try { - var uri = ioService.newURI(url, null, null); + var uri = util.newURI(url); var count = {}; var bmarks = bookmarksService.getBookmarkIdsForURI(uri, count); diff --git a/vimperator/content/config.js b/vimperator/content/config.js index a2baffe4..e69b2eec 100644 --- a/vimperator/content/config.js +++ b/vimperator/content/config.js @@ -427,13 +427,15 @@ const config = { //{{{ { setter: function (value) { - service.io.offline = !value; - gPrefService.setBoolPref("browser.offline", service.io.offline); + const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService2); + ioService.offline = !value; + gPrefService.setBoolPref("browser.offline", ioService.offline); return value; }, getter: function () { - return service.io.offline; + const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService2); + return ioService.offline; } });