Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 3 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /portals/portals-host-exposure.sub.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/stash-utils.sub.js"></script>
<script src="/common/utils.js"></script>
<body>
<script>
function openPortal(portalSrc) {
assert_implements("HTMLPortalElement" in self);
const portal = document.createElement('portal');
portal.src = portalSrc;
return portal;
}
async function openPortalAndReceiveMessage(portalSrc) {
const key = token();
const portal = openPortal(`${portalSrc}?key=${key}`);
document.body.appendChild(portal);
return StashUtils.takeValue(key);
}
promise_test(async () => {
const result = await openPortalAndReceiveMessage("resources/portal-host.html");
assert_equals(result, "passed");
}, "window.portalHost should be exposed in same-origin portal");
promise_test(async () => {
const result = await openPortalAndReceiveMessage(
assert_equals(result, "passed");
}, "window.portalHost should be exposed in cross-origin portal");
promise_test(async () => {
const result = await openPortalAndReceiveMessage(
'resources/portal-host-cross-origin-navigate.sub.html');
assert_equals(result, "passed");
}, "window.portalHost should be exposed in portal after cross-origin navigation");
</script>
</body>