212
212
progressListeners.delete(window);
216
* Maps windows to a list of click listeners.
218
let clickListeners = new WeakMap();
221
* Makes sure that a function is called whenever the user clicks inside the
222
* browser's content area.
224
exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback)
226
let browser = (exports.getBrowser ? exports.getBrowser(window) : null);
229
browser.addEventListener("click", callback, true);
231
if (clickListeners.has(window))
232
clickListeners.get(window).push(callback);
234
clickListeners.set(window, [callback]);
239
* Removes all click listeners registered for a window, to be called on
242
exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window)
244
if (!clickListeners.has(window))
247
let browser = (exports.getBrowser ? exports.getBrowser(window) : null);
250
let listeners = clickListeners.get(window);
251
for (let i = 0; i < listeners.length; i++)
252
browser.removeEventListener("click", listeners[i], true);
254
clickListeners.delete(window);
257
215
let {application} = require("info");
258
216
switch (application)
359
317
return (browser ? browser.currentURI : null);
363
321
// for Seamonkey we have to ignore same document flag because of
364
322
// bug #1035171 (https://bugzilla.mozilla.org/show_bug.cgi?id=1035171)
365
323
let origAddBrowserLocationListener = exports.addBrowserLocationListener;
617
575
progressListeners.delete(window);
620
exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback)
622
if (clickListeners.has(window))
624
clickListeners.get(window).callbacks.push(callback);
628
let callbacks = [callback];
629
let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser)
632
for (let i = 0; i < callbacks.length; i++)
633
oldBrowser.removeEventListener("click", callbacks[i], true);
635
for (let i = 0; i < callbacks.length; i++)
636
newBrowser.addEventListener("click", callbacks[i], true);
638
listener.callbacks = callbacks;
640
clickListeners.set(window, listener);
643
exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window)
645
if (!clickListeners.has(window))
648
let listener = clickListeners.get(window);
651
clickListeners.delete(window);
654
578
// Make sure to close/reopen list of blockable items when the user changes tabs
655
579
let {WindowObserver} = require("windowObserver");
656
580
new WindowObserver({
805
730
progressListeners.delete(window);
808
exports.addBrowserClickListener = function ffn_addBrowserClickListener(/**Window*/ window, /**Function*/ callback)
810
if (clickListeners.has(window))
812
clickListeners.get(window).callbacks.push(callback);
816
let callbacks = [callback];
817
let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser)
820
for (let i = 0; i < callbacks.length; i++)
821
oldBrowser.removeEventListener("click", callbacks[i], true);
823
for (let i = 0; i < callbacks.length; i++)
824
newBrowser.addEventListener("click", callbacks[i], true);
826
listener.callbacks = callbacks;
828
clickListeners.set(window, listener);
831
exports.removeBrowserClickListeners = function ffn_removeBrowserClickListeners(/**Window*/ window)
833
if (!clickListeners.has(window))
836
let listener = clickListeners.get(window);
839
clickListeners.delete(window);
842
733
let {Filter} = require("filterClasses");
843
734
let {Prefs} = require("prefs");
844
735
let {Policy} = require("contentPolicy");