summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/portals/resources/focus-page-with-button.html
diff options
context:
space:
mode:
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.html35
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>