diff options
Diffstat (limited to 'testing/web-platform/mozilla/tests/focus/support')
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> |