[Pkg-mozext-commits] [greasemonkey] 34/41: Revert "Switch to process message managers where practical."

David Prévot taffit at moszumanska.debian.org
Thu Apr 30 22:06:36 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository greasemonkey.

commit 58b25c58d5940eee4bc6035aed135265fec4183e
Author: Anthony Lieuallen <arantius at gmail.com>
Date:   Tue Apr 28 13:00:26 2015 -0400

    Revert "Switch to process message managers where practical."
    
    This reverts commit 34c6da5dad2e53b71015138494fda0e882da8560.
    
    # Conflicts:
    #	modules/installPolicy.js
    
    These helpers don't exist until Firefox 39!
---
 components/greasemonkey.js | 52 ++++++++++++++++++++++++++--------------------
 content/framescript.js     | 10 ++++-----
 modules/installPolicy.js   | 10 ++++-----
 modules/sandbox.js         |  4 ++--
 modules/scriptProtocol.js  | 14 ++++++-------
 modules/storageFront.js    | 11 +++++-----
 6 files changed, 54 insertions(+), 47 deletions(-)

diff --git a/components/greasemonkey.js b/components/greasemonkey.js
index 0428b94..828e391 100644
--- a/components/greasemonkey.js
+++ b/components/greasemonkey.js
@@ -44,33 +44,41 @@ function startup(aService) {
   loader.loadSubScript("chrome://greasemonkey/content/config.js");
   loader.loadSubScript("chrome://greasemonkey/content/third-party/mpl-utils.js");
 
-  var globalMm = Cc["@mozilla.org/globalmessagemanager;1"]
+  // Most incoming messages go to the "global" message manager.
+  var globalMessageManager = Cc["@mozilla.org/globalmessagemanager;1"]
       .getService(Ci.nsIMessageListenerManager);
+  globalMessageManager.addMessageListener(
+      'greasemonkey:script-install', aService.scriptInstall.bind(aService));
+  globalMessageManager.addMessageListener(
+      'greasemonkey:scripts-for-url', aService.getScriptsForUrl.bind(aService));
+  globalMessageManager.addMessageListener(
+      'greasemonkey:url-is-temp-file', aService.urlIsTempFile.bind(aService));
+
+  var scriptValHandler = aService.handleScriptValMsg.bind(aService);
+  globalMessageManager.addMessageListener(
+      'greasemonkey:scriptVal-delete', scriptValHandler);
+  globalMessageManager.addMessageListener(
+      'greasemonkey:scriptVal-get', scriptValHandler);
+  globalMessageManager.addMessageListener(
+      'greasemonkey:scriptVal-list', scriptValHandler);
+  globalMessageManager.addMessageListener(
+      'greasemonkey:scriptVal-set', scriptValHandler);
+
+  // This particular message must be listened for by the "parent" and not
+  // by "global".  Why?!?!?
+  var parentMessageManager = Cc["@mozilla.org/parentprocessmessagemanager;1"]
+      .getService(Ci.nsIMessageListenerManager);
+  parentMessageManager.addMessageListener(
+      'greasemonkey:scripts-for-uuid',
+      aService.getScriptsForUuid.bind(aService));
 
-  var s = aService;
-  var g = 'greasemonkey:';
-
-  globalMm.addMessageListener(
-      g + 'script-install', s.scriptInstall.bind(s));
-
-  Services.ppmm.addMessageListener(
-      g + 'scripts-for-url', s.getScriptsForUrl.bind(s));
-  Services.ppmm.addMessageListener(
-    g + 'scripts-for-uuid', s.getScriptsForUuid.bind(s));
-  Services.ppmm.addMessageListener(
-      g + 'url-is-temp-file', s.urlIsTempFile.bind(s));
-
-  var scriptValHandler = s.handleScriptValMsg.bind(s);
-  Services.ppmm.addMessageListener(g + 'scriptVal-delete', scriptValHandler);
-  Services.ppmm.addMessageListener(g + 'scriptVal-get', scriptValHandler);
-  Services.ppmm.addMessageListener(g + 'scriptVal-list', scriptValHandler);
-  Services.ppmm.addMessageListener(g + 'scriptVal-set', scriptValHandler);
+  // Yes, we have to load the frame script once here in the parent scope.
+  // Why?  Who knows!?
+  globalMessageManager.loadFrameScript(
+      'chrome://greasemonkey/content/framescript.js', true);
 
   Services.obs.addObserver(aService, 'quit-application', false);
 
-  Services.mm.loadFrameScript(
-      'chrome://greasemonkey/content/framescript.js', true);
-
   // Import this once, early, so that enqueued deletes can happen.
   Cu.import("resource://greasemonkey/util/enqueueRemoveFile.js");
 }
