Bug 1344372: Add override for RemotePageManager in AboutNewTab.jsm;r?mconley draft
authork88hudson <k88hudson@gmail.com>
Tue, 07 Mar 2017 14:22:33 -0500
changeset 494783 fb9160f67792cecdb7fbb29c394253f8c0a751b2
parent 494782 9fcb7e13923d49421a951e60b30576e3838c9738
child 548198 0a7bef44d3e23bb61483b695f3f8c049c9319225
push id48132
push userkhudson@mozilla.com
push dateTue, 07 Mar 2017 20:02:58 +0000
reviewersmconley
bugs1344372
milestone55.0a1
Bug 1344372: Add override for RemotePageManager in AboutNewTab.jsm;r?mconley MozReview-Commit-ID: 9hpJMtagXur
browser/modules/AboutNewTab.jsm
--- a/browser/modules/AboutNewTab.jsm
+++ b/browser/modules/AboutNewTab.jsm
@@ -19,25 +19,42 @@ XPCOMUtils.defineLazyModuleGetter(this, 
   "resource://gre/modules/NewTabUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "RemotePages",
   "resource://gre/modules/RemotePageManager.jsm");
 
 var AboutNewTab = {
 
   pageListener: null,
 
+  isOverridden: false,
+
   init() {
+    if (this.isOverridden) {
+      return;
+    }
     this.pageListener = new RemotePages("about:newtab");
     this.pageListener.addMessageListener("NewTab:Customize", this.customize.bind(this));
     this.pageListener.addMessageListener("NewTab:MaybeShowAutoMigrationUndoNotification",
       (msg) => AutoMigrate.maybeShowUndoNotification(msg.target.browser));
   },
 
   customize(message) {
     NewTabUtils.allPages.enabled = message.data.enabled;
     NewTabUtils.allPages.enhanced = message.data.enhanced;
   },
 
   uninit() {
-    this.pageListener.destroy();
-    this.pageListener = null;
+    if (this.pageListener) {
+      this.pageListener.destroy();
+      this.pageListener = null;
+    }
   },
+
+  override() {
+    this.uninit();
+    this.isOverridden = true;
+  },
+
+  reset() {
+    this.isOverridden = false;
+    this.init();
+  }
 };