tor-browser

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

cache-revalidation.https.html (1323B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>Tests Stale While Revalidate is not executed for fetch API</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/client-hints/resources/export.js"></script>
      7 <script src="/common/utils.js"></script>
      8 <script>
      9 function wait25ms(test) {
     10  return new Promise(resolve => {
     11    test.step_timeout(() => {
     12      resolve();
     13    }, 25);
     14  });
     15 }
     16 
     17 promise_test(async (test) => {
     18  var request_token = token();
     19 
     20  const response = await fetch(`/client-hints/resources/stale-echo-client-hints.py?token=` + request_token);
     21  const response2 = await fetch(`/client-hints/resources/stale-echo-client-hints.py?token=` + request_token);
     22 
     23  assert_equals(response.headers.get('Unique-Id'), response2.headers.get('Unique-Id'));
     24 
     25  while(true) {
     26    const revalidation_check = await fetch(`/client-hints/resources/stale-echo-client-hints.py?query&token=` + request_token);
     27    if (revalidation_check.headers.get('Count') == '2') {
     28      client_hints_full_list.forEach(header => {
     29        assert_equals(revalidation_check.headers.get(header+"-recieved"), revalidation_check.headers.get(header+"-previous"));
     30      });
     31      break;
     32    }
     33    await wait25ms(test);
     34  }
     35 }, 'Same headers sent for revalidation request');
     36 </script>