diff --git a/content/framescript.js b/content/framescript.js
index 24addd7..13a69d4 100644
--- a/content/framescript.js
+++ b/content/framescript.js
@@ -54,7 +54,7 @@ ScriptRunner.prototype.injectScripts = function(aScripts) {
 
   for (var i = 0, script = null; script = aScripts[i]; i++) {
     if (script.noframes && !winIsTop) continue;
-    var sandbox = createSandbox(script, this);
+    var sandbox = createSandbox(script, this, gScope);
     runScriptInSandbox(script, sandbox);
   }
 };
@@ -193,12 +193,12 @@ ContentObserver.prototype.pagehide = function(aEvent) {
   if (!gScriptRunners[windowId].menuCommands.length) return;
 
   if (aEvent.persisted) {
-    Services.cpmm.sendAsyncMessage('greasemonkey:toggle-menu-commands', {
+    sendAsyncMessage('greasemonkey:toggle-menu-commands', {
       frozen: true,
       windowId: windowId
     });
   } else {
-    Services.cpmm.sendAsyncMessage('greasemonkey:clear-menu-commands', {
+    sendAsyncMessage('greasemonkey:clear-menu-commands', {
       windowId: windowId
     });
   }
@@ -213,7 +213,7 @@ ContentObserver.prototype.pageshow = function(aEvent) {
 
   if (!gScriptRunners[windowId].menuCommands.length) return;
 
-  Services.cpmm.sendAsyncMessage('greasemonkey:toggle-menu-commands', {
+  sendAsyncMessage('greasemonkey:toggle-menu-commands', {
     frozen: false,
     windowId: windowId
   });
@@ -268,7 +268,7 @@ ContentObserver.prototype.runScripts = function(aRunWhen, aContentWin) {
     scriptRunner.window = aContentWin;
   }
 
-  var response = Services.cpmm.sendSyncMessage(
+  var response = sendSyncMessage(
     'greasemonkey:scripts-for-url', {
       'url': url,
       'when': aRunWhen,
diff --git a/modules/installPolicy.js b/modules/installPolicy.js
index 74e4e8d..68cb95c 100644
--- a/modules/installPolicy.js
+++ b/modules/installPolicy.js
@@ -7,7 +7,6 @@ var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 
-Cu.import("resource://gre/modules/Services.jsm");
 Cu.import('resource://gre/modules/XPCOMUtils.jsm');
 
 Cu.import('resource://greasemonkey/util.js');
@@ -92,20 +91,21 @@ var InstallPolicy = {
       return ret;
     }
 
-    var tmpResult = Services.cpmm.sendSyncMessage(
+    var messageManager = GM_util.findMessageManager(aContext);
+
+    var tmpResult = messageManager.sendSyncMessage(
         'greasemonkey:url-is-temp-file', {'url': aContentURI.spec});
     if (tmpResult.length && tmpResult[0]) {
       return ret;
     }
 
     if (!gIgnoreNextScript) {
-      var windowMm = GM_util.findMessageManager(aContext);
-      if (!windowMm) {
+      if (!messageManager) {
         dump('ERROR ignoring script ' + aContentURI.spec + ' because no content'
             + ' message manager could be located from ' + aContext + '\n');
       } else {
         ret = Ci.nsIContentPolicy.REJECT_REQUEST;
-        windowMm.sendAsyncMessage('greasemonkey:script-install', {
+        messageManager.sendAsyncMessage('greasemonkey:script-install', {
           'referer': aOriginURI.spec,
           'url': aContentURI.spec,
         });
diff --git a/modules/sandbox.js b/modules/sandbox.js
index 99e1e14..b426a85 100644
--- a/modules/sandbox.js
+++ b/modules/sandbox.js
@@ -25,7 +25,7 @@ function alert(msg) {
       .alert(null, "Greasemonkey alert", msg);
 }
 
-function createSandbox(aScript, aScriptRunner) {
+function createSandbox(aScript, aScriptRunner, aMessageManager) {
   var contentWin = aScriptRunner.window;
   var url = aScriptRunner.url;
 
@@ -87,7 +87,7 @@ function createSandbox(aScript, aScriptRunner) {
    sandbox.GM_registerMenuCommand = gmrmc;
   }
 
-  var scriptStorage = new GM_ScriptStorageFront(aScript);
+  var scriptStorage = new GM_ScriptStorageFront(aScript, aMessageManager);
   if (GM_util.inArray(aScript.grants, 'GM_deleteValue')) {
     sandbox.GM_deleteValue = GM_util.hitch(scriptStorage, 'deleteValue');
   }
diff --git a/modules/scriptProtocol.js b/modules/scriptProtocol.js
index e6253a2..a6426ac 100644
--- a/modules/scriptProtocol.js
+++ b/modules/scriptProtocol.js
@@ -1,14 +1,10 @@
 var EXPORTED_SYMBOLS = ['initScriptProtocol'];
 
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+Components.utils.import('resource://greasemonkey/util.js');
+
 const Cc = Components.classes;
 const Ci = Components.interfaces;
-const Cu = Components.utils;
-
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-Cu.import('resource://greasemonkey/util.js');
-
 const schemeName = 'greasemonkey-script';
 const ioService = Cc['@mozilla.org/network/io-service;1']
     .getService(Ci.nsIIOService);
@@ -116,7 +112,9 @@ var ScriptProtocol = {
     // Incomplete URI, send a 404.
     if (!m) return dummy;
 
-    var response = Services.cpmm.sendSyncMessage(
+    var mm = Cc["@mozilla.org/childprocessmessagemanager;1"]
+        .getService(Ci.nsISyncMessageSender);
+    var response = mm.sendSyncMessage(
       'greasemonkey:scripts-for-uuid', {'uuid': m[1]});
     // We expect exactly one response, listing exactly one script.
     if (response.length != 1) return dummy;
diff --git a/modules/storageFront.js b/modules/storageFront.js
index 76de3dd..075ca51 100644
--- a/modules/storageFront.js
+++ b/modules/storageFront.js
@@ -14,8 +14,9 @@ var EXPORTED_SYMBOLS = ['GM_ScriptStorageFront'];
 
 // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ //
 
-function GM_ScriptStorageFront(aScript) {
+function GM_ScriptStorageFront(aScript, aMessageManager) {
   this._db = null;
+  this._messageManager = aMessageManager;
   this._script = aScript;
   this.stringBundle = Components
     .classes["@mozilla.org/intl/stringbundle;1"]
@@ -47,14 +48,14 @@ GM_ScriptStorageFront.prototype.setValue = function(name, val) {
   }
 
   if ('undefined' == typeof val) val = null;
-  Services.cpmm.sendSyncMessage(
+  this._messageManager.sendSyncMessage(
       'greasemonkey:scriptVal-set',
       {scriptId: this._script.id, name: name, val: val});
 };
 
 
 GM_ScriptStorageFront.prototype.getValue = function(name, defVal) {
-  var value = Services.cpmm.sendSyncMessage(
+  var value = this._messageManager.sendSyncMessage(
       'greasemonkey:scriptVal-get',
       {scriptId: this._script.id, name: name});
   value = value.length && value[0];
@@ -72,14 +73,14 @@ GM_ScriptStorageFront.prototype.getValue = function(name, defVal) {
 
 
 GM_ScriptStorageFront.prototype.deleteValue = function(name) {
-  Services.cpmm.sendSyncMessage(
+  this._messageManager.sendSyncMessage(
       'greasemonkey:scriptVal-delete',
       {scriptId: this._script.id, name: name});
 };
 
 
 GM_ScriptStorageFront.prototype.listValues = function() {
-  var value = Services.cpmm.sendSyncMessage(
+  var value = this._messageManager.sendSyncMessage(
       'greasemonkey:scriptVal-list',
       {scriptId: this._script.id});
   return JSON.stringify(value.length && value[0] || []);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/greasemonkey.git



More information about the Pkg-mozext-commits mailing list