Skip to content

Commit

Permalink
Merge sandboxScripts again.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmaier committed Jul 15, 2014
1 parent 58a2ae4 commit fb7ac40
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 31 deletions.
19 changes: 7 additions & 12 deletions extension/modules/api/GM_sandboxScripts.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
"use strict";
const EXPORTED_SYMBOLS = ["GM_updatingEnabled", "GM_xpath"];
const EXPORTED_SYMBOLS = ["GM_SandboxScripts"];

if (!('XMLHttpRequest' in this))
if (!('XMLHttpRequest' in this)) {
this.XMLHttpRequest = Components.Constructor(
"@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
}

const GM_updatingEnabled = (function(r) {
const GM_SandboxScripts = (function(r) {
r = new XMLHttpRequest();
r.overrideMimeType('text/javascript'); // don't try to parse as XML
r.open('GET', 'resource://scriptish/api/sandbox/GM_updatingEnabled.js', false);
r.open('GET', 'resource://scriptish/api/sandboxScripts.js', false);
r.send(null);
return r.responseText;
})(new XMLHttpRequest());

const GM_xpath = (function(r) {
r.overrideMimeType('text/javascript'); // don't try to parse as XML
r.open('GET', 'resource://scriptish/api/sandbox/GM_xpath.js', false);
r.send(null);
return r.responseText;
})(new XMLHttpRequest());
})();
2 changes: 0 additions & 2 deletions extension/modules/api/sandbox/GM_updatingEnabled.js

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

var GM_updatingEnabled = true;

function GM_xpath(details) {
var contextNode, contextDocument, paths, resolver, namespace, result;

Expand Down
31 changes: 14 additions & 17 deletions extension/modules/utils/Scriptish_injectScripts.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
var EXPORTED_SYMBOLS = [
"Scriptish_injectScripts"
];
var EXPORTED_SYMBOLS = [ "Scriptish_injectScripts" ];

const Cu = Components.utils;
Cu.import("resource://scriptish/constants.js");
Cu.import("resource://scriptish/api/GM_sandboxScripts.js");

lazyImport(this, "resource://scriptish/logging.js", ["Scriptish_log", "Scriptish_logError"]);
lazyImport(this, "resource://scriptish/prefmanager.js", ["Scriptish_prefRoot"]);
lazyImport(this, "resource://scriptish/api.js", ["GM_API"]);
lazyImport(this, "resource://scriptish/api/GM_sandboxScripts.js", ["GM_updatingEnabled", "GM_xpath"]);
lazyImport(this, "resource://scriptish/api/GM_console.js", ["GM_console"]);
lazyImport(this, "resource://scriptish/api/GM_ScriptLogger.js", ["GM_ScriptLogger"]);

Expand Down Expand Up @@ -64,22 +62,21 @@ function Scriptish_injectScripts(options) {
// hack XPathResult since that is so commonly used
sandbox.XPathResult = XPATH_RESULT;

Cu.evalInSandbox(GM_updatingEnabled, sandbox);
Cu.evalInSandbox(GM_SandboxScripts, sandbox, "latest", "@initializer", 1);

// add GM_* API to sandbox
Scriptish_log('granting: ' + Object.keys(script.grant).join(', '))
Cu.evalInSandbox(GM_xpath, sandbox);

{
let GM_api = new GM_API(extend(options, {
script: script,
url: url,
winID: winID,
safeWin: safeWin,
unsafeWin: unsafeContentWin,
chromeWin: chromeWin,
sandbox: sandbox
}));

// add GM_* API to sandbox
let (GM_api = new GM_API(extend(options, {
script: script,
url: url,
winID: winID,
safeWin: safeWin,
unsafeWin: unsafeContentWin,
chromeWin: chromeWin,
sandbox: sandbox
}))) {
for (let funcName in GM_api) {
if (!useGrants || script.grant[funcName]) {
sandbox[funcName] = GM_api[funcName];
Expand Down

0 comments on commit fb7ac40

Please sign in to comment.