[Pkg-mozext-commits] [firetray] 156/399: refactor VersionChange
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:23:33 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch dfsg-clean
in repository firetray.
commit f45f8f08c34497412a6b72f353dcdb0a18c3b285
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Mon Jan 30 21:10:26 2012 +0100
refactor VersionChange
---
src/modules/FiretrayHandler.jsm | 72 +++++++++++++++++++++++
src/modules/FiretrayVersionChange.jsm | 101 ++++-----------------------------
src/modules/commons.js | 11 ++--
3 files changed, 91 insertions(+), 93 deletions(-)
diff --git a/src/modules/FiretrayHandler.jsm b/src/modules/FiretrayHandler.jsm
index 1971897..af83cd7 100644
--- a/src/modules/FiretrayHandler.jsm
+++ b/src/modules/FiretrayHandler.jsm
@@ -101,6 +101,17 @@ firetray.Handler = {
Services.obs.addObserver(this, this.getAppStartupTopic(this.appId), false);
Services.obs.addObserver(this, "xpcom-will-shutdown", false);
+ firetray.VersionChange.setInstallHook(function(ver) {
+ firetray.Handler.openTab(FIRETRAY_SPLASH_PAGE+"#"+ver);
+ firetray.Handler.tryEraseV03Options();
+ });
+ firetray.VersionChange.setUpgradeHook(function(ver) {
+ firetray.Handler.openTab(FIRETRAY_SPLASH_PAGE+"#"+ver);
+ firetray.Handler.tryEraseV03Options(); // FIXME: should check versions here
+ });
+ firetray.VersionChange.setReinstallHook(function(ver) {
+ firetray.Handler.openTab(FIRETRAY_SPLASH_PAGE+"#"+ver);
+ });
firetray.VersionChange.watch();
this.initialized = true;
@@ -263,6 +274,67 @@ firetray.Handler = {
} catch (x) { ERROR(x); }
},
+ openTab: function(url) {
+ let appId = Services.appinfo.ID;
+ if (appId === THUNDERBIRD_ID)
+ this.openMailTab(url);
+ else if (appId === FIREFOX_ID || appId === SEAMONKEY_ID)
+ this.openBrowserTab(url);
+ else
+ ERROR("unsupported application");
+ },
+
+ openMailTab: function(url) {
+ let mail3PaneWindow = Services.wm.getMostRecentWindow("mail:3pane");
+ if (mail3PaneWindow) {
+ var tabmail = mail3PaneWindow.document.getElementById("tabmail");
+ mail3PaneWindow.focus();
+ }
+
+ if (tabmail) {
+ firetray.Utils.timer(function() {
+ LOG("openMailTab");
+ tabmail.openTab("contentTab", {contentPage: url});
+ }, FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS, Ci.nsITimer.TYPE_ONE_SHOT);
+ }
+ },
+
+ openBrowserTab: function(url) {
+ let win = Services.wm.getMostRecentWindow("navigator:browser");
+ WARN("WIN="+win);
+ if (win) {
+ var mainWindow = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIWebNavigation)
+ .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
+ .rootTreeItem
+ .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIDOMWindow);
+
+ mainWindow.setTimeout(function(win){
+ LOG("openBrowser");
+ mainWindow.gBrowser.selectedTab = mainWindow.gBrowser.addTab(url);
+ }, 1000);
+ }
+ },
+
+ tryEraseV03Options: function() {
+ let v03options = [
+ "close_to_tray", "minimize_to_tray", "start_minimized", "confirm_exit",
+ "restore_to_next_unread", "mail_count_type", "show_mail_count",
+ "dont_count_spam", "dont_count_archive", "dont_count_drafts",
+ "dont_count_sent", "dont_count_templates", "show_mail_notification",
+ "show_icon_only_minimized", "use_custom_normal_icon",
+ "use_custom_special_icon", "custom_normal_icon", "custom_special_icon",
+ "text_color", "scroll_to_hide", "scroll_action", "grab_multimedia_keys",
+ "hide_show_mm_key", "accounts_to_exclude" ];
+
+ for (let i = 0, length = v03options.length; i<length; ++i) {
+ try {
+ firetray.Utils.prefService.clearUserPref(v03options[i]);
+ } catch (x) {}
+ }
+ },
+
quitApplication: function() {
try {
firetray.Utils.timer(function() {
diff --git a/src/modules/FiretrayVersionChange.jsm b/src/modules/FiretrayVersionChange.jsm
index 233c0d2..16f9fcc 100644
--- a/src/modules/FiretrayVersionChange.jsm
+++ b/src/modules/FiretrayVersionChange.jsm
@@ -5,14 +5,13 @@ const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/AddonManager.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://firetray/commons.js");
-const FIRETRAY_ID = "{9533f794-00b4-4354-aa15-c2bbda6989f8}";
-const FIRETRAY_SPLASH_PAGE = "http://foudfou.github.com/FireTray/";
/**
- * handles version changes, by doing things like opening a tab for release notes
+ * handles version changes.
+ * use setInstallHook(), setUpgradeHook(), setReinstallHook()
+ * http://mike.kaply.com/2011/02/02/running-add-on-code-at-first-run-and-upgrade/
*/
firetray.VersionChange = {
curVersion: null,
@@ -50,7 +49,7 @@ firetray.VersionChange = {
if (firstrun) {
WARN("FIRST RUN");
this.initPrefs();
- this.installHook();
+ this.installHook(this.curVersion);
} else {
try {
@@ -59,13 +58,13 @@ firetray.VersionChange = {
if (versionDelta > 0) {
firetray.Utils.prefService.setCharPref("installedVersion", this.curVersion);
WARN("UPGRADE");
- this.upgradeHook();
+ this.upgradeHook(this.curVersion);
}
} catch (ex) {
WARN("REINSTALL");
this.initPrefs();
- this.reinstallHook();
+ this.reinstallHook(this.curVersion);
}
}
},
@@ -75,87 +74,11 @@ firetray.VersionChange = {
firetray.Utils.prefService.setCharPref("installedVersion", firetray.VersionChange.curVersion);
},
- installHook: function() {},
- upgradeHook: function() {},
- reinstallHook: function() {}
+ installHook: function(ver){},
+ upgradeHook: function(ver){},
+ reinstallHook: function(ver){},
+ setInstallHook: function(fun) {this.installHook = fun;},
+ setUpgradeHook: function(fun) {this.upgradeHook = fun;},
+ setReinstallHook: function(fun) {this.reinstallHook = fun;}
};
-
-
-
-firetray.VersionChange.installHook = function() {
- this.openTab();
- this.tryEraseV03Options();
-};
-
-firetray.VersionChange.upgradeHook = function() {
- this.openTab();
- this.tryEraseV03Options(); // FIXME: should check versions here
-};
-
-firetray.VersionChange.reinstallHook = function() {
- this.openTab(Version);
-};
-
-firetray.VersionChange.openTab = function() {
- let appId = Services.appinfo.ID;
- if (appId === THUNDERBIRD_ID)
- this.openMailTab();
- else if (appId === FIREFOX_ID || appId === SEAMONKEY_ID)
- this.openBrowserTab();
- else
- ERROR("unsupported application");
-};
-
-firetray.VersionChange.openMailTab = function() {
- let mail3PaneWindow = Services.wm.getMostRecentWindow("mail:3pane");
- if (mail3PaneWindow) {
- var tabmail = mail3PaneWindow.document.getElementById("tabmail");
- mail3PaneWindow.focus();
- }
-
- if (tabmail) {
- firetray.Utils.timer(function() {
- LOG("openMailTab");
- let page = FIRETRAY_SPLASH_PAGE+"#"+firetray.VersionChange.curVersion;
- tabmail.openTab("contentTab", {contentPage: page});
- }, FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS, Ci.nsITimer.TYPE_ONE_SHOT);
- }
-};
-
-firetray.VersionChange.openBrowserTab = function() {
- let win = Services.wm.getMostRecentWindow("navigator:browser");
- WARN("WIN="+win);
- if (win) {
- var mainWindow = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIWebNavigation)
- .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIDOMWindow);
-
- mainWindow.setTimeout(function(win){
- LOG("openBrowser");
- let page = FIRETRAY_SPLASH_PAGE+"#"+firetray.VersionChange.curVersion;
- mainWindow.gBrowser.selectedTab = mainWindow.gBrowser.addTab(page);
- }, 1000);
- }
-};
-
-firetray.VersionChange.tryEraseV03Options = function() {
- let v03options = [
- "close_to_tray", "minimize_to_tray", "start_minimized", "confirm_exit",
- "restore_to_next_unread", "mail_count_type", "show_mail_count",
- "dont_count_spam", "dont_count_archive", "dont_count_drafts",
- "dont_count_sent", "dont_count_templates", "show_mail_notification",
- "show_icon_only_minimized", "use_custom_normal_icon",
- "use_custom_special_icon", "custom_normal_icon", "custom_special_icon",
- "text_color", "scroll_to_hide", "scroll_action", "grab_multimedia_keys",
- "hide_show_mm_key", "accounts_to_exclude" ];
-
- for (let i = 0, length = v03options.length; i<length; ++i) {
- try {
- firetray.Utils.prefService.clearUserPref(v03options[i]);
- } catch (x) {}
- }
-};
diff --git a/src/modules/commons.js b/src/modules/commons.js
index a725c8b..ffdef9c 100644
--- a/src/modules/commons.js
+++ b/src/modules/commons.js
@@ -4,9 +4,10 @@
provided by this module */
var EXPORTED_SYMBOLS =
[ "firetray", "LOG", "WARN", "ERROR", "FIREFOX_ID", "THUNDERBIRD_ID",
- "SEAMONKEY_ID", "getType", "isArray", "isEmpty", "strEquals",
- "FT_NOTIFICATION_DISABLED", "FT_NOTIFICATION_UNREAD_MESSAGE_COUNT",
- "FT_NOTIFICATION_NEWMAIL_ICON", "FT_NOTIFICATION_CUSTOM_ICON",
+ "SEAMONKEY_ID", "FIRETRAY_ID", "FIRETRAY_SPLASH_PAGE", "getType",
+ "isArray", "isEmpty", "strEquals", "FT_NOTIFICATION_DISABLED",
+ "FT_NOTIFICATION_UNREAD_MESSAGE_COUNT", "FT_NOTIFICATION_NEWMAIL_ICON",
+ "FT_NOTIFICATION_CUSTOM_ICON",
"FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS",
"FIRETRAY_DELAY_NOWAIT_MILLISECONDS" ];
@@ -24,6 +25,9 @@ const SUNBIRD_ID = "{718e30fb-e89b-41dd-9da7-e25a45638b28}";
const SEAMONKEY_ID = "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}";
const CHATZILLA_ID = "{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}";
+const FIRETRAY_ID = "{9533f794-00b4-4354-aa15-c2bbda6989f8}";
+const FIRETRAY_SPLASH_PAGE = "http://foudfou.github.com/FireTray/";
+
const FT_NOTIFICATION_DISABLED = 0;
const FT_NOTIFICATION_UNREAD_MESSAGE_COUNT = 1;
const FT_NOTIFICATION_NEWMAIL_ICON = 2;
@@ -177,7 +181,6 @@ firetray.Utils = {
delay, timerType);
},
-
tryCloseLibs: function(libs) {
try {
libs.forEach(function(lib) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git
More information about the Pkg-mozext-commits
mailing list