48 lines
1.8 KiB
HTML
48 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<script src="utils.js"></script>
|
|
<title>Test nested fenced frame navigation (by a parent frame setting its src).</title>
|
|
|
|
<body>
|
|
<script>
|
|
async function init() { // Needed in order to use top-level await.
|
|
// This file is meant to run in a <fencedframe>. It communicates with
|
|
// the embedder to confirm that nested fenced frames can be navigated.
|
|
|
|
const [navigation_key, navigation_ack_key] = parseKeylist();
|
|
|
|
// Create URL prefixes to simulate different origins.
|
|
// (www1 and www2 are different origins)
|
|
const simple_url = generateURL("frame-navigation-inner-simple.https.html",
|
|
[navigation_key, navigation_ack_key]);
|
|
|
|
const origin1_simple_url = getRemoteOriginURL(simple_url);
|
|
const origin2_simple_url = getRemoteOriginURL(simple_url)
|
|
.toString().replace("www1", "www2");
|
|
|
|
const url_prefix = location.href + "/../";
|
|
|
|
// Tell the embedder that this frame has loaded.
|
|
writeValueToServer(navigation_key, "create-nested");
|
|
await nextValueFromServer(navigation_ack_key);
|
|
|
|
// Create an inner frame.
|
|
inner_frame = attachFencedFrame(origin1_simple_url);
|
|
// Wait for our parent to tell us they're done communicating.
|
|
await nextValueFromServer(navigation_ack_key);
|
|
|
|
// Navigate (cross-origin) and wait.
|
|
inner_frame.config = new FencedFrameConfig(
|
|
generateURL(origin2_simple_url, []));
|
|
await nextValueFromServer(navigation_ack_key);
|
|
|
|
// Navigate (same-origin) and wait.
|
|
inner_frame.config = new FencedFrameConfig(
|
|
generateURL(origin2_simple_url, []));
|
|
await nextValueFromServer(navigation_ack_key);
|
|
}
|
|
|
|
init();
|
|
</script>
|
|
</body>
|