Make pointerevents/test_bug1414336.html more reliable. r?kats
draft
Make pointerevents/test_bug1414336.html more reliable. r?kats
There can be something shuffling the iframe between the mouse event is sent and
the mouse event is received which makes us end up targeting the <body> instead
of the test target.
This can be reproduced with enough persistence either with and without the
patches from
bug 1439875, at least on a headless build with rr chaos mode.
Move it to test_group_pointerevents in the apz tests to run it in a new window
and make it a bit more reliable.
MozReview-Commit-ID: BS6Es8iEmMY
--- a/dom/events/test/pointerevents/mochitest.ini
+++ b/dom/events/test/pointerevents/mochitest.ini
@@ -10,20 +10,16 @@ support-files =
[test_bug1293174_implicit_pointer_capture_for_touch_1.html]
support-files = bug1293174_implicit_pointer_capture_for_touch_1.html
[test_bug1293174_implicit_pointer_capture_for_touch_2.html]
support-files = bug1293174_implicit_pointer_capture_for_touch_2.html
[test_bug1303704.html]
[test_bug1315862.html]
[test_bug1323158.html]
[test_bug1403055.html]
-[test_bug1414336.html]
- support-files =
- ../../../../gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js
- ../../../../gfx/layers/apz/test/mochitest/apz_test_utils.js
[test_bug1420589_1.html]
support-files =
bug_1420589_iframe1.html
bug_1420589_iframe2.html
[test_bug1420589_2.html]
support-files =
bug_1420589_iframe1.html
[test_bug1420589_3.html]
deleted file mode 100644
--- a/dom/events/test/pointerevents/test_bug1414336.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1414336
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 1414336</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
- <script type="text/javascript" src="apz_test_native_event_utils.js"></script>
- <script type="text/javascript" src="apz_test_utils.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
- <style>
- #target0 {
- width: 200px;
- height: 400px;
- touch-action: auto;
- }
- </style>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1414336">Mozilla Bug 1414336</a>
-<p id="display"></p>
-<div id="target0">
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
- <p>Test bug1414336</p>
-</div>
-<script type="text/javascript">
-/** Test for Bug 1414336 **/
-if (isApzEnabled()) {
- SimpleTest.waitForExplicitFinish();
-
- waitUntilApzStable().then(() => {
- let isWindows = (getPlatform() == "windows");
- SpecialPowers.pushPrefEnv({"set": [["dom.w3c_pointer_events.enabled", true],
- ["apz.test.fails_with_native_injection", isWindows]]}, () => {
-
- let target0 = window.document.getElementById("target0");
- let target0_events = ["pointerdown", "pointermove"];
-
- target0_events.forEach((elem, index, arr) => {
- target0.addEventListener(elem, (event) => {
- is(event.type, target0_events[0], "receive " + event.type + " on target0");
- target0_events.shift();
- }, { once: true });
- });
-
- target0.addEventListener("pointercancel", (event) => {
- ok(false, "Shouldn't receive pointercancel when content prevents default on touchstart");
- SimpleTest.finish();
- }, { once: true });
-
- target0.addEventListener("touchstart", (event) => {
- event.preventDefault();
- }, { once: true });
-
- target0.addEventListener("pointerup", (event) => {
- ok(target0_events.length == 0, " should receive " + target0_events + " on target0");
- SimpleTest.finish();
- }, { once: true });
-
- synthesizeNativeTouchDrag(target0, 2, 2, 0, 80);
- });
- });
-}
-
-</script>
-</body>
-</html>
new file mode 100644
--- /dev/null
+++ b/gfx/layers/apz/test/mochitest/helper_bug1414336.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1414336
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1414336</title>
+ <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+ <script type="text/javascript" src="apz_test_native_event_utils.js"></script>
+ <script type="text/javascript" src="apz_test_utils.js"></script>
+ <script type="text/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <style>
+ #target0 {
+ width: 200px;
+ height: 400px;
+ touch-action: auto;
+ }
+ </style>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1414336">Mozilla Bug 1414336</a>
+<p id="display"></p>
+<div id="target0">
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+ <p>Test bug1414336</p>
+</div>
+<script type="text/javascript">
+/** Test for Bug 1414336 **/
+waitUntilApzStable().then(() => {
+ let target0 = window.document.getElementById("target0");
+ let target0_events = ["pointerdown", "pointermove"];
+
+ target0_events.forEach((elem, index, arr) => {
+ target0.addEventListener(elem, (event) => {
+ is(event.type, target0_events[0], "receive " + event.type + " on target0");
+ target0_events.shift();
+ }, { once: true });
+ });
+
+ target0.addEventListener("pointercancel", (event) => {
+ ok(false, "Shouldn't receive pointercancel when content prevents default on touchstart");
+ subtestDone();
+ }, { once: true });
+
+ target0.addEventListener("touchstart", (event) => {
+ event.preventDefault();
+ }, { once: true });
+
+ target0.addEventListener("pointerup", (event) => {
+ ok(target0_events.length == 0, " should receive " + target0_events + " on target0");
+ SimpleTest.finish();
+ subtestDone();
+ }, { once: true });
+
+ synthesizeNativeTouchDrag(target0, 2, 2, 0, 80);
+});
+
+</script>
+</body>
+</html>
--- a/gfx/layers/apz/test/mochitest/mochitest.ini
+++ b/gfx/layers/apz/test/mochitest/mochitest.ini
@@ -7,16 +7,17 @@
helper_bug982141.html
helper_bug1151663.html
helper_bug1162771.html
helper_bug1271432.html
helper_bug1280013.html
helper_bug1285070.html
helper_bug1299195.html
helper_bug1346632.html
+ helper_bug1414336.html
helper_click.html
helper_div_pan.html
helper_drag_click.html
helper_drag_scroll.html
helper_iframe_pan.html
helper_iframe1.html
helper_iframe2.html
helper_hittest_basic.html
--- a/gfx/layers/apz/test/mochitest/test_group_pointerevents.html
+++ b/gfx/layers/apz/test/mochitest/test_group_pointerevents.html
@@ -6,19 +6,24 @@ https://bugzilla.mozilla.org/show_bug.cg
<head>
<meta charset="utf-8">
<title>Test for Bug 1285070</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="apz_test_utils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
+ let isWindows = navigator.platform.indexOf("Win") == 0;
var subtests = [
{'file': 'helper_bug1285070.html', 'prefs': [["dom.w3c_pointer_events.enabled", true]]},
- {'file': 'helper_bug1299195.html', 'prefs': [["dom.w3c_pointer_events.enabled", true]]}
+ {'file': 'helper_bug1299195.html', 'prefs': [["dom.w3c_pointer_events.enabled", true]]},
+ {'file': 'helper_bug1414336.html', 'prefs': [
+ ["dom.w3c_pointer_events.enabled", true],
+ ["apz.test.fails_with_native_injection", isWindows]
+ ]}
];
if (isApzEnabled()) {
SimpleTest.waitForExplicitFinish();
window.onload = function() {
runSubtestsSeriallyInFreshWindows(subtests)
.then(SimpleTest.finish, SimpleTest.finish);
};