blob: c86198df6a2e31dc3c665fe5fe3f452bb47eeb26 [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/sec-metadata/resources/helper.js></script>
<script src=/common/utils.js></script>
<body>
<script>
let nonce = token();
let key = "serviceworker-same-origin" + nonce;
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=' + key).then(function(registration) {
test_same_origin();
// uninstall the serviceworker after the test
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
}
})
}, function(err) {
// registration failed
});
});
}
else {
test(function () {
done();
}, "Browser does not support serviceworker");
}
</script>
</body>
<script>
function test_same_origin(){
promise_test(t => {
return new Promise((resolve, reject) => {
let expected = {"dest":"serviceworker", "site":"same-origin", "user":"", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(_ => resolve())
.catch(e => reject(e));
})
})
}
</script>