diff options
Diffstat (limited to '')
-rw-r--r-- | dom/base/test/test_focus_design_mode.html | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/dom/base/test/test_focus_design_mode.html b/dom/base/test/test_focus_design_mode.html new file mode 100644 index 0000000000..331dff2094 --- /dev/null +++ b/dom/base/test/test_focus_design_mode.html @@ -0,0 +1,62 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1690747 +--> +<head> + <title>Test for Bug 1690747</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1690747">Mozilla Bug 1690747</a> +<p id="display"></p> +<div id='content'> +</div> +<pre id="test"> +<iframe src="https://example.org/tests/dom/base/test/file_focus_design_mode_inner.html"></iframe> +<script type="application/javascript"> + +/** Test for Bug 1690747 **/ + +let iframe = document.querySelector("iframe"); + +function waitForEvent(target, event, checkFn) { + return new Promise(resolve => { + target.addEventListener(event, e => { + if (checkFn && !checkFn(e)) { + return; + } + resolve(); + }, { once: true }); + }); +} + +async function getLog() { + let log = ""; + SimpleTest.executeSoon(function() { + iframe.contentWindow.postMessage("getlog", "*"); + }); + await waitForEvent(window, "message", (e) => { + log = e.data; + return true; + }); + return log; +} + +add_setup(async function() { + await SpecialPowers.pushPrefEnv({ set: [["dom.disable_window_flip", true]] }); +}); + +add_task(async function activeElementAfterBluring() { + iframe.contentWindow.postMessage("focus", "*"); + is(await getLog(), "innerlog:windowfocus,activeElement:HTML,", "check activeElement"); + iframe.contentWindow.blur(); + is(await getLog(), "innerlog:windowfocus,activeElement:HTML,activeElement:HTML,", "check activeElement after bluring"); +}); + +</script> +</pre> +</body> +</html> |