blob: 51bc7f29e593081bb2f1c959f36a78562a3bd833 [file] [log] [blame]
<!DOCTYPE html>
<!--
This test verifies presence of Sec-Fetch-... request headers on a request
that fetches the service worker script itself (i.e. the script at the URL
passed as an argument to navigator.serviceWorker.register).
-->
<meta charset="utf-8"/>
<link rel="author" href="mtrzos@google.com" title="Maciek Trzos">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/metadata/resources/helper.js></script>
<script src=/common/utils.js></script>
<body>
<script>
promise_test(async t => {
const nonce = token();
const key = "serviceworker-same-origin" + nonce;
// Register a service worker and check the request header.
const registration = await navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=' + key);
t.add_cleanup(() => registration.unregister());
await retrieve_and_assert_headers(key, 'Register service worker');
// Trigger an update check and check the request header again.
await registration.update();
await retrieve_and_assert_headers(key, 'Update service worker');
}, 'metadata for service worker scripts');
async function retrieve_and_assert_headers(key, tag) {
let expected = { "site": "same-origin", "user": "", "mode": "same-origin", "dest": "serviceworker" };
const response = await fetch("/fetch/metadata/resources/record-header.py?retrieve=true&file=" + key);
const text = await response.text();
assert_header_equals(text, expected, tag);
}
</script>
</body>