tor-browser

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

document-referrer.https.html (2089B)


      1 <!DOCTYPE html>
      2 <title>Test document.referrer referrer</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="/common/dispatcher/dispatcher.js"></script>
      6 <script src="/common/utils.js"></script>
      7 <script src="resources/utils.js"></script>
      8 
      9 <body>
     10 
     11 <script>
     12 promise_test(async () => {
     13  const fenced_frame = attachFencedFrameContext();
     14 
     15  // Test the value of `document.referrer` inside a top-level fenced frame.
     16  const fenced_frame_url = await fenced_frame.execute(() => {
     17    assert_equals(document.referrer, "",
     18                  "The top-level fenced frame's document.referrer is censored");
     19    return location.href;
     20  });
     21 
     22  // Test an iframe nested inside a fenced frame.
     23  await fenced_frame.execute(async () => {
     24    const nested_iframe = attachIFrameContext();
     25    await nested_iframe.execute((expected_referrer) => {
     26      assert_equals(document.referrer, expected_referrer,
     27                    `The document.referrer of the iframe inside the fenced
     28                     frame is not censored`);
     29    }, [location.href]);
     30  });
     31 
     32  // Test a nested fenced frame.
     33  await fenced_frame.execute(async () => {
     34    const nested_fenced_frame = attachFencedFrameContext();
     35    await nested_fenced_frame.execute(() => {
     36      assert_equals(document.referrer, "",
     37                    `The document.referrer of the nested fenced frame is
     38                     censored`);
     39    });
     40  });
     41 
     42  // Test a top-level fenced frame after it navigates itself.
     43  // Navigate the fenced frame. (Refresh it, so we can still send it scripts.)
     44  await fenced_frame.execute(() => {
     45    window.executor.suspend(() => {
     46      location.href = location.href;
     47    });
     48  });
     49 
     50  // Check that it now sees its original URL as the referrer.
     51  await fenced_frame.execute((expected_referrer) => {
     52    assert_equals(document.referrer, expected_referrer,
     53                  `The document.referrer of a fenced frame after it navigates
     54                   itself is not censored.`);
     55  }, [fenced_frame_url]);
     56 
     57 }, "document.referrer");
     58 </script>
     59 
     60 </body>