Bug 1473160 - Move the startup and shutdown functions out of gBrowserInit;r=Gijs draft
authorBrian Grinstead <bgrinstead@mozilla.com>
Wed, 11 Jul 2018 06:47:19 -0700
changeset 816888 cf9b066bc99b116a0f39d87cf8cf366bc215883f
parent 816887 4e9aae343a41ed497e7da1e2c7acab3d42fea8a2
push id115865
push userbgrinstead@mozilla.com
push dateWed, 11 Jul 2018 13:47:32 +0000
reviewersGijs
bugs1473160
milestone63.0a1
Bug 1473160 - Move the startup and shutdown functions out of gBrowserInit;r=Gijs They don't rely on anything from that object, so simplify things and remove the cross-file reference by making them normal functions. MozReview-Commit-ID: 6iAjBWsO5zo
browser/base/content/nonbrowser-mac.js
--- a/browser/base/content/nonbrowser-mac.js
+++ b/browser/base/content/nonbrowser-mac.js
@@ -1,27 +1,29 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* eslint-env mozilla/browser-window */
 
+let delayedStartupTimeoutId = null;
+
 function OpenBrowserWindowFromDockMenu(options) {
   let win = OpenBrowserWindow(options);
   win.addEventListener("load", function() {
     let dockSupport = Cc["@mozilla.org/widget/macdocksupport;1"]
       .getService(Ci.nsIMacDockSupport);
     dockSupport.activateApplication(true);
   }, { once: true });
 
   return win;
 }
 
-gBrowserInit.nonBrowserWindowStartup = function() {
+function nonBrowserWindowStartup() {
   // Disable inappropriate commands / submenus
   var disabledItems = ["Browser:SavePage",
                        "Browser:SendLink", "cmd_pageSetup", "cmd_print", "cmd_find", "cmd_findAgain",
                        "viewToolbarsMenu", "viewSidebarMenuMenu", "Browser:Reload",
                        "viewFullZoomMenu", "pageStyleMenu", "charsetMenu", "View:PageSource", "View:FullScreen",
                        "viewHistorySidebar", "Browser:AddBookmarkAs", "Browser:BookmarkAllTabs",
                        "View:PageInfo", "History:UndoCloseTab"];
   var element;
@@ -73,39 +75,38 @@ gBrowserInit.nonBrowserWindowStartup = f
 
   if (PrivateBrowsingUtils.permanentPrivateBrowsing) {
     document.getElementById("macDockMenuNewWindow").hidden = true;
   }
   if (!PrivateBrowsingUtils.enabled) {
     document.getElementById("macDockMenuNewPrivateWindow").hidden = true;
   }
 
-  this._delayedStartupTimeoutId = setTimeout(this.nonBrowserWindowDelayedStartup.bind(this), 0);
-};
+  delayedStartupTimeoutId = setTimeout(nonBrowserWindowDelayedStartup, 0);
+}
 
-gBrowserInit.nonBrowserWindowDelayedStartup = function() {
-  this._delayedStartupTimeoutId = null;
+function nonBrowserWindowDelayedStartup() {
+  delayedStartupTimeoutId = null;
 
   // initialise the offline listener
   BrowserOffline.init();
 
   // initialize the private browsing UI
   gPrivateBrowsingUI.init();
+}
 
-};
-
-gBrowserInit.nonBrowserWindowShutdown = function() {
+function nonBrowserWindowShutdown() {
   let dockSupport = Cc["@mozilla.org/widget/macdocksupport;1"]
                     .getService(Ci.nsIMacDockSupport);
   dockSupport.dockMenu = null;
 
   // If nonBrowserWindowDelayedStartup hasn't run yet, we have no work to do -
   // just cancel the pending timeout and return;
-  if (this._delayedStartupTimeoutId) {
-    clearTimeout(this._delayedStartupTimeoutId);
+  if (delayedStartupTimeoutId) {
+    clearTimeout(delayedStartupTimeoutId);
     return;
   }
 
   BrowserOffline.uninit();
-};
+}
 
-addEventListener("load",   function() { gBrowserInit.nonBrowserWindowStartup()  }, false);
-addEventListener("unload", function() { gBrowserInit.nonBrowserWindowShutdown() }, false);
+addEventListener("load", nonBrowserWindowStartup, false);
+addEventListener("unload", nonBrowserWindowShutdown, false);