tor-browser

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

noExecute-05.js (962B)


      1 // Tests that NX disallows debuggee execution for all debuggees.
      2 
      3 load(libdir + "asserts.js");
      4 load(libdir + "debuggerNXHelper.js");
      5 
      6 var g1 = newGlobal({newCompartment: true});
      7 var g2 = newGlobal({newCompartment: true});
      8 var dbg = new Debugger;
      9 
     10 dbg.addDebuggee(g1);
     11 dbg.addDebuggee(g2);
     12 
     13 g1.eval(`
     14        function f() { }
     15        var o = {
     16          get p() { },
     17          set p(x) { }
     18        };
     19        `);
     20 
     21 g2.eval(`
     22        function f() { }
     23        var o = {
     24          get p() { },
     25          set p(x) { }
     26        };
     27        `);
     28 
     29 var handlers = [() => { g1.f(); },
     30                () => { g1.o.p } ,
     31                () => { g1.o.p = 42; },
     32                () => { g2.f(); },
     33                () => { g2.o.p } ,
     34                () => { g2.o.p = 42; } ];
     35 
     36 function testHook(hookName) {
     37  for (var h of handlers) {
     38    assertThrowsInstanceOf(h, Debugger.DebuggeeWouldRun);
     39  }
     40 }
     41 
     42 testDebuggerHooksNX(dbg, g1, testHook);
     43 testDebuggerHooksNX(dbg, g2, testHook);