Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/appIntegration.js

Issue 8382011: Applied changes from emailed code review (Closed)
Patch Set: Applied remaining changes Created Sept. 26, 2012, 9:02 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 // Extensions like Tab Mix Plus will try to recompile our handlers and fail 5 // Extensions like Tab Mix Plus will try to recompile our handlers and fail
6 // badly - they manage to replace our handler but the recompiled version 6 // badly - they manage to replace our handler but the recompiled version
7 // won't work because the closure is missing its variables. We replace 7 // won't work because the closure is missing its variables. We replace
8 // toString() function to prevent this kind of recompiling on earlier stages 8 // toString() function to prevent this kind of recompiling on earlier stages
9 // (produce a syntax error but still leave the source code viewable). 9 // (produce a syntax error but still leave the source code viewable).
10 function doNotRecompile() 10 function doNotRecompile()
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 urlbar.handleCommand.toString = doNotRecompile; 53 urlbar.handleCommand.toString = doNotRecompile;
54 } 54 }
55 }; 55 };
56 56
57 exports.removeFromWindow = function(window) 57 exports.removeFromWindow = function(window)
58 { 58 {
59 let urlbar = exports.getURLBar(window); 59 let urlbar = exports.getURLBar(window);
60 if (urlbar && urlbar.handleCommand && "urlfixerOldHandler" in urlbar.handl eCommand) 60 if (urlbar && urlbar.handleCommand && "urlfixerOldHandler" in urlbar.handl eCommand)
61 urlbar.handleCommand = urlbar.handleCommand.urlfixerOldHandler; 61 urlbar.handleCommand = urlbar.handleCommand.urlfixerOldHandler;
62 }; 62 };
63
64 exports.openInfobar = function(window, id, message, buttons, persistence)
65 {
66 let browser = exports.getBrowser(window);
67 let infobar = browser.getNotificationBox();
68 let notif = infobar.getNotificationWithValue(id);
Wladimir Palant 2012/09/28 09:29:34 As mentioned before - you don't need to save chara
69
70 if (notif)
71 {
72 infobar.removeNotification(notif);
73 }
74
75 notif = infobar.appendNotification(
76 message,
77 id,
78 require("info").addonRoot + "icon64.png",
79 infobar.PRIORITY_INFO_HIGH,
80 buttons
81 );
82 notif.persistence = persistence;
83 };
84
85 exports.loadURI = function(uri)
86 {
87 exports.getBrowser(Services.wm.getMostRecentWindow("navigator:browser")).l oadURI(uri);
Wladimir Palant 2012/09/28 09:29:34 This will load the address in *some* browser windo
88 };
63 89
64 break; 90 break;
65 } 91 }
66 case "seamonkey": 92 case "seamonkey":
67 { 93 {
68 // SeaMonkey 94 // SeaMonkey
69 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser"; 95 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser";
70 96
71 exports.getURLBar = function(window) "gURLBar" in window ? window.gURLBar : null; 97 exports.getURLBar = function(window) "gURLBar" in window ? window.gURLBar : null;
72 98
(...skipping 26 matching lines...) Expand all
99 window.handleURLBarCommand.urlfixerOldHandler = oldHandler; 125 window.handleURLBarCommand.urlfixerOldHandler = oldHandler;
100 window.handleURLBarCommand.toString = doNotRecompile; 126 window.handleURLBarCommand.toString = doNotRecompile;
101 } 127 }
102 }; 128 };
103 129
104 exports.removeFromWindow = function(window) 130 exports.removeFromWindow = function(window)
105 { 131 {
106 if (window.handleURLBarCommand && "urlfixerOldHandler" in window.handleURL BarCommand) 132 if (window.handleURLBarCommand && "urlfixerOldHandler" in window.handleURL BarCommand)
107 window.handleURLBarCommand = window.handleURLBarCommand.urlfixerOldHandl er; 133 window.handleURLBarCommand = window.handleURLBarCommand.urlfixerOldHandl er;
108 }; 134 };
135
136 exports.openInfobar = function(window, id, message, buttons, persistence)
137 {
138 let browser = exports.getBrowser(window);
139 let infobar = browser.getNotificationBox();
140 let notif = infobar.getNotificationWithValue(id);
141
142 if (notif)
143 {
144 infobar.removeNotification(notif);
145 }
146
147 notif = infobar.appendNotification(
148 message,
149 id,
150 require("info").addonRoot + "icon64.png",
151 infobar.PRIORITY_INFO_HIGH,
152 buttons
153 );
154 notif.persistence = persistence;
155 };
156
157 exports.loadURI = function(uri)
158 {
159 exports.getBrowser(Services.wm.getMostRecentWindow("navigator:browser")).l oadURI(uri);
160 };
109 161
110 break; 162 break;
111 } 163 }
112 case "fennec": 164 case "fennec":
113 { 165 {
114 // XUL Fennec 166 // XUL Fennec
115 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser"; 167 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser";
116 168
117 exports.getURLBar = function(window) null; 169 exports.getURLBar = function(window) null;
118 170
(...skipping 26 matching lines...) Expand all
145 window.BrowserUI.goToURI.urlfixerOldHandler = oldHandler; 197 window.BrowserUI.goToURI.urlfixerOldHandler = oldHandler;
146 window.BrowserUI.goToURI.toString = doNotRecompile; 198 window.BrowserUI.goToURI.toString = doNotRecompile;
147 } 199 }
148 }; 200 };
149 201
150 exports.removeFromWindow = function(window) 202 exports.removeFromWindow = function(window)
151 { 203 {
152 if ("BrowserUI" in window && window.BrowserUI.goToURI && "urlfixerOldHandl er" in window.BrowserUI.goToURI) 204 if ("BrowserUI" in window && window.BrowserUI.goToURI && "urlfixerOldHandl er" in window.BrowserUI.goToURI)
153 window.BrowserUI.goToURI = window.BrowserUI.goToURI.urlfixerOldHandler; 205 window.BrowserUI.goToURI = window.BrowserUI.goToURI.urlfixerOldHandler;
154 }; 206 };
207
208 exports.openInfobar = function()
209 {
210 // TODO: Implement infobar
211 };
212
213 exports.loadURI = function(window, uri)
214 {
215 // TODO: Implement infobar
216 };
155 217
156 break; 218 break;
157 } 219 }
158 case "fennec2": 220 case "fennec2":
159 { 221 {
160 // Native Fennec 222 // Native Fennec
161 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser"; 223 exports.isKnownWindow = function(window) window.document.documentElement.get Attribute("windowtype") == "navigator:browser";
162 224
163 exports.getURLBar = function(window) null; 225 exports.getURLBar = function(window) null;
164 226
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 window.BrowserApp.observe.urlfixerOldHandler = oldHandler; 281 window.BrowserApp.observe.urlfixerOldHandler = oldHandler;
220 window.BrowserApp.observe.toString = doNotRecompile; 282 window.BrowserApp.observe.toString = doNotRecompile;
221 } 283 }
222 }; 284 };
223 285
224 exports.removeFromWindow = function(window) 286 exports.removeFromWindow = function(window)
225 { 287 {
226 if ("BrowserApp" in window && window.BrowserApp.observe && "urlfixerOldHan dler" in window.BrowserApp.observe) 288 if ("BrowserApp" in window && window.BrowserApp.observe && "urlfixerOldHan dler" in window.BrowserApp.observe)
227 window.BrowserApp.observe = window.BrowserApp.observe.urlfixerOldHandler ; 289 window.BrowserApp.observe = window.BrowserApp.observe.urlfixerOldHandler ;
228 }; 290 };
291
292 exports.openInfobar = function(window, id, message, buttons, persistence)
293 {
294 if ("BrowserApp" in window && "selectedTab" in window.BrowserApp)
295 {
296 window.NativeWindow.doorhanger.show(message, id, buttons, window.Browser App.selectedTab.id,
297 {
298 persistence: persistence
299 }
300 );
301 }
302 };
303
304 exports.loadURI = function(uri)
305 {
306 let window = Services.wm.getMostRecentWindow("navigator:browser");
307 if ("BrowserApp" in window && "loadURI" in window.BrowserApp)
308 window.BrowserApp.loadURI(uri);
309 };
229 310
230 break; 311 break;
231 } 312 }
232 default: 313 default:
233 { 314 {
234 exports.isKnownWindow = function(window) false; 315 exports.isKnownWindow = function(window) false;
235 break; 316 break;
236 } 317 }
237 } 318 }
OLDNEW

Powered by Google App Engine
This is Rietveld