blob: 0a46bf2606fb07b28cea2167796903d542098e82 [file] [log] [blame]
<script src="/resources/testharness.js"></script>
<script src="/serviceworker/resources/test-helpers.js"></script>
<script>
async function receiveMessageFromServiceWorker(worker) {
return new Promise((resolve) => {
// Use a dedicated message channel to avoid unexpected messages.
const channel = new MessageChannel();
channel.port1.onmessage = e => resolve(e.data);
worker.postMessage("Don't care", [channel.port2]);
});
}
promise_test(async t => {
const script = "/security/cors-rfc1918/resources/post-addressspace-to-owner-serviceworker.js";
const scope = "/security/cors-rfc1918/resources/post-addressspace-from-serviceworker.html";
const params = new URLSearchParams(location.search);
const workerType = params.get("workerType");
const options = { type: workerType };
const registration = await service_worker_unregister_and_register(
t, script, scope, options);
t.add_cleanup(_ => registration.unregister());
await wait_for_state(t, registration.installing, "activated");
const message = await receiveMessageFromServiceWorker(registration.active);
window.parent.postMessage(message, "*");
}, "Address space tests for service worker");
</script>