[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