tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_allowedDomains.js (1559B)


      1 function run_test() {
      2  var sbMaster = Cu.Sandbox(["http://www.a.com",
      3                           "http://www.b.com",
      4                           "http://www.d.com"]);
      5  var sbSubset = Cu.Sandbox(["http://www.d.com",
      6                           "http://www.a.com"]);
      7 
      8  var sbA = Cu.Sandbox("http://www.a.com");
      9  var sbB = Cu.Sandbox("http://www.b.com");
     10  var sbC = Cu.Sandbox("http://www.c.com");
     11 
     12  sbMaster.objA = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbA);
     13  sbMaster.objB = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbB);
     14  sbMaster.objC = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbC);
     15  sbMaster.objOwn = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
     16  
     17  sbMaster.objSubset = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbSubset);
     18  sbA.objMaster = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
     19  sbSubset.objMaster = Cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
     20 
     21  var ret;
     22  ret = Cu.evalInSandbox("objA.prop1", sbMaster);
     23  Assert.equal(ret, 200);
     24  ret = Cu.evalInSandbox("objB.prop1", sbMaster);
     25  Assert.equal(ret, 200);
     26  ret = Cu.evalInSandbox("objSubset.prop1", sbMaster);
     27  Assert.equal(ret, 200);
     28  
     29  function evalAndCatch(str, sb) {
     30    try {
     31      ret = Cu.evalInSandbox(str, sb);
     32      Assert.ok(false, "unexpected pass")
     33    } catch (e) {    
     34      Assert.ok(e.message && e.message.includes("Permission denied to access property"));
     35    }  
     36  }
     37  
     38  evalAndCatch("objC.prop1", sbMaster);
     39  evalAndCatch("objMaster.prop1", sbA);
     40  evalAndCatch("objMaster.prop1", sbSubset);
     41 }