js/xpconnect/tests/unit/test_allowedDomains.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 function run_test() {
     2   var cu = Components.utils;
     3   var sbMaster = cu.Sandbox(["http://www.a.com",
     4                            "http://www.b.com",
     5                            "http://www.d.com"]);
     6   var sbSubset = cu.Sandbox(["http://www.d.com",                           
     7                            "http://www.a.com"]);
     9   var sbA = cu.Sandbox("http://www.a.com");
    10   var sbB = cu.Sandbox("http://www.b.com");
    11   var sbC = cu.Sandbox("http://www.c.com");
    13   sbMaster.objA = cu.evalInSandbox("var obj = {prop1:200}; obj", sbA);
    14   sbMaster.objB = cu.evalInSandbox("var obj = {prop1:200}; obj", sbB);
    15   sbMaster.objC = cu.evalInSandbox("var obj = {prop1:200}; obj", sbC);
    16   sbMaster.objOwn = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    18   sbMaster.objSubset = cu.evalInSandbox("var obj = {prop1:200}; obj", sbSubset);
    19   sbA.objMaster = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    20   sbSubset.objMaster = cu.evalInSandbox("var obj = {prop1:200}; obj", sbMaster);
    22   var ret;
    23   ret = cu.evalInSandbox("objA.prop1", sbMaster);
    24   do_check_eq(ret, 200);
    25   ret = cu.evalInSandbox("objB.prop1", sbMaster);
    26   do_check_eq(ret, 200);
    27   ret = cu.evalInSandbox("objSubset.prop1", sbMaster);
    28   do_check_eq(ret, 200);
    30   function evalAndCatch(str, sb) {
    31     try {
    32       ret = cu.evalInSandbox(str, sb);
    33       do_check_true(false, "unexpected pass")
    34     } catch (e) {    
    35       do_check_true(e.message && e.message.indexOf("Permission denied to access property") != -1);
    36     }  
    37   }
    39   evalAndCatch("objC.prop1", sbMaster);
    40   evalAndCatch("objMaster.prop1", sbA);
    41   evalAndCatch("objMaster.prop1", sbSubset);
    43   // Bug 777705:
    44   sbMaster.Components = cu.getComponentsForScope(sbMaster);
    45   Components.utils.evalInSandbox("Components.interfaces", sbMaster);
    46   do_check_true(true);
    47 }

mercurial