blob: 9638a6c7c6a84ccf040b80e9d98160b41c5d66bb [file] [log] [blame]
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<script>
// Waits for 2 messages from portal, one before activation and one after.
function waitForMessages() {
return new Promise((resolve, reject) => {
var results = [];
var bc = new BroadcastChannel("portals-host-hidden-after-activation");
bc.onmessage = e => {
results.push(e.data.hasHost);
if (results.length == 2) {
bc.close();
resolve(results);
}
};
});
}
promise_test(async () => {
assert_implements("HTMLPortalElement" in self);
const portalUrl = encodeURIComponent("portal-host-hidden-after-activation-portal.html");
window.open(`resources/portal-embed-and-activate.html?url=${portalUrl}`);
var results = await waitForMessages();
assert_true(results[0], "portalHost exposed before calling activate()");
assert_false(results[1], "portalHost hidden after receiving portalactivate event");
}, "window.portalHost should be null after portal is activated");
</script>
</body>