tor-browser

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

navigate.window.js (1936B)


      1 async_test(t => {
      2  var loadCount = 0;
      3  var expectedReferrer = location.href;
      4  const frame = document.createElement("iframe");
      5  var originalPath = "resources/refresh.py";
      6  frame.src = originalPath;
      7  frame.onload = t.step_func(() => {
      8    loadCount++;
      9    if (loadCount === 1) {
     10      assert_equals(frame.contentWindow.location.href, new URL(originalPath, self.location).href, "original page loads");
     11      assert_equals(frame.contentDocument.referrer, expectedReferrer, "referrer is parent frame");
     12      expectedReferrer = frame.src;
     13    } else if (loadCount === 2) {
     14      assert_equals(frame.contentWindow.location.href,
     15        new URL("resources/refreshed.txt?\u0080\u00FF", self.location).href, "bytes got mapped to code points of the same value");
     16      assert_equals(frame.contentDocument.referrer, expectedReferrer, "referrer is previous page");
     17      t.done();
     18    }
     19  });
     20  document.body.appendChild(frame)
     21 }, "When navigating the Refresh header needs to be followed");
     22 
     23 async_test(t => {
     24  var loadCount = 0;
     25  var expectedReferrer = location.href;
     26  const frame = document.createElement("iframe");
     27  var originalPath = "resources/multiple.asis";
     28  frame.src = originalPath
     29  frame.onload = t.step_func(() => {
     30    loadCount++;
     31    if (loadCount === 1) {
     32      assert_equals(frame.contentWindow.location.href, new URL(originalPath, self.location).href, "original page loads");
     33      assert_equals(frame.contentDocument.referrer, expectedReferrer, "referrer is parent frame");
     34      expectedReferrer = frame.src;
     35    } else if (loadCount === 2) {
     36      assert_equals(frame.contentWindow.location.href, new URL("resources/refreshed.txt", self.location).href, "refresh page loads");
     37      assert_equals(frame.contentDocument.referrer, expectedReferrer, "referrer is previous page");
     38      t.done();
     39    }
     40  });
     41  document.body.appendChild(frame)
     42 }, "When there's both a Refresh header and <meta> the Refresh header wins")