tor-browser

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

first-meta-changed-after-second-added.http.html (1344B)


      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 _before_ first meta.
     21      const first_meta = document.getElementById('referrermeta');
     22      const second_meta = document.createElement('meta');
     23      second_meta.name = 'referrer';
     24      second_meta.content = 'strict-origin';
     25      document.head.appendChild(second_meta);
     26      assert_equals(await fetchAndGetReferrer(), window.location.origin + '/',
     27                    'referrer should be origin only');
     28 
     29      // Update content attribute of first meta.
     30      first_meta.content = 'unsafe-url';
     31      assert_equals(await fetchAndGetReferrer(), window.location.href,
     32                    'referrer should be full url');
     33      }, 'document referrer policy is the value of the most recently modified <meta name="referrer"');
     34 
     35  </script>
     36 </body>