Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 2 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/browsers/origin/tentative/api/origin-from-extendablemessageevent.any.serviceworker.html - WPT Dashboard Interop Dashboard
// META: title=`Origin.from(ExtendableMessageEvent)`
// META: global=serviceworker
// META: script=/common/get-host-info.sub.js
function WorkerActivationPromise() {
return new Promise((resolve) => {
if (registration.active) {
resolve();
return;
}
self.addEventListener('activate', () => { resolve(); });
});
}
test(t => {
const e = new ExtendableMessageEvent("message", { origin: get_host_info().ORIGIN });
const origin = Origin.from(e);
assert_true(!!origin, "It's not null!");
assert_false(origin.opaque, "It's not opaque!");
assert_true(origin.isSameOrigin(Origin.from(self)), "It's same-origin with an Origin!");
}, "Constructed `ExtendableMessageEvent` objects have origins.");
promise_test(async t => {
await WorkerActivationPromise();
return new Promise(resolve => {
self.addEventListener("message", e => {
const origin = Origin.from(e);
assert_true(!!origin);
assert_false(origin.opaque);
assert_true(origin.isSameOrigin(Origin.from(self)));
resolve();
});
self.registration.active.postMessage({ type: "Hi" });
});
}, "Posted `ExtendableMessageEvent` objects have origins.");