diff options
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/anchor-focus.https.html')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/anchor-focus.https.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/anchor-focus.https.html b/testing/web-platform/tests/fenced-frame/anchor-focus.https.html new file mode 100644 index 0000000000..262781f571 --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/anchor-focus.https.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<title>Anchor based focusing across a fenced frame boundary</title> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<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> +function attemptAutofocus(frame) { + return frame.execute(async () => { + let autofocusInput = document.createElement('input'); + autofocusInput.id = "myinput"; + document.body.appendChild(autofocusInput); + document.location.href = document.location.href + "#myinput"; + await new Promise(resolve => requestAnimationFrame(resolve)); + return document.activeElement == autofocusInput; + }); +} + +promise_test(async () => { + const frame = attachFencedFrameContext(); + let autofocusIsFocused = await attemptAutofocus(frame); + assert_false(autofocusIsFocused, + "element should not get focus through anchor focusing"); +}, "Anchor focusing is blocked on an element in a fenced frame " + + "without user activation."); + +promise_test(async () => { + const frame = attachFencedFrameContext(); + const actions = new test_driver.Actions(); + await actions.pointerMove(0, 0, {origin: frame.element}) + .pointerDown() + .pointerUp() + .send(); + let autofocusIsFocused = await attemptAutofocus(frame); + assert_true(autofocusIsFocused, + "element should get focus through anchor focusing"); +}, "Anchor focusing is allowed on an element in a fenced frame " + + "with user activation."); +</script> +</body> +</html> |