Commit 758b797d authored by Lucas Furukawa Gadani's avatar Lucas Furukawa Gadani Committed by Commit Bot

Portals: Test that adoptPredecessor can't be called after PortalActivateEvent.

Bug: 942286
Change-Id: I5e8b509da8e1df9ccaf1a3bb468177d17e4ab588
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1577937
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653323}
parent a89836ee
...@@ -185,6 +185,7 @@ SET TIMEOUT: offscreen-canvas/the-offscreen-canvas/* ...@@ -185,6 +185,7 @@ SET TIMEOUT: offscreen-canvas/the-offscreen-canvas/*
SET TIMEOUT: old-tests/submission/Microsoft/history/history_000.htm SET TIMEOUT: old-tests/submission/Microsoft/history/history_000.htm
SET TIMEOUT: paint-timing/resources/subframe-painting.html SET TIMEOUT: paint-timing/resources/subframe-painting.html
SET TIMEOUT: payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html SET TIMEOUT: payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html
SET TIMEOUT: portals/resources/portals-adopt-predecessor-portal.html
SET TIMEOUT: preload/single-download-preload.html SET TIMEOUT: preload/single-download-preload.html
SET TIMEOUT: resize-observer/resources/iframe.html SET TIMEOUT: resize-observer/resources/iframe.html
SET TIMEOUT: resource-timing/resources/nested-contexts.js SET TIMEOUT: resource-timing/resources/nested-contexts.js
......
...@@ -22,4 +22,14 @@ ...@@ -22,4 +22,14 @@
}); });
window.open(`resources/portals-adopt-predecessor.html?test=${test}`); window.open(`resources/portals-adopt-predecessor.html?test=${test}`);
}, "Tests that trying to adopt the predecessor twice will throw an exception."); }, "Tests that trying to adopt the predecessor twice will throw an exception.");
async_test(function(t) {
var test = "adopt-after-event";
var bc = new BroadcastChannel(`test-${test}`);
bc.onmessage = t.step_func_done(function(e) {
assert_equals(e.data, "passed");
bc.close();
});
window.open(`resources/portals-adopt-predecessor.html?test=${test}`);
}, "Tests that trying to adopt the predecessor after the PortalActivateEvent will throw an exception.");
</script> </script>
...@@ -4,21 +4,41 @@ ...@@ -4,21 +4,41 @@
var test = searchParams.get("test"); var test = searchParams.get("test");
window.onportalactivate = function(e) { window.onportalactivate = function(e) {
var portal = e.adoptPredecessor();
document.body.appendChild(portal);
if (test == "adopt-once") { if (test == "adopt-once") {
var portal = e.adoptPredecessor();
document.body.appendChild(portal);
if (portal instanceof HTMLPortalElement) { if (portal instanceof HTMLPortalElement) {
portal.postMessage("adopted", "*"); portal.postMessage("adopted", "*");
} }
} }
if (test == "adopt-twice") { if (test == "adopt-twice") {
var portal = e.adoptPredecessor();
document.body.appendChild(portal);
try { try {
e.adoptPredecessor(); e.adoptPredecessor();
} catch(e) { } catch(e) {
portal.postMessage("passed", "*"); if (e.name == "InvalidStateError") {
var bc_test = new BroadcastChannel(`test-${test}`);
bc_test.postMessage("passed");
bc_test.close();
}
} }
} }
if (test == "adopt-after-event") {
setTimeout(function() {
try {
e.adoptPredecessor();
} catch(e) {
if (e.name == "InvalidStateError") {
var bc_test = new BroadcastChannel(`test-${test}`);
bc_test.postMessage("passed");
bc_test.close();
}
}
});
}
} }
var bc = new BroadcastChannel(`portal-${test}`); var bc = new BroadcastChannel(`portal-${test}`);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment