annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1 const Cc = Components.classes;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 const Ci = Components.interfaces;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 var gOS = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 var observer = {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 observe: function(subject, topic, data) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 window.focus();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 function init() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13 var bundle = document.getElementById("bundle");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 setLabelForButton(document.documentElement.getButton("accept"), bundle.getString("Yes"));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 setLabelForButton(document.documentElement.getButton("cancel"), bundle.getString("No"));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 gOS = Cc["@mozilla.org/observer-service;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 getService(Ci.nsIObserverService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 gOS.addObserver(observer, "xul-window-visible", false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 function unload() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 gOS.removeObserver(observer, "xul-window-visible");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 gOS = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 function setLabelForButton(button, label)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 var accessKey = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 if (/ *\(\&([^&])\)(:)?$/.test(label)) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 label = RegExp.leftContext + RegExp.$2;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 accessKey = RegExp.$1;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 } else if (/^(.*[^&])?\&(([^&]).*$)/.test(label)) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 label = RegExp.$1 + RegExp.$2;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 accessKey = RegExp.$3;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 // && is the magic sequence to embed an & in your label.
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 label = label.replace(/\&\&/g, "&");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 button.label = label;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 if (accessKey)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 button.accessKey = accessKey;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 function accept() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 var cs = Cc["@oxymoronical.com/nightly/addoncompatibility;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 createInstance(Ci.nttIAddonCompatibilityService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 var em = Cc["@mozilla.org/extensions/manager;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 getService(Ci.nsIExtensionManager);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 var items = em.getItemList(Ci.nsIUpdateItem.TYPE_ADDON, {});
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 for (var i = 0; i < items.length; i++) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 var addon = cs.getAddonForID(items[i].id);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 if (!addon.isValid())
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 continue;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 if (!addon.needsOverride(false) && addon.needsOverride(true))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 addon.overrideCompatibility(true);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 var prefs = Cc["@mozilla.org/preferences-service;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 getService(Ci.nsIPrefBranch);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 if (prefs.prefHasUserValue("extensions.checkCompatibility"))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61 prefs.clearUserPref("extensions.checkCompatibility");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 if (prefs.prefHasUserValue("extensions.checkUpdateSecurity"))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 prefs.clearUserPref("extensions.checkUpdateSecurity");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 }