diff options
Diffstat (limited to 'testing/web-platform/tests/portals/resources/focus-page-with-button.html')
-rw-r--r-- | testing/web-platform/tests/portals/resources/focus-page-with-button.html | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/testing/web-platform/tests/portals/resources/focus-page-with-button.html b/testing/web-platform/tests/portals/resources/focus-page-with-button.html new file mode 100644 index 0000000000..81ed5465ab --- /dev/null +++ b/testing/web-platform/tests/portals/resources/focus-page-with-button.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<body> + <script> + function handleMessage(e) { + if (e.data == "focus") { + let button = document.querySelector("button"); + button.onfocus = () => e.source.postMessage({focused: true}, {targetOrigin: "*"}); + button.focus(); + } + + if (e.data == "focus-update-active-element") { + let button = document.querySelector("button"); + button.focus(); + e.source.postMessage({activeElementUpdated: document.activeElement === button}, {targetOrigin: "*"}); + } + } + + if (window.portalHost) + window.portalHost.onmessage = handleMessage; + + window.onmessage = handleMessage; + + window.onportalactivate = e => { + let portal = e.adoptPredecessor(); + document.body.appendChild(portal); + portal.onmessage = handleMessage; + }; + + window.onfocus = () => { + if (window.portalHost) + window.portalHost.postMessage("window focused"); + }; + </script> + <button>A</button> +</body> |