tor-browser

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

meta-referrer-removed-2.http.html (1237B)


      1 <!DOCTYPE html>
      2 <head>
      3  <script src="/resources/testharness.js"></script>
      4  <script src="/resources/testharnessreport.js"></script>
      5 
      6  <meta name="referrer" content="no-referrer" id="referrermeta">
      7 </head>
      8 <body>
      9  <script>
     10    async function fetchAndGetReferrer() {
     11      let response = await fetch('/common/security-features/subresource/xhr.py');
     12      let data = await response.json();
     13      return data.headers.referer;
     14    }
     15 
     16    promise_test(async t => {
     17      assert_equals(await fetchAndGetReferrer(), undefined,
     18                    'referrer should not be set');
     19 
     20      // Add second meta tag.
     21      const second_meta = document.createElement('meta');
     22      second_meta.name = 'referrer';
     23      second_meta.content = 'strict-origin';
     24      document.head.appendChild(second_meta);
     25      // Second meta should override the first.
     26      assert_equals(await fetchAndGetReferrer(), location.origin + '/',
     27                    'referrer should be origin only');
     28 
     29      second_meta.remove();
     30      assert_equals(await fetchAndGetReferrer(), window.location.origin + '/',
     31                    'referrer should be origin only');
     32    }, 'referrer policy does not change when second <meta name="referrer"> is removed');
     33  </script>
     34 </body>