tor-browser

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

opener-setter.window.js (1109B)


      1 [
      2  undefined,
      3  42,
      4  function() { return "hi" },
      5  "hi",
      6  {},
      7  [],
      8  Symbol()
      9 ].forEach(val => {
     10  test(t => {
     11    const frame = document.body.appendChild(document.createElement("iframe")),
     12          win = frame.contentWindow;
     13    t.add_cleanup(() => frame.remove());
     14 
     15    assert_own_property(win, "opener");
     16    assert_equals(win.opener, null);
     17    const beforeDesc = Object.getOwnPropertyDescriptor(win, "opener"),
     18          openerGet = beforeDesc.get,
     19          openerSet = beforeDesc.set;
     20    assert_own_property(beforeDesc, "get");
     21    assert_own_property(beforeDesc, "set");
     22    assert_true(beforeDesc.enumerable);
     23    assert_true(beforeDesc.configurable);
     24 
     25    win.opener = val;
     26    assert_equals(win.opener, val);
     27    assert_equals(openerGet(), null);
     28 
     29    const desc = Object.getOwnPropertyDescriptor(win, "opener");
     30    assert_equals(desc.value, val);
     31    assert_true(desc.writable);
     32    assert_true(desc.enumerable);
     33    assert_true(desc.configurable);
     34 
     35    openerSet("x");
     36    assert_equals(win.opener, "x");
     37  }, "Setting window.opener to " + String(val)); // String() needed for symbols
     38 });