tor-browser

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

referrer-policy.sub.https.html (1742B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <meta name=timeout content=long>
      4 <meta name=variant content="?method=a">
      5 <meta name=variant content="?method=a&noreferrer">
      6 <meta name=variant content="?method=img">
      7 <meta name=variant content="?method=img&noreferrer">
      8 <meta name=variant content="?method=open">
      9 <meta name=variant content="?method=open&noreferrer">
     10 <meta name=variant content="?method=script">
     11 <meta name=variant content="?method=script&noreferrer">
     12 <script src="/resources/testdriver.js"></script>
     13 <script src="/resources/testdriver-vendor.js"></script>
     14 <script src="/resources/testharness.js"></script>
     15 <script src="/resources/testharnessreport.js"></script>
     16 <script src="resources/helpers.js"></script>
     17 <body>
     18 <script>
     19 const waitForRequest = async () => {
     20  const url = blankURL();
     21  url.searchParams.set('get-requests', 'true');
     22 
     23  for (let i = 0; i < 20; i++) {
     24    const resp = await fetch(url);
     25    const payload = await resp.json();
     26    if (payload !== null && payload.length > 0) {
     27      return payload;
     28    }
     29    await delay(100);
     30  }
     31  throw new Error('Timeout polling requests');
     32 };
     33 
     34 const searchParams = new URLSearchParams(location.search);
     35 
     36 promise_test(async t => {
     37  const noreferrer = searchParams.has('noreferrer');
     38 
     39  registerAttributionSrc({
     40    method: 'variant',
     41    extraQueryParams: {'store-request': 'true'},
     42    referrerPolicy: noreferrer ? 'no-referrer' : '',
     43  });
     44 
     45  const requests = await waitForRequest();
     46  assert_equals(requests.length, 1);
     47 
     48  if (noreferrer) {
     49    assert_not_own_property(requests[0], 'referer');
     50  } else {
     51    assert_own_property(requests[0], 'referer');
     52    assert_equals(requests[0].referer, location.toString());
     53  }
     54 
     55 }, 'attributionsrc referrer policy is propagated.');
     56 </script>