annotate chrome/content/nightly.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 var nightly = {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 variables: {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 _appInfo: null,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 get appInfo() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 if (!this._appInfo) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 this._appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 .getService(Components.interfaces.nsIXULAppInfo)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 .QueryInterface(Components.interfaces.nsIXULRuntime);
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 return this._appInfo;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 get appid() this.appInfo.ID,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 get vendor() this.appInfo.vendor,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16 get name() this.appInfo.name,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 get version() this.appInfo.version,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 get appbuildid() this.appInfo.appBuildID,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 get platformbuildid() this.appInfo.platformBuildID,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 get platformversion() this.appInfo.platformVersion,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 get geckobuildid() this.appInfo.platformBuildID,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 get geckoversion() this.appInfo.platformVersion,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 brandname: null,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 get useragent() navigator.userAgent,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 get locale() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26 var registry = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 .getService(Components.interfaces.nsIXULChromeRegistry);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 return registry.getSelectedLocale("global");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 get os() this.appInfo.OS,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 get processor() this.appInfo.XPCOMABI.split("-")[0],
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 get compiler() this.appInfo.XPCOMABI.split("-")[1],
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 defaulttitle: null,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 profile: null,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 toolkit: "cairo",
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 flags: ""
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 templates: {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 preferences: null,
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 showAlert: function(id, args) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 .getService(Components.interfaces.nsIStringBundleService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 var bundle = sbs.createBundle("chrome://nightly/locale/nightly.properties");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 .getService(Components.interfaces.nsIPromptService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 var text=bundle.formatStringFromName(id, args, args.length);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 promptService.alert(null, "Nightly Tester Tools", text);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 init: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 window.removeEventListener("load", nightly.init, false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 var prefs = Components.classes["@mozilla.org/preferences-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57 .getService(Components.interfaces.nsIPrefService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 nightly.preferences = prefs.getBranch("nightly.")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 .QueryInterface(Components.interfaces.nsIPrefBranchInternal);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 nightly.preferences.addObserver("", nightly, false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 var profd = Components.classes["@mozilla.org/file/directory_service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 .getService(Components.interfaces.nsIProperties)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 .get("ProfD", Components.interfaces.nsILocalFile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 var profservice = Components.classes["@mozilla.org/toolkit/profile-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66 .getService(Components.interfaces.nsIToolkitProfileService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 var profiles = profservice.profiles;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 while (profiles.hasMoreElements()) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69 var profile = profiles.getNext().QueryInterface(Components.interfaces.nsIToolkitProfile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70 if (profile.rootDir.path == profd.path) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 nightly.variables.profile = profile.name;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 break;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76 if (!nightly.variables.profile)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 nightly.variables.profile = profd.leafName;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 nightlyApp.init();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80 nightly.prefChange("idtitle");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 var lastVersion = 0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83 try {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84 lastVersion = nightly.preferences.getCharPref("lastVersion");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 if (lastVersion != "2.0.2") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88 catch (e) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 var checkCompatibility = true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90 var checkUpdateSecurity = true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 if (prefs.prefHasUserValue("extensions.checkCompatibility"))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 checkCompatibility = prefs.getBoolPref("extensions.checkCompatibility");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93 if (prefs.prefHasUserValue("extensions.checkUpdateSecurity"))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94 checkUpdateSecurity = prefs.getBoolPref("extensions.checkUpdateSecurity");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 if (!checkCompatibility || !checkUpdateSecurity) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97 .getService(Components.interfaces.nsIWindowMediator);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 var win = wm.getMostRecentWindow("NightlyTester:ConfigWarning");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 if (win) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 win.focus();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 window.openDialog("chrome://nightly/content/configwarning.xul", "",
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105 "dialog=no,titlebar,centerscreen,resizable=no");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 nightly.preferences.setCharPref("lastVersion", "2.0.2");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 unload: function(pref) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 window.removeEventListener("unload",nightly.unload,false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113 nightly.preferences.removeObserver("",nightly);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116 prefChange: function(pref) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117 if ((pref == "idtitle") || (pref == "templates.title")) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118 if (nightly.preferences.getBoolPref("idtitle")) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 var title = nightly.getTemplate("title");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120 if (title && title.length>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121 nightlyApp.setCustomTitle(nightly.generateText(title));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 nightlyApp.setBlankTitle();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125 else {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 nightlyApp.setStandardTitle();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 observe: function(prefBranch, subject, pref) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132 nightly.prefChange(pref);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135 getStoredItem: function(type, name) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 name = name.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137 var varvalue = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 try {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139 return nightly.preferences.getCharPref(type+"."+name);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141 catch (e) {}
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142 return nightly[type][name];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145 getVariable: function(name) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 return nightly.getStoredItem("variables",name);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149 getTemplate: function(name) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150 return nightly.getStoredItem("templates",name);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 generateText: function(template) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 var start = 0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155 var pos = template.indexOf("${",start);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156 while (pos >= 0) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157 if ((pos == 0) || (template.charAt(pos - 1) != "$")) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158 var endpos = template.indexOf("}", pos + 2);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 if (endpos >= 0) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 var varname = template.substring(pos+2,endpos);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 var varvalue = nightly.getVariable(varname);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162 if (varvalue !== null) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163 template = template.substring(0, pos) + varvalue +
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164 template.substring(endpos + 1, template.length);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 start = pos + varvalue.length;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167 else {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 start = pos + 2;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 else {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 start = pos + 2;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 else {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 start = pos + 2;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178 pos = template.indexOf("${", start);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 return template;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183 copyText: function(text) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184 var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 getService(Components.interfaces.nsIClipboardHelper);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 clipboard.copyString(text);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189 copyTemplate: function(template) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190 nightly.copyText(nightly.generateText(nightly.getTemplate(template)));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
192
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
193 menuPopup: function(event, menupopup) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
194 if (menupopup == event.target) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
195 var attext = false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
196
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
197 var element = document.commandDispatcher.focusedElement;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
198 if (element) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
199 var type = element.localName.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
200 attext = ((type == "input") || (type == "textarea"))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
201 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
202
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
203 var node=menupopup.firstChild;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
204 while (node && node.localName!='menuseparator') {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
205 if (node.id.substring(node.id.length - 7) == "-insert")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
206 node.hidden = !attext;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
207 if (node.id.substring(node.id.length - 5) == "-copy")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
208 node.hidden = attext;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
209 node=node.nextSibling;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
210 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
211 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
212 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
213
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
214 insertTemplate: function(template) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
215 var element = document.commandDispatcher.focusedElement;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
216 if (element) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
217 var type = element.localName.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
218 if ((type == "input") || (type == "textarea")) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
219 var text = nightly.generateText(nightly.getTemplate(template));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
220 var newpos = element.selectionStart+text.length;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
221 var value = element.value;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
222 element.value = value.substring(0, element.selectionStart) + text +
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
223 value.substring(element.selectionEnd);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
224 element.selectionStart = newpos;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
225 element.selectionEnd = newpos;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
226 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
227 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
228 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
229 nightly.showAlert("nightly.notextbox.message", []);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
230 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
231
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
232 insensitiveSort: function(a, b) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
233 a = a.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
234 b = b.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
235 if (a < b)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
236 return -1
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
237 if (a > b)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
238 return 1
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
239 // a must be equal to b
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
240 return 0
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
241 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
242
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
243 getExtensionList: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
244 var em = Components.classes["@mozilla.org/extensions/manager;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
245 .getService(Components.interfaces.nsIExtensionManager);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
246
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
247 var items = em.getItemList(Components.interfaces.nsIUpdateItem.TYPE_EXTENSION, {});
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
248
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
249 if (items.length == 0) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
250 nightly.showAlert("nightly.noextensions.message", []);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
251 return null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
252 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
253
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
254 var rdfS = Components.classes["@mozilla.org/rdf/rdf-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
255 .getService(Components.interfaces.nsIRDFService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
256 var ds = em.datasource;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
257 var disabledResource = rdfS.GetResource("http://www.mozilla.org/2004/em-rdf#disabled");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
258 var isDisabledResource = rdfS.GetResource("http://www.mozilla.org/2004/em-rdf#isDisabled");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
259 var text = [];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
260 for (var i = 0; i < items.length; i++) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
261 text[i] = items[i].name + " " + items[i].version;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
262 var source = rdfS.GetResource("urn:mozilla:item:" + items[i].id);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
263 var disabled = ds.GetTarget(source, disabledResource, true);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
264 if (!disabled)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
265 disabled = ds.GetTarget(source, isDisabledResource, true);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
266 try {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
267 disabled=disabled.QueryInterface(Components.interfaces.nsIRDFLiteral);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
268 if (disabled.Value=="true")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
269 text[i]+=" [DISABLED]";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
270 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
271 catch (e) { }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
272 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
273 text.sort(nightly.insensitiveSort);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
274 return text.join("\n");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
275 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
276
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
277 insertExtensions: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
278 var element = document.commandDispatcher.focusedElement;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
279 if (element) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
280 var type = element.localName.toLowerCase();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
281 if ((type == "input") || (type == "textarea")) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
282 var text = nightly.getExtensionList();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
283 var newpos = element.selectionStart + text.length;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
284 var value = element.value;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
285 element.value = value.substring(0, element.selectionStart) + text +
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
286 value.substring(element.selectionEnd);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
287 element.selectionStart = newpos;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
288 element.selectionEnd = newpos;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
289 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
290 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
291 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
292 nightly.showAlert("nightly.notextbox.message",[]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
293 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
294
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
295 copyExtensions: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
296 var text = nightly.getExtensionList();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
297 if (text)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
298 nightly.copyText(text);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
299 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
300
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
301 openProfileDir: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
302 var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
303 .createInstance(Components.interfaces.nsIFileInputStream);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
304 var directoryService = Components.classes["@mozilla.org/file/directory_service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
305 .getService(Components.interfaces.nsIProperties);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
306
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
307 var profile = directoryService.get("ProfD",Components.interfaces.nsILocalFile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
308 try {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
309 profile.reveal();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
310 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
311 catch (ex) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
312 var uri = Components.classes["@mozilla.org/network/io-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
313 .getService(Components.interfaces.nsIIOService)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
314 .newFileURI(profile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
315 var protocolSvc = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
316 .getService(Components.interfaces.nsIExternalProtocolService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
317 protocolSvc.loadUrl(uri);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
318 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
319 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
320
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
321 launch: function(file, args) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
322 var process = Components.classes["@mozilla.org/process/util;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
323 .createInstance(Components.interfaces.nsIProcess);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
324 process.init(file);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
325 if (args)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
326 process.run(false, args, args.length);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
327 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
328 process.run(false, null, 0);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
329 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
330
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
331 alertType: function(type) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
332 var directoryService = Components.classes["@mozilla.org/file/directory_service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
333 .getService(Components.interfaces.nsIProperties);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
334
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
335 var dir = directoryService.get(type, Components.interfaces.nsIFile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
336 window.alert(dir.path);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
337 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
338
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
339 getScreenshot: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
340 window.openDialog("chrome://nightly/content/screenshot/screenshot.xul", "_blank", "chrome,all,dialog=no");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
341 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
342
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
343 launchOptions: function() {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
344 var wm = Components.classes['@mozilla.org/appshell/window-mediator;1']
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
345 .getService(Components.interfaces.nsIWindowMediator);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
346
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
347 var win = wm.getMostRecentWindow("NightlyTester:Options");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
348 if (win) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
349 win.focus();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
350 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
351 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
352
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
353 var features;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
354 try {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
355 var prefservice = Components.classes["@mozilla.org/preferences-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
356 .getService(Components.interfaces.nsIPrefBranch);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
357 var instantApply = prefservice.getBoolPref("browser.preferences.instantApply");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
358 features = "chrome,titlebar,toolbar,centerscreen" + (instantApply ? ",dialog=no" : ",modal");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
359 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
360 catch (e) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
361 features = "chrome,titlebar,toolbar,centerscreen,modal";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
362 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
363 openDialog("chrome://nightly/content/options/options.xul", "", features);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
364 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
365
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
366 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
367
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
368 window.addEventListener("load", nightly.init, false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
369 window.addEventListener("unload", nightly.unload, false);