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

David Prévot taffit at moszumanska.debian.org
Thu Apr 30 22:06:34 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 34c6da5dad2e53b71015138494fda0e882da8560
Author: Anthony Lieuallen <arantius at gmail.com>
Date:   Wed Apr 22 15:05:48 2015 -0400

    Switch to process message managers where practical.
    
    It's trivial/easy to get a reference to the process-relative message managers, so wherever window/<browser> scope is not needed, use that style.
---
 components/greasemonkey.js | 52 ++++++++++++++++++++--------------------------
 content/framescript.js     |  8 +++----
 modules/installPolicy.js   | 12 +++++------
 modules/sandbox.js         |  4 ++--
 modules/scriptProtocol.js  | 14 +++++++------
 modules/storageFront.js    | 11 +++++-----
 6 files changed, 47 insertions(+), 54 deletions(-)

diff --git a/components/greasemonkey.js b/components/greasemonkey.js
index 9f16e2d..397214d 100644
--- a/components/greasemonkey.js
+++ b/components/greasemonkey.js
@@ -44,41 +44,33 @@ function startup(aService) {
   loader.loadSubScript("chrome://greasemonkey/content/config.js");
   loader.loadSubScript("chrome://greasemonkey/content/third-party/mpl-utils.js");
 
-  // Most incoming messages go to the "global" message manager.
-  var globalMessageManager = Cc["@mozilla.org/globalmessagemanager;1"]
+  var globalMm = 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));
 
-  // 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);
+  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);
 
   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 5cc9cd7..62cc91e 100644
--- a/content/framescript.js
+++ b/content/framescript.js
@@ -180,12 +180,12 @@ ContentObserver.prototype.pagehide = function(aEvent) {
   if (!gScriptRunners[windowId].menuCommands.length) return;
 
   if (aEvent.persisted) {
-    sendAsyncMessage('greasemonkey:toggle-menu-commands', {
+    Services.cpmm.sendAsyncMessage('greasemonkey:toggle-menu-commands', {
       frozen: true,
       windowId: windowId
     });
   } else {
-    sendAsyncMessage('greasemonkey:clear-menu-commands', {
+    Services.cpmm.sendAsyncMessage('greasemonkey:clear-menu-commands', {
       windowId: windowId
     });
   }
@@ -200,7 +200,7 @@ ContentObserver.prototype.pageshow = function(aEvent) {
 
   if (!gScriptRunners[windowId].menuCommands.length) return;
 
-  sendAsyncMessage('greasemonkey:toggle-menu-commands', {
+  Services.cpmm.sendAsyncMessage('greasemonkey:toggle-menu-commands', {
     frozen: false,
     windowId: windowId
   });
@@ -255,7 +255,7 @@ ContentObserver.prototype.runScripts = function(aRunWhen, aContentWin) {
     scriptRunner.window = aContentWin;
   }
 
-  var response = sendSyncMessage(
+  var response = Services.cpmm.sendSyncMessage(
     'greasemonkey:scripts-for-url', {
       'url': url,
       'when': aRunWhen,
diff --git a/modules/installPolicy.js b/modules/installPolicy.js
index 8ec7f26..ce1cd4e 100644
--- a/modules/installPolicy.js
+++ b/modules/installPolicy.js
@@ -7,6 +7,7 @@ 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');
@@ -93,19 +94,18 @@ var InstallPolicy = {
       return ret;
     }
 
-    var messageManager = GM_util.findMessageManager(aContext);
 
-    var tmpResult = messageManager
-        .sendSyncMessage('greasemonkey:url-is-temp-file', {
-          'url': aContentURI.spec,
-        });
+    var tmpResult = Services.cpmm.sendSyncMessage(
+        'greasemonkey:url-is-temp-file', {'url': aContentURI.spec});
     if (tmpResult.length && tmpResult[0]) {
       return ret;
     }
 
     if (!gIgnoreNextScript) {
       ret = Ci.nsIContentPolicy.REJECT_REQUEST;
-      messageManager.sendAsyncMessage('greasemonkey:script-install', {
+      var windowMm = GM_util.findMessageManager(aContext);
+      windowMm.sendAsyncMessage('greasemonkey:script-install', {
+        'referer': aOriginURI.spec,
         'url': aContentURI.spec,
       });
     }
diff --git a/modules/sandbox.js b/modules/sandbox.js
index 0907f98..274aa1d 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, aMessageManager) {
+function createSandbox(aScript, aScriptRunner) {
   var contentWin = aScriptRunner.window;
   var url = aScriptRunner.url;
 
@@ -87,7 +87,7 @@ function createSandbox(aScript, aScriptRunner, aMessageManager) {
    sandbox.GM_registerMenuCommand = gmrmc;
   }
 
-  var scriptStorage = new GM_ScriptStorageFront(aScript, aMessageManager);
+  var scriptStorage = new GM_ScriptStorageFront(aScript);
   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 a6426ac..e6253a2 100644
--- a/modules/scriptProtocol.js
+++ b/modules/scriptProtocol.js
@@ -1,10 +1,14 @@
 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);
@@ -112,9 +116,7 @@ var ScriptProtocol = {
     // Incomplete URI, send a 404.
     if (!m) return dummy;
 
-    var mm = Cc["@mozilla.org/childprocessmessagemanager;1"]
-        .getService(Ci.nsISyncMessageSender);
-    var response = mm.sendSyncMessage(
+    var response = Services.cpmm.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 075ca51..76de3dd 100644
--- a/modules/storageFront.js
+++ b/modules/storageFront.js
@@ -14,9 +14,8 @@ var EXPORTED_SYMBOLS = ['GM_ScriptStorageFront'];
 
 // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ //
 
-function GM_ScriptStorageFront(aScript, aMessageManager) {
+function GM_ScriptStorageFront(aScript) {
   this._db = null;
-  this._messageManager = aMessageManager;
   this._script = aScript;
   this.stringBundle = Components
     .classes["@mozilla.org/intl/stringbundle;1"]
@@ -48,14 +47,14 @@ GM_ScriptStorageFront.prototype.setValue = function(name, val) {
   }
 
   if ('undefined' == typeof val) val = null;
-  this._messageManager.sendSyncMessage(
+  Services.cpmm.sendSyncMessage(
       'greasemonkey:scriptVal-set',
       {scriptId: this._script.id, name: name, val: val});
 };
 
 
 GM_ScriptStorageFront.prototype.getValue = function(name, defVal) {
-  var value = this._messageManager.sendSyncMessage(
+  var value = Services.cpmm.sendSyncMessage(
       'greasemonkey:scriptVal-get',
       {scriptId: this._script.id, name: name});
   value = value.length && value[0];
@@ -73,14 +72,14 @@ GM_ScriptStorageFront.prototype.getValue = function(name, defVal) {
 
 
 GM_ScriptStorageFront.prototype.deleteValue = function(name) {
-  this._messageManager.sendSyncMessage(
+  Services.cpmm.sendSyncMessage(
       'greasemonkey:scriptVal-delete',
       {scriptId: this._script.id, name: name});
 };
 
 
 GM_ScriptStorageFront.prototype.listValues = function() {
-  var value = this._messageManager.sendSyncMessage(
+  var value = Services.cpmm.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