summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/focus/support
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/mozilla/tests/focus/support')
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-inner.html17
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-outer.sub.html42
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-inner.html17
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-outer.html42
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-inner.html17
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-outer.sub.html50
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-inner.html17
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-outer.html50
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-different-site-iframe-gets-focus-outer.sub.html42
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-iframe-gets-focus-inner.html31
-rw-r--r--testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-same-site-iframe-gets-focus-outer.html42
11 files changed, 367 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-inner.html b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-inner.html
new file mode 100644
index 0000000000..bcf23627d2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-inner.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>focus() before iframe loaded different site</title>
+</head>
+<body>
+<script>
+ window.onload = function() {
+ parent.postMessage("onload", "*");
+ }
+ document.body.onfocus = function() {
+ parent.postMessage("onfocus", "*");
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-outer.sub.html b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-outer.sub.html
new file mode 100644
index 0000000000..e95fe7d292
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-different-site-outer.sub.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>focus() before iframe loaded different site</title>
+</head>
+<body>
+<script>
+var pendingTimeout = false;
+window.onmessage = function(e) {
+ if (e.data == "onload") {
+ if (pendingTimeout) {
+ return;
+ }
+ pendingTimeout = opener.step_timeout(function() {
+ opener.postMessage("FAIL missing onfocus", "*");
+ }, 2000);
+ return;
+ }
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ if (e.data == "onfocus") {
+ // Test not upstreamed, because this even is a Firefoxism
+ // https://github.com/whatwg/html/issues/6209
+ opener.postMessage("PASS", "*");
+ return;
+ }
+ opener.postMessage("FAIL " + e.data, "*");
+}
+
+var iframe = document.createElement("iframe");
+iframe.src = "http://{{hosts[alt][www]}}:{{ports[http][0]}}/_mozilla/focus/support/focus-before-iframe-loaded-different-site-inner.html";
+document.body.appendChild(iframe);
+iframe.focus();
+if (document.activeElement != iframe) {
+ pendingTimeout = true;
+ opener.postMessage("FAIL activeElement", "*");
+}
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-inner.html b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-inner.html
new file mode 100644
index 0000000000..3c277f078f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-inner.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>focus() before iframe loaded same site</title>
+</head>
+<body>
+<script>
+ window.onload = function() {
+ parent.postMessage("onload", "*");
+ }
+ document.body.onfocus = function() {
+ parent.postMessage("onfocus", "*");
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-outer.html b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-outer.html
new file mode 100644
index 0000000000..8c829d6d47
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-before-iframe-loaded-same-site-outer.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>focus() before iframe loaded same site</title>
+</head>
+<body>
+<script>
+var pendingTimeout = false;
+window.onmessage = function(e) {
+ if (e.data == "onload") {
+ if (pendingTimeout) {
+ return;
+ }
+ pendingTimeout = opener.step_timeout(function() {
+ opener.postMessage("FAIL missing onfocus", "*");
+ }, 2000);
+ return;
+ }
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ if (e.data == "onfocus") {
+ // Test not upstreamed, because this even is a Firefoxism
+ // https://github.com/whatwg/html/issues/6209
+ opener.postMessage("PASS", "*");
+ return;
+ }
+ opener.postMessage("FAIL " + e.data, "*");
+}
+
+var iframe = document.createElement("iframe");
+iframe.src = "focus-before-iframe-loaded-same-site-inner.html";
+document.body.appendChild(iframe);
+iframe.focus();
+if (document.activeElement != iframe) {
+ pendingTimeout = true;
+ opener.postMessage("FAIL activeElement", "*");
+}
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-inner.html b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-inner.html
new file mode 100644
index 0000000000..2c1b35f2b2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-inner.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>focus() from next tick before iframe loaded different site</title>
+</head>
+<body>
+<script>
+ window.onload = function() {
+ parent.postMessage("onload", "*");
+ }
+ document.body.onfocus = function() {
+ parent.postMessage("onfocus", "*");
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-outer.sub.html b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-outer.sub.html
new file mode 100644
index 0000000000..83a48e303d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-different-site-outer.sub.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>focus() from next tick before iframe loaded different site</title>
+</head>
+<body>
+<script>
+var pendingTimeout = false;
+window.onmessage = function(e) {
+ if (e.data == "tick") {
+ iframe.focus();
+ if (document.activeElement != iframe) {
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ opener.postMessage("FAIL activeElement", "*");
+ }
+ return;
+ }
+
+ if (e.data == "onload") {
+ if (pendingTimeout) {
+ return;
+ }
+ pendingTimeout = opener.step_timeout(function() {
+ opener.postMessage("FAIL missing onfocus", "*");
+ }, 2000);
+ return;
+ }
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ if (e.data == "onfocus") {
+ // Test not upstreamed, because this even is a Firefoxism
+ // https://github.com/whatwg/html/issues/6209
+ opener.postMessage("PASS", "*");
+ return;
+ }
+ opener.postMessage("FAIL " + e.data, "*");
+}
+
+var iframe = document.createElement("iframe");
+iframe.src = "http://{{hosts[alt][www]}}:{{ports[http][0]}}/_mozilla/focus/support/focus-next-tick-before-iframe-loaded-different-site-inner.html";
+document.body.appendChild(iframe);
+window.postMessage("tick", "*");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-inner.html b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-inner.html
new file mode 100644
index 0000000000..62add75ed9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-inner.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>focus() from next tick before iframe loaded same site</title>
+</head>
+<body>
+<script>
+ window.onload = function() {
+ parent.postMessage("onload", "*");
+ }
+ document.body.onfocus = function() {
+ parent.postMessage("onfocus", "*");
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-outer.html b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-outer.html
new file mode 100644
index 0000000000..a68d34039d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/focus-next-tick-before-iframe-loaded-same-site-outer.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>focus() from next tick before iframe loaded same site</title>
+</head>
+<body>
+<script>
+var pendingTimeout = false;
+window.onmessage = function(e) {
+ if (e.data == "tick") {
+ iframe.focus();
+ if (document.activeElement != iframe) {
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ opener.postMessage("FAIL activeElement", "*");
+ }
+ return;
+ }
+
+ if (e.data == "onload") {
+ if (pendingTimeout) {
+ return;
+ }
+ pendingTimeout = opener.step_timeout(function() {
+ opener.postMessage("FAIL missing onfocus", "*");
+ }, 2000);
+ return;
+ }
+ if (pendingTimeout) {
+ clearTimeout(pendingTimeout);
+ }
+ pendingTimeout = true;
+ if (e.data == "onfocus") {
+ // Test not upstreamed, because this even is a Firefoxism
+ // https://github.com/whatwg/html/issues/6209
+ opener.postMessage("PASS", "*");
+ return;
+ }
+ opener.postMessage("FAIL " + e.data, "*");
+}
+
+var iframe = document.createElement("iframe");
+iframe.src = "focus-next-tick-before-iframe-loaded-same-site-inner.html";
+document.body.appendChild(iframe);
+window.postMessage("tick", "*");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-different-site-iframe-gets-focus-outer.sub.html b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-different-site-iframe-gets-focus-outer.sub.html
new file mode 100644
index 0000000000..d69580237c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-different-site-iframe-gets-focus-outer.sub.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Iframe focus event after different site iframe gets focus outer</title>
+<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/_mozilla/focus/support/iframe-focus-event-after-iframe-gets-focus-inner.html"></iframe>
+<script>
+let outerlog = "outerlog:";
+
+let iframe = document.querySelector("iframe");
+window.onmessage = function(e) {
+ if (e.data == "start") {
+ window.onfocus = function() {
+ outerlog += "windowfocus,";
+ };
+ } else if (e.data == "iframefocus") {
+ iframe.focus();
+ } else if (e.data == "iframecontentWindowfocus") {
+ iframe.contentWindow.focus();
+ } else if (e.data == "windowfocus") {
+ iframe.contentWindow.postMessage("windowfocus", "*");
+ } else if (e.data == "getlog") {
+ iframe.contentWindow.postMessage("getlog", "*");
+ } else {
+ opener.postMessage(outerlog + e.data, "*");
+ }
+};
+
+window.onload = function() {
+ window.onblur = function() {
+ outerlog += "windowblur,";
+ };
+
+ iframe.onfocus = function() {
+ outerlog += "iframefocus,";
+ };
+
+ iframe.onblur = function() {
+ outerlog += "iframeblur,";
+ };
+
+ opener.postMessage("ready", "*");
+};
+</script>
diff --git a/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-iframe-gets-focus-inner.html b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-iframe-gets-focus-inner.html
new file mode 100644
index 0000000000..64a360d248
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-iframe-gets-focus-inner.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Iframe focus event inner document</title>
+</head>
+<body>
+<h1>Inner</h1>
+<script>
+let innerlog = "innerlog:";
+
+window.onmessage = function(e) {
+ if (e.data == "windowfocus") {
+ innerlog += "willfocuswindow,";
+ window.focus();
+ innerlog += "didfocuswindow,";
+ } else if (e.data == "getlog") {
+ parent.postMessage(innerlog, "*");
+ }
+};
+
+window.onfocus = function() {
+ innerlog += "windowfocus,";
+};
+
+window.onblur = function() {
+ innerlog += "windowblur,";
+};
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-same-site-iframe-gets-focus-outer.html b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-same-site-iframe-gets-focus-outer.html
new file mode 100644
index 0000000000..06040d6485
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/focus/support/iframe-focus-event-after-same-site-iframe-gets-focus-outer.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Iframe focus event after same site iframe gets focus outer</title>
+<iframe src="iframe-focus-event-after-iframe-gets-focus-inner.html"></iframe>
+<script>
+let outerlog = "outerlog:";
+
+let iframe = document.querySelector("iframe");
+window.onmessage = function(e) {
+ if (e.data == "start") {
+ window.onfocus = function() {
+ outerlog += "windowfocus,";
+ };
+ } else if (e.data == "iframefocus") {
+ iframe.focus();
+ } else if (e.data == "iframecontentWindowfocus") {
+ iframe.contentWindow.focus();
+ } else if (e.data == "windowfocus") {
+ iframe.contentWindow.postMessage("windowfocus", "*");
+ } else if (e.data == "getlog") {
+ iframe.contentWindow.postMessage("getlog", "*");
+ } else {
+ opener.postMessage(outerlog + e.data, "*");
+ }
+};
+
+window.onload = function() {
+ window.onblur = function() {
+ outerlog += "windowblur,";
+ };
+
+ iframe.onfocus = function() {
+ outerlog += "iframefocus,";
+ };
+
+ iframe.onblur = function() {
+ outerlog += "iframeblur,";
+ };
+
+ opener.postMessage("ready", "*");
+};
+</script>