<!doctype html>
<body>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
<script>
promise_test(async t => {
let url = 'resources/topics-not-allowed-for-service-worker-fetch-helper.tentative.https.html';
let r = await service_worker_unregister_and_register(t,
'resources/fetch-topics.js', url);
await wait_for_state(t, r.installing, 'activated');
var popup_window = window.open("/common/blank.html");
t.add_cleanup(async _=>{
popup_window.close();
await r.unregister();
});
// The current page isn't yet controlled by the service worker. Thus,
// execute the actual test in a new page and let it post its result back
// to this page.
test_helper_popup_page_result = new Promise((resolve, reject) => {
window.addEventListener('message', t.step_func((e) => {
assert_equals(e.data.testResult,
'Topics fetch initiated from service worker did not include the topics header');
resolve();
}));
});
popup_window.location = url;
await test_helper_popup_page_result;
}, 'test that fetch(<url>, {browsingTopics: true}) from a service worker context will not include the topics header');
</script>
</body>