Bug 1358921: Lazily load AboutHome.jsm when first needed. r=florian draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 23 Apr 2017 12:48:38 -0700
changeset 571713 07debf9e9e31065605306362bd57245199ed8c24
parent 571712 698e702af3893bbbcf544eeb2ef1622072a0b67c
child 571714 1abc83b3860429e6439513f0aa6ca26358639681
push id56891
push usermaglione.k@gmail.com
push dateWed, 03 May 2017 05:58:28 +0000
reviewersflorian
bugs1358921
milestone55.0a1
Bug 1358921: Lazily load AboutHome.jsm when first needed. r=florian MozReview-Commit-ID: 6pzUBmzoFDp
browser/components/nsBrowserGlue.js
browser/modules/AboutHome.jsm
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -39,17 +39,17 @@ XPCOMUtils.defineLazyServiceGetter(this,
 /**
  * IF YOU ADD OR REMOVE FROM THIS LIST, PLEASE UPDATE THE LIST ABOVE AS WELL.
  * XXX Bug 1325373 is for making eslint detect these automatically.
  */
 
 let initializedModules = {};
 
 [
-  ["AboutHome", "resource:///modules/AboutHome.jsm"],
+  ["AboutHome", "resource:///modules/AboutHome.jsm", "init"],
   ["AboutNewTab", "resource:///modules/AboutNewTab.jsm"],
   ["AddonManager", "resource://gre/modules/AddonManager.jsm"],
   ["AsyncShutdown", "resource://gre/modules/AsyncShutdown.jsm"],
   ["AutoCompletePopup", "resource://gre/modules/AutoCompletePopup.jsm"],
   ["BookmarkHTMLUtils", "resource://gre/modules/BookmarkHTMLUtils.jsm"],
   ["BookmarkJSONUtils", "resource://gre/modules/BookmarkJSONUtils.jsm"],
   ["BrowserUITelemetry", "resource:///modules/BrowserUITelemetry.jsm"],
   ["BrowserUsageTelemetry", "resource:///modules/BrowserUsageTelemetry.jsm"],
@@ -127,16 +127,18 @@ const listeners = {
   },
 
   ppmm: {
     "webrtc:UpdateGlobalIndicators": ["webrtcUI"],
     "webrtc:UpdatingIndicators": ["webrtcUI"],
   },
 
   mm: {
+    "AboutHome:MaybeShowAutoMigrationUndoNotification": ["AboutHome"],
+    "AboutHome:RequestUpdate": ["AboutHome"],
     "rtcpeer:CancelRequest": ["webrtcUI"],
     "rtcpeer:Request": ["webrtcUI"],
     "webrtc:CancelRequest": ["webrtcUI"],
     "webrtc:Request": ["webrtcUI"],
     "webrtc:StopRecording": ["webrtcUI"],
     "webrtc:UpdateBrowserIndicators": ["webrtcUI"],
   },
 
@@ -567,18 +569,16 @@ BrowserGlue.prototype = {
 
     // handle any UI migration
     this._migrateUI();
 
     listeners.init();
 
     PageThumbs.init();
 
-    AboutHome.init();
-
     DirectoryLinksProvider.init();
     NewTabUtils.init();
     NewTabUtils.links.addProvider(DirectoryLinksProvider);
     AboutNewTab.init();
 
     SessionStore.init();
     BrowserUsageTelemetry.init();
     BrowserUITelemetry.init();
--- a/browser/modules/AboutHome.jsm
+++ b/browser/modules/AboutHome.jsm
@@ -95,28 +95,25 @@ var AboutHome = {
   MESSAGES: [
     "AboutHome:RestorePreviousSession",
     "AboutHome:Downloads",
     "AboutHome:Bookmarks",
     "AboutHome:History",
     "AboutHome:Addons",
     "AboutHome:Sync",
     "AboutHome:Settings",
-    "AboutHome:RequestUpdate",
-    "AboutHome:MaybeShowAutoMigrationUndoNotification",
   ],
 
   init() {
-    let mm = Cc["@mozilla.org/globalmessagemanager;1"].getService(Ci.nsIMessageListenerManager);
-
     for (let msg of this.MESSAGES) {
-      mm.addMessageListener(msg, this);
+      Services.mm.addMessageListener(msg, this);
     }
   },
 
+  // Additional listeners are registered in nsBrowserGlue.js
   receiveMessage(aMessage) {
     let window = aMessage.target.ownerGlobal;
 
     switch (aMessage.name) {
       case "AboutHome:RestorePreviousSession":
         let ss = Cc["@mozilla.org/browser/sessionstore;1"].
                  getService(Ci.nsISessionStore);
         if (ss.canRestoreLastSession) {