mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
50 lines
2.1 KiB
HTML
50 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
This test verifies presence of Sec-Fetch-... request headers on a request
|
|
handled by a service worker - this test covers the scenario when the service
|
|
worker doesn't do anything and the request falls back to the network.
|
|
-->
|
|
<meta charset="utf-8"/>
|
|
<link rel="author" href="lukasza@chromium.org" title="Lukasz Anforowicz">
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
|
<script src=/service-workers/service-worker/resources/test-helpers.sub.js></script>
|
|
<script src=/common/utils.js></script>
|
|
<script>
|
|
const nonce = token();
|
|
const key = "fetch-via-serviceworker--fallback--" + nonce;
|
|
|
|
promise_test(async function(t) {
|
|
const SCOPE = 'resources/fetch-via-serviceworker--fallback--frame.html';
|
|
const SCRIPT = 'resources/fetch-via-serviceworker--fallback--sw.js';
|
|
const URL = '/fetch/sec-metadata/resources/record-header.py?file=' + key;
|
|
const RETRIEVAL_URL = "/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key;
|
|
|
|
const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
|
|
t.add_cleanup(async () => {
|
|
if (reg)
|
|
await reg.unregister();
|
|
});
|
|
|
|
await wait_for_state(t, reg.installing, 'activated');
|
|
|
|
const frame = await with_iframe(SCOPE);
|
|
t.add_cleanup(async () => {
|
|
if (frame)
|
|
frame.remove();
|
|
});
|
|
|
|
// Trigger a fetch that 1) will go through the service worker and 2) will
|
|
// fetch a special URL that records request headers.
|
|
await frame.contentWindow.fetch(URL, {mode:'no-cors'});
|
|
|
|
// Retrieve the request headers that have been recorded in the previous step.
|
|
const response = await fetch(RETRIEVAL_URL);
|
|
const text = await response.text();
|
|
|
|
// Verify presence of the expected Sec-Fetch-... request headers.
|
|
let expected = {"dest":"empty", "site":"same-origin", "user":"", "mode": "no-cors"};
|
|
assert_header_equals(text, expected);
|
|
}, 'Sec-Fetch headers after SW fallback');
|
|
</script>
|