blob: 1c92066a9e00b7daf866351ec83295d2d3459450 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
'use strict';
var { Cc, Ci, Cu } = require('chrome');
var {GM_API} = require("./greasemonkey-api");
exports.createSandbox = function createSandbox(safeWin, userScript, aURL) {
var script = userScript.source;
var sandbox = new Cu.Sandbox(safeWin);
sandbox.window = safeWin;
sandbox.document = sandbox.window.document;
sandbox.__proto__ = safeWin;
var api = new GM_API(userScript, aURL, null, safeWin, safeWin.wrappedJSObject);
for (var key in api) {
sandbox[key] = api[key];
}
return sandbox;
};
exports.evalInSandbox = function(code, sandbox, jsVersion) {
jsVersion = jsVersion || "1.8";
Cu.evalInSandbox("(function(){"+code+"})();", sandbox, jsVersion);
};
|