diff options
Diffstat (limited to 'data/extensions/spyblock@gnu.org/lib/appSupport.js')
-rw-r--r-- | data/extensions/spyblock@gnu.org/lib/appSupport.js | 121 |
1 files changed, 6 insertions, 115 deletions
diff --git a/data/extensions/spyblock@gnu.org/lib/appSupport.js b/data/extensions/spyblock@gnu.org/lib/appSupport.js index 992d568..ba8fdd1 100644 --- a/data/extensions/spyblock@gnu.org/lib/appSupport.js +++ b/data/extensions/spyblock@gnu.org/lib/appSupport.js @@ -1,6 +1,6 @@ /* * This file is part of Adblock Plus <https://adblockplus.org/>, - * Copyright (C) 2006-2015 Eyeo GmbH + * Copyright (C) 2006-2017 eyeo GmbH * * Adblock Plus is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -212,48 +212,6 @@ exports.removeBrowserLocationListeners = function removeBrowserLocationListeners progressListeners.delete(window); }; -/** - * Maps windows to a list of click listeners. - */ -let clickListeners = new WeakMap(); - -/** - * Makes sure that a function is called whenever the user clicks inside the - * browser's content area. - */ -exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback) -{ - let browser = (exports.getBrowser ? exports.getBrowser(window) : null); - if (browser) - { - browser.addEventListener("click", callback, true); - - if (clickListeners.has(window)) - clickListeners.get(window).push(callback); - else - clickListeners.set(window, [callback]); - } -}; - -/** - * Removes all click listeners registered for a window, to be called on - * cleanup. - */ -exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window) -{ - if (!clickListeners.has(window)) - return; - - let browser = (exports.getBrowser ? exports.getBrowser(window) : null); - if (browser) - { - let listeners = clickListeners.get(window); - for (let i = 0; i < listeners.length; i++) - browser.removeEventListener("click", listeners[i], true); - } - clickListeners.delete(window); -}; - let {application} = require("info"); switch (application) { @@ -269,7 +227,7 @@ switch (application) exports.addTab = function ff_addTab(window, url, event) { if (event) - window.openNewTabWith(url, exports.getBrowser(window).contentDocument, null, event, false); + window.openNewTabWith(url, null, null, event, false); else window.gBrowser.loadOneTab(url, {inBackground: false}); }; @@ -317,7 +275,7 @@ switch (application) exports.addTab = function sm_addTab(window, url, event) { if (event || !("gBrowser" in window)) - window.openNewTabWith(url, ("gBrowser" in window ? window.gBrowser.contentDocument : null), null, event, false); + window.openNewTabWith(url, null, null, event, false); else window.gBrowser.loadOneTab(url, {inBackground: false}); }; @@ -359,7 +317,7 @@ switch (application) return (browser ? browser.currentURI : null); } }; - + // for Seamonkey we have to ignore same document flag because of // bug #1035171 (https://bugzilla.mozilla.org/show_bug.cgi?id=1035171) let origAddBrowserLocationListener = exports.addBrowserLocationListener; @@ -617,40 +575,6 @@ switch (application) progressListeners.delete(window); }; - exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback) - { - if (clickListeners.has(window)) - { - clickListeners.get(window).callbacks.push(callback); - return; - } - - let callbacks = [callback]; - let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser) - { - if (oldBrowser) - for (let i = 0; i < callbacks.length; i++) - oldBrowser.removeEventListener("click", callbacks[i], true); - if (newBrowser) - for (let i = 0; i < callbacks.length; i++) - newBrowser.addEventListener("click", callbacks[i], true); - }); - listener.callbacks = callbacks; - - clickListeners.set(window, listener); - }; - - exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window) - { - if (!clickListeners.has(window)) - return; - - let listener = clickListeners.get(window); - listener.detach(); - - clickListeners.delete(window); - }; - // Make sure to close/reopen list of blockable items when the user changes tabs let {WindowObserver} = require("windowObserver"); new WindowObserver({ @@ -690,6 +614,7 @@ switch (application) } case "fennec2": + case "adblockbrowser": { exports.isKnownWindow = (window) => window.document.documentElement.id == "main-window"; @@ -805,40 +730,6 @@ switch (application) progressListeners.delete(window); }; - exports.addBrowserClickListener = function ffn_addBrowserClickListener(/**Window*/ window, /**Function*/ callback) - { - if (clickListeners.has(window)) - { - clickListeners.get(window).callbacks.push(callback); - return; - } - - let callbacks = [callback]; - let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser) - { - if (oldBrowser) - for (let i = 0; i < callbacks.length; i++) - oldBrowser.removeEventListener("click", callbacks[i], true); - if (newBrowser) - for (let i = 0; i < callbacks.length; i++) - newBrowser.addEventListener("click", callbacks[i], true); - }); - listener.callbacks = callbacks; - - clickListeners.set(window, listener); - }; - - exports.removeBrowserClickListeners = function ffn_removeBrowserClickListeners(/**Window*/ window) - { - if (!clickListeners.has(window)) - return; - - let listener = clickListeners.get(window); - listener.detach(); - - clickListeners.delete(window); - }; - let {Filter} = require("filterClasses"); let {Prefs} = require("prefs"); let {Policy} = require("contentPolicy"); @@ -876,7 +767,7 @@ switch (application) onShutdown.add(function() { let window = null; - for (window in UI.applicationWindows) + for (window of UI.applicationWindows) break; if (window && menuItem) |