diff options
Diffstat (limited to '')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/navigate-by-name-succeed.https.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/navigate-by-name-succeed.https.html b/testing/web-platform/tests/fenced-frame/navigate-by-name-succeed.https.html new file mode 100644 index 0000000000..4d558f8d23 --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/navigate-by-name-succeed.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<title>Test successful named frame navigation.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> + +<body> +<script> +promise_test(async () => { + // This test uses the following layout: + // A: Top-level frame + // B: fencedframe + // C: iframe + // + // The purpose is to test that named target lookups of C succeed in A, i.e. + // that lookups work even when the first child of a frame is fenced. + + const fencedframe = attachFencedFrameContext(); + const iframe = attachIFrameContext(); + + // Give the iframe a name. + await iframe.execute(() => { window.name = "target_frame"; }); + + // Modify state in the iframe, using a JS navigation to the target name. + window.open("javascript:window.success=true;", "target_frame"); + + // Check that the navigation happened in the iframe. + await iframe.execute(() => { + // If the JS code didn't run in the iframe, `window.success` would be + // undefined. + assert_true(window.success, 'The JS code ran in the iframe.'); + }); +}, 'navigate iframe sibling of fenced frame'); +</script> +</body> |