[Pkg-mozext-commits] [adblock-plus-element-hiding-helper] 06/12: Issue 3443 - Use process script instead of a frame script in Element Hiding Helper
David Prévot
taffit at moszumanska.debian.org
Fri Jan 22 00:35:51 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus-element-hiding-helper.
commit 3f6068f32be2cc5adc4642734deb62fd3a209480
Author: Wladimir Palant <trev at adblockplus.org>
Date: Mon Dec 21 13:42:27 2015 +0100
Issue 3443 - Use process script instead of a frame script in Element Hiding Helper
---
chrome/content/composer.js | 4 +-
chrome/content/frameScript.js | 49 ----------------------
chrome/content/{actor.jsm => processScript.js} | 56 ++++++++++++++++----------
lib/aardvark.js | 14 +++----
lib/main.js | 10 ++---
metadata.gecko | 6 +--
6 files changed, 51 insertions(+), 88 deletions(-)
diff --git a/chrome/content/composer.js b/chrome/content/composer.js
index 3832122..73a937f 100644
--- a/chrome/content/composer.js
+++ b/chrome/content/composer.js
@@ -493,8 +493,8 @@ function fillAttributes(nodeData)
function togglePreview(preview, forgetNode)
{
- let messageManager = Cc["@mozilla.org/globalmessagemanager;1"]
- .getService(Ci.nsIMessageBroadcaster);
+ let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
+ .getService(Ci.nsIMessageBroadcaster);
messageManager.broadcastAsyncMessage("ElemHideHelper:Preview", {
nodeID: nodeID,
stylesheetData: preview ? stylesheetData : null,
diff --git a/chrome/content/frameScript.js b/chrome/content/frameScript.js
deleted file mode 100644
index e6233d6..0000000
--- a/chrome/content/frameScript.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * This Source Code is subject to the terms of the Mozilla Public License
- * version 2.0 (the "License"). You can obtain a copy of the License at
- * http://mozilla.org/MPL/2.0/.
- */
-
-(function()
-{
- const Cu = Components.utils;
-
- let rand = Components.stack.filename.replace(/.*\?/, "");
- let module = "chrome://elemhidehelper/content/actor.jsm?" + rand;
- let {shutdown, getNodeInfo, togglePreview, forgetNode} = Cu.import(module, {});
-
- addMessageListener("ElemHideHelper:Shutdown", onShutdown);
- addMessageListener("ElemHideHelper:GetNodeInfo", onGetNodeInfo);
- addMessageListener("ElemHideHelper:Preview", onTogglePreview);
-
- function onShutdown()
- {
- shutdown();
- try
- {
- Cu.unload(module);
- }
- catch (e)
- {
- Cu.reportError(e);
- }
-
- removeMessageListener("ElemHideHelper:Shutdown", onShutdown);
- removeMessageListener("ElemHideHelper:GetNodeInfo", onGetNodeInfo);
- removeMessageListener("ElemHideHelper:Preview", onTogglePreview);
- }
-
- function onGetNodeInfo(message)
- {
- let nodeInfo = getNodeInfo(message.objects.element);
- nodeInfo.messageId = message.data;
- sendAsyncMessage("ElemHideHelper:GetNodeInfo:Response", nodeInfo);
- }
-
- function onTogglePreview(message)
- {
- togglePreview(message.data.nodeID, message.data.stylesheetData);
- if (message.data.forgetNode)
- forgetNode(message.data.nodeID);
- }
-})();
diff --git a/chrome/content/actor.jsm b/chrome/content/processScript.js
similarity index 77%
rename from chrome/content/actor.jsm
rename to chrome/content/processScript.js
index 1857f0a..abf33e1 100644
--- a/chrome/content/actor.jsm
+++ b/chrome/content/processScript.js
@@ -4,9 +4,6 @@
* http://mozilla.org/MPL/2.0/.
*/
-let EXPORTED_SYMBOLS = ["shutdown", "getNodeInfo", "togglePreview",
- "forgetNode"];
-
const Ci = Components.interfaces;
const Cu = Components.utils;
@@ -25,29 +22,46 @@ let actor = {
name: name
};
+addMessageListener("ElemHideHelper:Shutdown", onShutdown);
+addMessageListener("ElemHideHelper:GetNodeInfo", onGetNodeInfo);
+addMessageListener("ElemHideHelper:Preview", onTogglePreview);
+
DebuggerServer.addTabActor(actor, name);
-var shutdown = (function()
+function onShutdown()
{
- let executed = false;
- return function()
+ removeMessageListener("ElemHideHelper:Shutdown", onShutdown);
+ removeMessageListener("ElemHideHelper:GetNodeInfo", onGetNodeInfo);
+ removeMessageListener("ElemHideHelper:Preview", onTogglePreview);
+
+ try
{
- if (!executed)
- {
- executed = true;
- try
- {
- DebuggerServer.removeTabActor(actor);
- }
- catch (e)
- {
- // The call above will throw in the content process despite succeeding,
- // see https://bugzilla.mozilla.org/show_bug.cgi?id=1189780.
- Cu.reportError(e);
- }
- }
+ DebuggerServer.removeTabActor(actor);
+ }
+ catch (e)
+ {
+ // The call above will throw in the content process despite succeeding,
+ // see https://bugzilla.mozilla.org/show_bug.cgi?id=1189780.
+ Cu.reportError(e);
}
-})();
+}
+
+function onGetNodeInfo(message)
+{
+ if (Cu.isCrossProcessWrapper(message.objects.element))
+ return;
+
+ let nodeInfo = getNodeInfo(message.objects.element);
+ nodeInfo.messageId = message.data;
+ sendAsyncMessage("ElemHideHelper:GetNodeInfo:Response", nodeInfo);
+}
+
+function onTogglePreview(message)
+{
+ togglePreview(message.data.nodeID, message.data.stylesheetData);
+ if (message.data.forgetNode)
+ forgetNode(message.data.nodeID);
+}
function Actor(connection, tabActor)
{
diff --git a/lib/aardvark.js b/lib/aardvark.js
index 13055c8..e865872 100644
--- a/lib/aardvark.js
+++ b/lib/aardvark.js
@@ -589,13 +589,11 @@ let Aardvark = exports.Aardvark =
select: function(elem)
{
- if (!elem)
+ if (!elem || !this.window)
return false;
- let browser = this.browser;
- if ("selectedBrowser" in browser) // tabbrowser element
- browser = browser.selectedBrowser;
-
+ let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
+ .getService(Ci.nsIMessageBroadcaster);
let messageId = ++messageCounter;
let callback = (message) =>
{
@@ -603,7 +601,7 @@ let Aardvark = exports.Aardvark =
if (response.messageId != messageId)
return;
- browser.messageManager.removeMessageListener(
+ messageManager.removeMessageListener(
"ElemHideHelper:GetNodeInfo:Response",
callback
);
@@ -616,11 +614,11 @@ let Aardvark = exports.Aardvark =
this.quit();
};
- browser.messageManager.addMessageListener(
+ messageManager.addMessageListener(
"ElemHideHelper:GetNodeInfo:Response",
callback
);
- browser.messageManager.sendAsyncMessage(
+ messageManager.broadcastAsyncMessage(
"ElemHideHelper:GetNodeInfo",
messageId,
{
diff --git a/lib/main.js b/lib/main.js
index 6046d6b..9a4ee67 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -47,12 +47,12 @@ request.addEventListener("load", function(event)
request.send(null);
// Load our developer tools actor
-let frameScript = "chrome://elemhidehelper/content/frameScript.js?" + elementMarkerClass;
-let messageManager = Cc["@mozilla.org/globalmessagemanager;1"]
- .getService(Ci.nsIFrameScriptLoader);
-messageManager.loadFrameScript(frameScript, true);
+let processScript = "chrome://elemhidehelper/content/processScript.js?" + elementMarkerClass;
+let messageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
+ .getService(Ci.nsIProcessScriptLoader);
+messageManager.loadProcessScript(processScript, true);
onShutdown.add(() => {
- messageManager.removeDelayedFrameScript(frameScript);
+ messageManager.removeDelayedProcessScript(processScript);
messageManager.QueryInterface(Ci.nsIMessageBroadcaster).broadcastAsyncMessage("ElemHideHelper:Shutdown");
});
diff --git a/metadata.gecko b/metadata.gecko
index 535a397..435fb28 100644
--- a/metadata.gecko
+++ b/metadata.gecko
@@ -20,7 +20,7 @@ zh-CN=https://adblockplus.org/zh_CN/elemhidehelper
zh-TW=https://adblockplus.org/zh_TW/elemhidehelper
[compat]
-firefox=29.0/46.0
-thunderbird=29.0/46.0
-seamonkey=2.26/2.42
+firefox=38.0/46.0
+thunderbird=38.0/46.0
+seamonkey=2.35/2.42
conkeror=0.1/100.0
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus-element-hiding-helper.git
More information about the Pkg-mozext-commits
mailing list