summaryrefslogtreecommitdiff
path: root/data/extensions/spyblock@gnu.org/lib/ext_common.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/spyblock@gnu.org/lib/ext_common.js')
-rw-r--r--data/extensions/spyblock@gnu.org/lib/ext_common.js124
1 files changed, 0 insertions, 124 deletions
diff --git a/data/extensions/spyblock@gnu.org/lib/ext_common.js b/data/extensions/spyblock@gnu.org/lib/ext_common.js
deleted file mode 100644
index 296c00f..0000000
--- a/data/extensions/spyblock@gnu.org/lib/ext_common.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * This file is part of Adblock Plus <https://adblockplus.org/>,
- * 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
- * published by the Free Software Foundation.
- *
- * Adblock Plus is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
- */
-
-(function(global)
-{
- const Cu = Components.utils;
-
- let {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
-
- if (!global.ext)
- global.ext = {};
-
- var wrapperSymbol = Symbol("ext-wrapper");
-
- function wrapFrames(frames)
- {
- if (!frames.length)
- return null;
-
- // We have frames as an array, non-Firefox code expects url and parent
- // properties however.
- Object.defineProperty(frames, "url", {
- enumerable: true,
- get: () => new URL(frames[0].location)
- });
-
- Object.defineProperty(frames, "parent", {
- enumerable: true,
- get: () => wrapFrames(frames.slice(1))
- });
-
- return frames;
- }
-
- var EventTarget = global.ext._EventTarget = function(port, windowID)
- {
- this._port = port;
- this._windowID = windowID;
- this.addListener((payload, sender, resolve) =>
- {
- if (payload.type)
- {
- let result = this._port._dispatch(payload.type, payload, sender);
- if (typeof result != "undefined")
- resolve(result);
- }
- });
- };
- EventTarget.prototype = {
- addListener: function(listener)
- {
- var wrapper = (message, sender) =>
- {
- if (this._windowID && this._windowID != message.targetID)
- return undefined;
-
- return new Promise((resolve, reject) =>
- {
- var sender = {};
- if (message.senderID)
- {
- // We will only get here on the background side so we can access
- // the Page object.
- const Page = require("ext_background").Page;
- sender.page = new Page(message.senderID);
- }
- if (message.frames)
- sender.frame = wrapFrames(message.frames);
- if (!listener(message.payload, sender, resolve))
- resolve(undefined);
- });
- };
- listener[wrapperSymbol] = wrapper;
- this._port.on("ext_message", wrapper);
- },
-
- removeListener: function(listener)
- {
- if (listener[wrapperSymbol])
- this._port.off("ext_message", listener[wrapperSymbol]);
- }
- };
-
- let pageName = "global";
- if (typeof location !== "undefined")
- pageName = location.pathname.replace(/.*\//, "").replace(/\..*?$/, "");
-
- let stringBundle = Services.strings.createBundle(
- "chrome://adblockplus/locale/" + pageName + ".properties?" + Math.random());
-
- global.ext.i18n = {
- getMessage(key, args)
- {
- try {
- return stringBundle.GetStringFromName(key);
- }
- catch(e)
- {
- // Don't report errors for special strings, these are expected to be
- // missing.
- if (key[0] != "@")
- Cu.reportError(e);
- return "";
- }
- }
- };
-
- if (typeof exports == "object")
- exports = global.ext;
-})(this);