summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/scriptish/userscript-sandbox.js
blob: 45f1f1a8f34e91f0a6a00c069874add0d1628f12 (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);
};