From e399fed4a584c3839555ad19c0e1cefcddac1dbd Mon Sep 17 00:00:00 2001 From: Jeferson Hultmann Date: Wed, 18 Sep 2013 02:31:06 -0300 Subject: [PATCH] Keep the button hidden after updates. --- src/bootstrap.js | 18 +++++++++++++++--- src/modules/new-window.js | 8 ++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/bootstrap.js b/src/bootstrap.js index 0c6f8da..143395e 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -12,9 +12,7 @@ Cu.import("resource://gre/modules/Services.jsm"); // install & uninstall are called even for disabled extensions -var _install = false; function install(data, reason) { - _install = true; } @@ -38,9 +36,23 @@ function startup(data, reason) { registerResourceProtocol(data.resourceURI); registerAbout(); + var firstRun = false; + var reinstall = false; + if (reason !== APP_STARTUP) { + switch (reason) { + case ADDON_INSTALL: + firstRun = true; + break; + case ADDON_UPGRADE: + case ADDON_DOWNGRADE: + reinstall = true; + break; + } + } + var ns = {}; Cu.import("${PATH_MODULE}/new-window.js", ns); - ns.Bootstrap.extensionStartup(_install); + ns.Bootstrap.extensionStartup(firstRun, reinstall); } diff --git a/src/modules/new-window.js b/src/modules/new-window.js index 9bf521b..b4efbb6 100644 --- a/src/modules/new-window.js +++ b/src/modules/new-window.js @@ -29,12 +29,12 @@ var m_docObserver = null; var Bootstrap = { - extensionStartup: function(installing) { + extensionStartup: function(firstRun, reinstall) { console.assert(m_docObserver === null, "m_docObserver should be null"); console.assert(m_pendingNewWindows.length === 0, "m_pendingNewWindows should be empty"); - if (installing) { - this._firstRun = true; + if (firstRun || reinstall) { + this._firstRun = firstRun; var desc = util.getTextFrom("extensions.${EXT_ID}.description", "about-multifox"); util.setUnicodePref("description", desc); } @@ -75,7 +75,7 @@ var Bootstrap = { }, extensionShutdown: function() { - Services.obs.removeObserver("${BASE_DOM_ID}-id-changed", UpdateUI); + Services.obs.removeObserver(UpdateUI, "${BASE_DOM_ID}-id-changed"); m_docObserver.shutdown(); ExtCompat.uninstallAddonListener(); var enumWin = Services.wm.getEnumerator(null);