Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* | 1 /* |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
138 /** | 138 /** |
139 * Maps windows to a list of progress listeners. | 139 * Maps windows to a list of progress listeners. |
140 */ | 140 */ |
141 let progressListeners = new WeakMap(); | 141 let progressListeners = new WeakMap(); |
142 | 142 |
143 /** | 143 /** |
144 * Makes sure that a function is called whenever the displayed browser location changes. | 144 * Makes sure that a function is called whenever the displayed browser location changes. |
145 */ | 145 */ |
146 exports.addBrowserLocationListener = function addBrowserLocationListener(/**Wind ow*/ window, /**Function*/ callback, /**Boolean*/ ignoreSameDoc) | 146 exports.addBrowserLocationListener = function addBrowserLocationListener(/**Wind ow*/ window, /**Function*/ callback, /**Boolean*/ ignoreSameDoc) |
147 { | 147 { |
148 _addBrowserLocationListener(window, callback, ignoreSameDoc); | |
149 }; | |
150 | |
151 function _addBrowserLocationListener(/**Window*/ window, /**Function*/ callback, /**Boolean*/ ignoreSameDoc) | |
152 { | |
148 let browser = (exports.getBrowser ? exports.getBrowser(window) : null); | 153 let browser = (exports.getBrowser ? exports.getBrowser(window) : null); |
149 if (browser) | 154 if (browser) |
150 { | 155 { |
151 let dummy = function() {}; | 156 let dummy = function() {}; |
152 let progressListener = | 157 let progressListener = |
153 { | 158 { |
154 callback: callback, | 159 callback: callback, |
155 onLocationChange: function(progress, request, uri, flags) | 160 onLocationChange: function(progress, request, uri, flags) |
156 { | 161 { |
157 if (!ignoreSameDoc || !flags || !(flags & Ci.nsIWebProgressListener.LOCA TION_CHANGE_SAME_DOCUMENT)) | 162 if (!ignoreSameDoc || !flags || !(flags & Ci.nsIWebProgressListener.LOCA TION_CHANGE_SAME_DOCUMENT)) |
158 this.callback(); | 163 this.callback(); |
159 }, | 164 }, |
160 onProgressChange: dummy, | 165 onProgressChange: dummy, |
161 onSecurityChange: dummy, | 166 onSecurityChange: dummy, |
162 onStateChange: dummy, | 167 onStateChange: dummy, |
163 onStatusChange: dummy, | 168 onStatusChange: dummy, |
164 QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISu pportsWeakReference]) | 169 QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISu pportsWeakReference]) |
165 }; | 170 }; |
166 browser.addProgressListener(progressListener); | 171 browser.addProgressListener(progressListener); |
167 | 172 |
168 if (progressListeners.has(window)) | 173 if (progressListeners.has(window)) |
169 progressListeners.get(window).push(progressListener); | 174 progressListeners.get(window).push(progressListener); |
170 else | 175 else |
171 progressListeners.set(window, [progressListener]); | 176 progressListeners.set(window, [progressListener]); |
172 } | 177 } |
173 }; | 178 } |
174 | 179 |
175 /** | 180 /** |
176 * Removes a location listener registered for a window. | 181 * Removes a location listener registered for a window. |
177 */ | 182 */ |
178 exports.removeBrowserLocationListener = function removeBrowserLocationListener(/ **Window*/ window, /**Function*/ callback) | 183 exports.removeBrowserLocationListener = function removeBrowserLocationListener(/ **Window*/ window, /**Function*/ callback) |
179 { | 184 { |
180 if (!progressListeners.has(window)) | 185 if (!progressListeners.has(window)) |
181 return; | 186 return; |
182 | 187 |
183 let browser = (exports.getBrowser ? exports.getBrowser(window) : null); | 188 let browser = (exports.getBrowser ? exports.getBrowser(window) : null); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
352 { | 357 { |
353 return null; | 358 return null; |
354 } | 359 } |
355 } | 360 } |
356 else | 361 else |
357 { | 362 { |
358 let browser = exports.getBrowser(window); | 363 let browser = exports.getBrowser(window); |
359 return (browser ? browser.currentURI : null); | 364 return (browser ? browser.currentURI : null); |
360 } | 365 } |
361 }; | 366 }; |
367 | |
368 exports.addBrowserLocationListener = function addBrowserLocationListener(/** Window*/ window, /**Function*/ callback, /**Boolean*/ ignoreSameDoc) | |
369 { | |
370 // for Seamonkey we have to ignore same document flag because of bug #1035 171 | |
Wladimir Palant
2014/07/08 11:29:02
Please use a link, otherwise it won't be obvious w
saroyanm
2014/07/08 11:58:42
Done.
| |
371 _addBrowserLocationListener(window, callback, false); | |
372 }; | |
Wladimir Palant
2014/07/08 11:29:02
Forcing the ignoreSameDoc parameter to be always f
saroyanm
2014/07/08 11:58:42
I like this :)
| |
362 | 373 |
363 exports.contentContextMenu = ["contentAreaContextMenu", "mailContext"]; | 374 exports.contentContextMenu = ["contentAreaContextMenu", "mailContext"]; |
364 | 375 |
365 exports.defaultToolbarPosition = { | 376 exports.defaultToolbarPosition = { |
366 parent: ["PersonalToolbar", "msgToolbar"], | 377 parent: ["PersonalToolbar", "msgToolbar"], |
367 before: ["bookmarks-button", "button-junk"] | 378 before: ["bookmarks-button", "button-junk"] |
368 }; | 379 }; |
369 | 380 |
370 exports.statusbarPosition = { | 381 exports.statusbarPosition = { |
371 parent: "status-bar" | 382 parent: "status-bar" |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
939 event.state = {id: require("info").addonID}; | 950 event.state = {id: require("info").addonID}; |
940 browser._contentWindow.dispatchEvent(event); | 951 browser._contentWindow.dispatchEvent(event); |
941 }); | 952 }); |
942 }); | 953 }); |
943 }, true); | 954 }, true); |
944 }; | 955 }; |
945 | 956 |
946 break; | 957 break; |
947 } | 958 } |
948 } | 959 } |
OLD | NEW |