summaryrefslogtreecommitdiff
path: root/data/extensions/spyblock@gnu.org/lib/ext_background.js
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2017-09-01 16:35:50 -0400
committerRuben Rodriguez <ruben@gnu.org>2017-09-01 16:35:50 -0400
commite8730f68798f173bd4d1c2f9b7ce02985e3fd771 (patch)
tree711132ed84ef8ae9e0621de5436a6818a5fa1e12 /data/extensions/spyblock@gnu.org/lib/ext_background.js
parentedde38bbb0e0afb9b8a78c002996c758fb6023b6 (diff)
SpyBlock updated to 2.9.1
Diffstat (limited to 'data/extensions/spyblock@gnu.org/lib/ext_background.js')
-rw-r--r--data/extensions/spyblock@gnu.org/lib/ext_background.js57
1 files changed, 17 insertions, 40 deletions
diff --git a/data/extensions/spyblock@gnu.org/lib/ext_background.js b/data/extensions/spyblock@gnu.org/lib/ext_background.js
index 2a50142..b57f96c 100644
--- a/data/extensions/spyblock@gnu.org/lib/ext_background.js
+++ b/data/extensions/spyblock@gnu.org/lib/ext_background.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
@@ -17,31 +17,21 @@
let {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", null);
let {Services} = Cu.import("resource://gre/modules/Services.jsm", null);
-let {
- _MessageProxy: MessageProxy,
- _EventTarget: EventTarget,
- _getSender: getSender
-} = require("ext_common");
-exports.onMessage = new EventTarget();
-let messageProxy = new MessageProxy(
- Cc["@mozilla.org/globalmessagemanager;1"]
- .getService(Ci.nsIMessageListenerManager),
- exports.onMessage);
-onShutdown.add(function()
-{
- messageProxy._disconnect();
-});
+let {_EventTarget: EventTarget, i18n} = require("ext_common");
+let {port} = require("messaging");
+
+exports.onMessage = new EventTarget(port);
+exports.i18n = i18n;
-function Page(sender)
+function Page(windowID)
{
- this._sender = sender;
+ this._windowID = windowID;
}
Page.prototype = {
- sendMessage: function(message)
+ sendMessage: function(payload)
{
- if (this._sender)
- this._sender.sendAsyncMessage("AdblockPlus:Message", {payload: message});
+ port.emit("ext_message", {targetID: this._windowID, payload});
}
};
exports.Page = Page;
@@ -50,48 +40,35 @@ function PageMap()
{
this._map = new Map();
- Services.obs.addObserver(this, "message-manager-disconnect", true);
- onShutdown.add(function()
- {
- Services.obs.removeObserver(this, "message-manager-disconnect");
- }.bind(this));
+ port.on("ext_disconnect", windowID => this._map.delete(windowID));
}
PageMap.prototype = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
-
- observe: function(subject, topic, data)
- {
- if (topic == "message-manager-disconnect")
- this._map.delete(subject);
- },
-
keys: function()
{
let result = [];
- for (let sender of this._map.keys())
- result.push(new Page(sender));
+ for (let windowID of this._map.keys())
+ result.push(new Page(windowID));
return result;
},
get: function(page)
{
- return this._map.get(page._sender);
+ return this._map.get(page._windowID);
},
set: function(page, value)
{
- if (page._sender)
- this._map.set(page._sender, value);
+ this._map.set(page._windowID, value);
},
has: function(page)
{
- return this._map.has(page._sender);
+ return this._map.has(page._windowID);
},
delete: function(page)
{
- this._map.delete(page._sender);
+ return this._map.delete(page._windowID);
}
};
exports.PageMap = PageMap;