diff --git a/src/bootstrap.js b/src/bootstrap.js index 86d775c..10d5621 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -35,19 +35,17 @@ const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; const keysetID = "restartless-restart-keyset"; const keyID = "RR:Restart"; const fileMenuitemID = "menu_FileRestartItem"; +var XUL_APP = {name: Services.appinfo.name}; switch(Services.appinfo.name) { case "Thunderbird": - var XUL_APP_SPECIFIC = { - windowType: "mail:3pane", - baseKeyset: "mailKeys" - }; + XUL_APP.winType = "mail:3pane"; + XUL_APP.baseKeyset = "mailKeys"; break; +case "Fennec": break; default: //"Firefox", "SeaMonkey" - var XUL_APP_SPECIFIC = { - windowType: "navigator:browser", - baseKeyset: "mainKeyset" - }; + XUL_APP.winType = "navigator:browser"; + XUL_APP.baseKeyset = "mainKeyset"; } const PREF_BRANCH = Services.prefs.getBranch("extensions.restartless-restart."); @@ -74,7 +72,7 @@ let PREF_OBSERVER = { break; } addMenuItem(win); - }, XUL_APP_SPECIFIC.windowType); + }, XUL_APP.winType); } } @@ -154,7 +152,7 @@ function main(win) { restartKey.setAttribute("modifiers", getPref("modifiers")); restartKey.setAttribute("oncommand", "void(0);"); restartKey.addEventListener("command", restart, true); - $(XUL_APP_SPECIFIC.baseKeyset).parentNode.appendChild(rrKeyset).appendChild(restartKey); + $(XUL_APP.baseKeyset).parentNode.appendChild(rrKeyset).appendChild(restartKey); } // add menu bar item to File menu @@ -183,9 +181,23 @@ var addon = { }) } -function install(){} +function disable(id) { + Cu.import("resource://gre/modules/AddonManager.jsm"); + AddonManager.getAddonByID(id, function(addon) { + addon.userDisabled = true; + }); +} + +function install(data) { + if ("Fennec" == XUL_APP.name) disable(data.id); +} function uninstall(){} -function startup() { +function startup(data, reason) { + if ("Fennec" == XUL_APP.name) { + if (ADDON_ENABLE == reason) restart(); + disable(data.id); + } + var prefs = PREF_BRANCH; include(addon.getResourceURI("includes/l10n.js").spec); include(addon.getResourceURI("includes/utils.js").spec); @@ -194,7 +206,7 @@ function startup() { unload(l10n.unload); logo = addon.getResourceURI("images/refresh_16.png").spec; - watchWindows(main, XUL_APP_SPECIFIC.windowType); + watchWindows(main, XUL_APP.winType); prefs = prefs.QueryInterface(Components.interfaces.nsIPrefBranch2); prefs.addObserver("", PREF_OBSERVER, false); unload(function() prefs.removeObserver("", PREF_OBSERVER)); diff --git a/src/install.rdf b/src/install.rdf index 2cff965..d62afdb 100644 --- a/src/install.rdf +++ b/src/install.rdf @@ -9,6 +9,7 @@ true 2 http://github.com/erikvold/restartless-restart-ffext + Fennec users enable to restart, otherwise a File -> Restart menu item will be added. Greg Parris; http://phob.net/ Nils Maier; https://tn123.org/ @@ -37,5 +38,13 @@ 3.* + + + + {a23983c0-fd0e-11dc-95ff-0800200c9a66} + 4.0b4 + 4.* + +