[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