Bug 1358921: Lazily load Feeds.jsm when first needed. r=florian draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 23 Apr 2017 13:02:49 -0700
changeset 571718 d76b554b611ac63955052bca09dff68f53bce99c
parent 571717 940bcb1eb94b3ccc3481e3a8bcbaf8d0b8bad0a2
child 571719 acc8b3ffd7a3399526a53f1af8d8643437ad1b2c
push id56891
push usermaglione.k@gmail.com
push dateWed, 03 May 2017 05:58:28 +0000
reviewersflorian
bugs1358921
milestone55.0a1
Bug 1358921: Lazily load Feeds.jsm when first needed. r=florian MozReview-Commit-ID: JLTn01mmDO5
browser/components/nsBrowserGlue.js
browser/modules/Feeds.jsm
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -122,28 +122,32 @@ XPCOMUtils.defineLazyGetter(this, "gBrow
 
 const global = this;
 
 const listeners = {
   observers: {
   },
 
   ppmm: {
+    "FeedConverter:addLiveBookmark": ["Feeds"],
+    "WCCR:setAutoHandler": ["Feeds"],
     "webrtc:UpdateGlobalIndicators": ["webrtcUI"],
     "webrtc:UpdatingIndicators": ["webrtcUI"],
   },
 
   mm: {
     "AboutHome:MaybeShowAutoMigrationUndoNotification": ["AboutHome"],
     "AboutHome:RequestUpdate": ["AboutHome"],
     "Content:Click": ["ContentClick"],
     "ContentSearch": ["ContentSearch"],
     "FormValidation:ShowPopup": ["FormValidationHandler"],
     "FormValidation:HidePopup": ["FormValidationHandler"],
     "Prompt:Open": ["RemotePrompt"],
+    "WCCR:registerProtocolHandler": ["Feeds"],
+    "WCCR:registerContentHandler": ["Feeds"],
     "rtcpeer:CancelRequest": ["webrtcUI"],
     "rtcpeer:Request": ["webrtcUI"],
     "webrtc:CancelRequest": ["webrtcUI"],
     "webrtc:Request": ["webrtcUI"],
     "webrtc:StopRecording": ["webrtcUI"],
     "webrtc:UpdateBrowserIndicators": ["webrtcUI"],
   },
 
@@ -583,17 +587,16 @@ BrowserGlue.prototype = {
     NewTabUtils.init();
     NewTabUtils.links.addProvider(DirectoryLinksProvider);
     AboutNewTab.init();
 
     SessionStore.init();
     BrowserUsageTelemetry.init();
     BrowserUITelemetry.init();
 
-    Feeds.init();
     ContentPrefServiceParent.init();
 
     LoginManagerParent.init();
     ReaderParent.init();
 
     SelfSupportBackend.init();
 
     if (AppConstants.INSTALL_COMPACT_THEMES) {
--- a/browser/modules/Feeds.jsm
+++ b/browser/modules/Feeds.jsm
@@ -12,25 +12,17 @@ Components.utils.import("resource://gre/
 XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
                                   "resource://gre/modules/BrowserUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow",
                                   "resource:///modules/RecentWindow.jsm");
 
 const { interfaces: Ci, classes: Cc } = Components;
 
 this.Feeds = {
-  init() {
-    let mm = Cc["@mozilla.org/globalmessagemanager;1"].getService(Ci.nsIMessageListenerManager);
-    mm.addMessageListener("WCCR:registerProtocolHandler", this);
-    mm.addMessageListener("WCCR:registerContentHandler", this);
-
-    Services.ppmm.addMessageListener("WCCR:setAutoHandler", this);
-    Services.ppmm.addMessageListener("FeedConverter:addLiveBookmark", this);
-  },
-
+  // Listeners are added in nsBrowserGlue.js
   receiveMessage(aMessage) {
     let data = aMessage.data;
     switch (aMessage.name) {
       case "WCCR:registerProtocolHandler": {
         let registrar = Cc["@mozilla.org/embeddor.implemented/web-content-handler-registrar;1"].
                           getService(Ci.nsIWebContentHandlerRegistrar);
         registrar.registerProtocolHandler(data.protocol, data.uri, data.title,
                                           aMessage.target);