| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Tests Stale While Revalidate is not executed for fetch API</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/utils.js"></script> |
| <script> |
| function wait25ms(test) { |
| return new Promise(resolve => { |
| test.step_timeout(() => { |
| resolve(); |
| }, 25); |
| }); |
| } |
| |
| promise_test(async (test) => { |
| var request_token = token(); |
| var client_hint_headers = [ |
| "device-memory", |
| "dpr", |
| "width", |
| "viewport-width", |
| "rtt", |
| "downlink", |
| "ect", |
| "sec-ch-lang", |
| "sec-ch-ua", |
| "sec-ch-ua-arch", |
| "sec-ch-ua-platform", |
| "sec-ch-ua-platform-version", |
| "sec-ch-ua-model", |
| "sec-ch-ua-mobile", |
| ]; |
| |
| const response = await fetch(`resources/stale-echo-client-hints.py?token=` + request_token); |
| const response2 = await fetch(`resources/stale-echo-client-hints.py?token=` + request_token); |
| |
| assert_equals(response.headers.get('Unique-Id'), response2.headers.get('Unique-Id')); |
| |
| while(true) { |
| const revalidation_check = await fetch(`resources/stale-echo-client-hints.py?query&token=` + request_token); |
| if (revalidation_check.headers.get('Count') == '2') { |
| client_hint_headers.forEach(header => { |
| assert_equals(revalidation_check.headers.get(header+"-recieved"), revalidation_check.headers.get(header+"-previous")); |
| }); |
| break; |
| } |
| await wait25ms(test); |
| } |
| }, 'Same headers sent for revalidation request'); |
| </script> |