Mercurial > nightly_tester_tools
diff chrome/content/configwarning.js @ 2:472a16863ecc
expanded nightly.jar
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 02 Dec 2008 20:38:20 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chrome/content/configwarning.js Tue Dec 02 20:38:20 2008 +0900 @@ -0,0 +1,64 @@ +const Cc = Components.classes; +const Ci = Components.interfaces; + +var gOS = null; + +var observer = { + observe: function(subject, topic, data) { + window.focus(); + } +} + +function init() { + var bundle = document.getElementById("bundle"); + setLabelForButton(document.documentElement.getButton("accept"), bundle.getString("Yes")); + setLabelForButton(document.documentElement.getButton("cancel"), bundle.getString("No")); + + gOS = Cc["@mozilla.org/observer-service;1"]. + getService(Ci.nsIObserverService); + gOS.addObserver(observer, "xul-window-visible", false); +} + +function unload() { + gOS.removeObserver(observer, "xul-window-visible"); + gOS = null; +} + +function setLabelForButton(button, label) +{ + var accessKey = null; + if (/ *\(\&([^&])\)(:)?$/.test(label)) { + label = RegExp.leftContext + RegExp.$2; + accessKey = RegExp.$1; + } else if (/^(.*[^&])?\&(([^&]).*$)/.test(label)) { + label = RegExp.$1 + RegExp.$2; + accessKey = RegExp.$3; + } + // && is the magic sequence to embed an & in your label. + label = label.replace(/\&\&/g, "&"); + button.label = label; + if (accessKey) + button.accessKey = accessKey; +} + +function accept() { + var cs = Cc["@oxymoronical.com/nightly/addoncompatibility;1"]. + createInstance(Ci.nttIAddonCompatibilityService); + var em = Cc["@mozilla.org/extensions/manager;1"]. + getService(Ci.nsIExtensionManager); + var items = em.getItemList(Ci.nsIUpdateItem.TYPE_ADDON, {}); + for (var i = 0; i < items.length; i++) { + var addon = cs.getAddonForID(items[i].id); + if (!addon.isValid()) + continue; + if (!addon.needsOverride(false) && addon.needsOverride(true)) + addon.overrideCompatibility(true); + } + + var prefs = Cc["@mozilla.org/preferences-service;1"]. + getService(Ci.nsIPrefBranch); + if (prefs.prefHasUserValue("extensions.checkCompatibility")) + prefs.clearUserPref("extensions.checkCompatibility"); + if (prefs.prefHasUserValue("extensions.checkUpdateSecurity")) + prefs.clearUserPref("extensions.checkUpdateSecurity"); +}