[Pkg-mozext-commits] [firebug] 08/15: Issue 5888: Improve logic for when to open first-run page

David Prévot taffit at moszumanska.debian.org
Mon Mar 31 22:46:38 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to tag firebug-1.10.5
in repository firebug.

commit 44723284913450a9a22c32af3fcaade3ce9017b5
Author: Jan Odvarko <odvarko at gmail.com>
Date:   Thu Oct 11 17:03:26 2012 +0200

    Issue 5888: 	Improve logic for when to open first-run page
---
 extension/bootstrap.js                             |  2 +-
 .../content/firebug/firefox/browserOverlay.js      | 97 +++++++++++++---------
 extension/modules/loader.js                        |  3 +-
 extension/modules/prefLoader.js                    |  6 ++
 4 files changed, 68 insertions(+), 40 deletions(-)

diff --git a/extension/bootstrap.js b/extension/bootstrap.js
index fe4f06b..94ef5cd 100644
--- a/extension/bootstrap.js
+++ b/extension/bootstrap.js
@@ -67,7 +67,7 @@ function startup(params, reason)
     // Load Firebug into all existing browser windows.
     var enumerator = Services.wm.getEnumerator("navigator:browser");
     while (enumerator.hasMoreElements())
-        FirebugLoader.loadIntoWindow(enumerator.getNext());
+        FirebugLoader.loadIntoWindow(enumerator.getNext(), reason);
 
     // Listen for new windows, Firebug must be loaded into them too.
     Services.obs.addObserver(windowWatcher, "chrome-document-global-created", false);
diff --git a/extension/content/firebug/firefox/browserOverlay.js b/extension/content/firebug/firefox/browserOverlay.js
index 76df60d..9798b76 100644
--- a/extension/content/firebug/firefox/browserOverlay.js
+++ b/extension/content/firebug/firefox/browserOverlay.js
@@ -509,13 +509,6 @@ Firebug.GlobalUI =
         });
     },
 
-    openFirstRunPage: function()
-    {
-        var version = Firebug.GlobalUI.getVersion();
-        url = firstRunPage + version;
-        gBrowser.selectedTab = gBrowser.addTab(url, null, null, null);
-    },
-
     setPosition: function(newPosition)
     {
         // todo
@@ -606,7 +599,64 @@ Firebug.GlobalUI =
 
         win.nsContextMenu.prototype.setTarget = this.setTargetOriginal;
         win.nsContextMenu.prototype.initItems = this.initItemsOriginal;
-    }
+    },
+
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+    // First Run Page
+
+    loadFirstRunPage: function(win, reason)
+    {
+        if (checkFirebugVersion(PrefLoader.getPref("currentVersion")) <= 0)
+            return;
+
+        // Do not show the first run page when Firebug is being updated. It'll be displayed
+        // the next time the browser is restarted
+        // # ADDON_UPGRADE == 7
+        if (reason == 7)
+            return;
+
+        // Open the page in the top most window, so the user can see it immediately.
+        var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
+        if (wm.getMostRecentWindow("navigator:browser") == win.top)
+        {
+            // Update the preference to make sure the page is not displayed again.
+            // To avoid being annoying when Firefox crashes, forcibly save it, too.
+            var version = Firebug.GlobalUI.getVersion();
+            PrefLoader.setPref("currentVersion", version);
+
+            if (PrefLoader.getPref("showFirstRunPage"))
+            {
+                var timeout = setTimeout(function()
+                {
+                    if (window.closed)
+                        return;
+
+                    Firebug.GlobalUI.openFirstRunPage();
+                }, 1000);
+
+                window.addEventListener("unload", function()
+                {
+                    clearTimeout(timeout);
+                }, false);
+            }
+        }
+    },
+
+    openFirstRunPage: function()
+    {
+        var version = Firebug.GlobalUI.getVersion();
+        url = firstRunPage + version;
+
+        // Open the firstRunPage in background
+        /*gBrowser.selectedTab = */gBrowser.addTab(url, null, null, null);
+
+        // Make sure prefs are stored, otherwise the firstRunPage would be displayed
+        // again if Firefox crashes.
+        setTimeout(function()
+        {
+            PrefLoader.forceSave();
+        }, 400);
+    },
 }
 
 // ********************************************************************************************* //
@@ -1273,9 +1323,7 @@ var elements = cloneArray(document.getElementsByClassName("fbInternational"));
 Locale.internationalizeElements(document, elements, ["label", "tooltiptext", "aria-label"]);
 
 // ********************************************************************************************* //
-// First Run Page
-
-var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
+// Version Checker
 
 function checkFirebugVersion(currentVersion)
 {
@@ -1290,33 +1338,6 @@ function checkFirebugVersion(currentVersion)
     return versionChecker.compare(version, currentVersion);
 }
 
-if (checkFirebugVersion(PrefLoader.getPref("currentVersion")) > 0)
-{
-    // Open the page in the top most window, so the user can see it immediately.
-    if (wm.getMostRecentWindow("navigator:browser") == window.top)
-    {
-        // Don't forget to update the preference, so the page is not displayed again
-        var version = Firebug.GlobalUI.getVersion();
-        PrefLoader.setPref("currentVersion", version);
-
-        if (PrefLoader.getPref("showFirstRunPage"))
-        {
-            var timeout = setTimeout(function()
-            {
-                if (window.closed)
-                    return;
-
-                Firebug.GlobalUI.openFirstRunPage();
-            }, 1000);
-
-            window.addEventListener("unload", function()
-            {
-                clearTimeout(timeout);
-            }, false);
-        }
-    }
-}
-
 // ********************************************************************************************* //
 // All Pages Activation" is on
 
diff --git a/extension/modules/loader.js b/extension/modules/loader.js
index f75b560..4ef90d6 100644
--- a/extension/modules/loader.js
+++ b/extension/modules/loader.js
@@ -132,7 +132,7 @@ var FirebugLoader =
         delete win.FBL;
     },
 
-    loadIntoWindow: function(win)
+    loadIntoWindow: function(win, reason)
     {
         // This is the place where the global Firebug object is created. This object represents
         // the entire application and all consequently created namespaces and variables should be
@@ -144,6 +144,7 @@ var FirebugLoader =
         loadSubscript("chrome://firebug/content/firefox/browserOverlay.js", win);
 
         win.Firebug.GlobalUI.loadContextMenuOverlay(win);
+        win.Firebug.GlobalUI.loadFirstRunPage(win, reason);
 
         // Firebug extensions should initialize here.
         this.dispatchToScopes("topWindowLoad", [win]);
diff --git a/extension/modules/prefLoader.js b/extension/modules/prefLoader.js
index 01238f2..e40ff59 100644
--- a/extension/modules/prefLoader.js
+++ b/extension/modules/prefLoader.js
@@ -144,6 +144,11 @@ function setPref(name, value)
     return value;
 }
 
+function forceSave()
+{
+    Services.prefs.savePrefFile(null);
+}
+
 // ********************************************************************************************* //
 // Registration
 
@@ -151,5 +156,6 @@ PrefLoader.loadDefaultPrefs = loadDefaultPrefs;
 PrefLoader.clearDefaultPrefs = clearDefaultPrefs;
 PrefLoader.getPref = getPref;
 PrefLoader.setPref = setPref;
+PrefLoader.forceSave = forceSave;
 
 // ********************************************************************************************* //

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firebug.git



More information about the Pkg-mozext-commits mailing list