Commit f250ad9d authored by Nicolas Arciniega's avatar Nicolas Arciniega Committed by Chromium LUCI CQ

Deflake iframe-inheritance-history-about-srcdoc.html

In Edge, we found that this test would occasionally fail due to simple
timing issues. This change enforces the correct ordering of received
postMessage calls and makes sure each tested iframe loads before we
make make any asserts.

Change-Id: I051952088bf3d958a7e55cc4292b6107360dc322
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2580748Reviewed-by: default avatarAntonio Sartori <antoniosartori@chromium.org>
Commit-Queue: Antonio Sartori <antoniosartori@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835101}
parent 04db1ad2
...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
<script> <script>
let reportedReferrer = () => { let reportedReferrer = () => {
return new Promise(resolve => { return new Promise(resolve => {
window.addEventListener("message", msg => resolve(msg.data.referrer)); window.addEventListener("message", function listener(msg) {
window.removeEventListener("message", listener, false);
resolve(msg.data.referrer);
});
}); });
}; };
...@@ -29,6 +32,7 @@ ...@@ -29,6 +32,7 @@
location.origin + "/custom"); location.origin + "/custom");
document.body.appendChild(iframe); document.body.appendChild(iframe);
await iframe_load_1; await iframe_load_1;
let referrer_1_result = await referrer_1;
// 2. Change the referrer policy of the main document. // 2. Change the referrer policy of the main document.
document.getElementsByTagName('meta')[0].content = "unsafe-url"; document.getElementsByTagName('meta')[0].content = "unsafe-url";
...@@ -47,7 +51,7 @@ ...@@ -47,7 +51,7 @@
// Despite the main document has changed its referrer policy in (2), the // Despite the main document has changed its referrer policy in (2), the
// reported referrer for the history navigation to about:srcdoc in (4) must // reported referrer for the history navigation to about:srcdoc in (4) must
// match with the one originally reported in (1). // match with the one originally reported in (1).
assert_equals(await referrer_1, undefined, assert_equals(referrer_1_result, undefined,
"First navigation uses correct policy."); "First navigation uses correct policy.");
assert_equals(await referrer_2, undefined, assert_equals(await referrer_2, undefined,
"History navigation reuses original policy."); "History navigation reuses original policy.");
...@@ -57,10 +61,13 @@ ...@@ -57,10 +61,13 @@
// If we initiate a new about:srcdoc navigation, the new referrer policy // If we initiate a new about:srcdoc navigation, the new referrer policy
// should apply. // should apply.
const new_iframe = document.createElement("iframe"); const new_iframe = document.createElement("iframe");
let new_iframe_load = iframeLoaded(new_iframe);
let new_iframe_referrer = reportedReferrer(); let new_iframe_referrer = reportedReferrer();
new_iframe.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN, new_iframe.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN,
location.origin + "/custom"); location.origin + "/custom");
document.body.appendChild(new_iframe); document.body.appendChild(new_iframe);
await new_iframe_load;
assert_equals(await new_iframe_referrer, self.origin + '/custom'); assert_equals(await new_iframe_referrer, self.origin + '/custom');
}, "New srcdoc iframe uses new policy."); }, "New srcdoc iframe uses new policy.");
</script> </script>
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