1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Various mouse tests that spawn in new windows</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="apz_test_utils.js"></script>
<script type="application/javascript" src="apz_test_native_event_utils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
let synthesizedMouseEventsTestPrefs = [
// Touch activation duration must be set to a large value to ensure the test
// fails if touch synthesized mouse event dispatch is delayed.
["ui.touch_activation.duration_ms", 90000]
];
var subtests = [
// Sanity test to synthesize a mouse click
{"file": "helper_click.html?dtc=false"},
// Same as above, but with a dispatch-to-content region that exercises the
// main-thread notification codepaths for mouse events
{"file": "helper_click.html?dtc=true"},
// Sanity test for click but with some mouse movement between the down and up
{"file": "helper_drag_click.html"},
// Test for dragging on the scrollbar of the root scrollable element works.
// This takes different codepaths with async zooming support enabled and
// disabled, and so needs to be tested separately for both.
{"file": "helper_drag_root_scrollbar.html", "prefs": [["apz.allow_zooming", false]]},
{"file": "helper_drag_root_scrollbar.html", "prefs": [["apz.allow_zooming", true]]},
{"file": "helper_drag_scrollbar_hittest.html", "prefs": [
// The test applies a scaling zoom to the page.
["apz.allow_zooming", true],
// The test uses hitTest(), these two prefs are required for it.
["test.events.async.enabled", true],
["apz.test.logging_enabled", true],
// The test performs scrollbar dragging, avoid auto-hiding scrollbars.
["ui.useOverlayScrollbars", 0]
]},
// Test for dragging on a fake-scrollbar element that scrolls the page
{"file": "helper_drag_scroll.html"},
// Test for dragging the scrollbar with a fixed-pos element overlaying it
{"file": "helper_bug1346632.html"},
// Test for scrollbar-dragging on a scrollframe that's inactive
{"file": "helper_bug1326290.html"},
// Test for scrollbar-dragging on a scrollframe inside an SVGEffects
{"file": "helper_bug1331693.html"},
// Test for scrollbar-dragging on a transformed scrollframe inside a fixed-pos item
{"file": "helper_bug1462961.html"},
// Scrollbar dragging where we exercise the snapback behaviour by moving the
// mouse away from the scrollbar during drag
{"file": "helper_scrollbar_snap_bug1501062.html"},
// Tests for scrollbar-dragging on scrollframes inside nested transforms
{"file": "helper_bug1490393.html"},
{"file": "helper_bug1490393-2.html"},
// Scrollbar-dragging on scrollframes inside filters inside transforms
{"file": "helper_bug1550510.html"},
// Drag-select some text after reconstructing the RSF of a non-RCD to ensure
// the pending visual offset update doesn't get stuck
{"file": "helper_visualscroll_nonrcd_rsf.html"},
// Scrollbar-dragging on scrollframes inside nested transforms with scale
{"file": "helper_bug1662800.html"},
// Scrollbar-dragging on subframe with enclosing translation transform
{"file": "helper_drag_bug1719913.html"},
// Scrollbar dragging when pinch-zoomed in does not work with slider.snapMultiplier
{"file": "helper_drag_bug1794590.html", "prefs": [["slider.snapMultiplier", 6]]},
// Scrollbar-dragging on scrollframe containing OOP iframe when zoomed in
{"file": "helper_drag_bug1827330.html"},
// Scrolling with mouse down on the scrollbar
{"file": "helper_scrollbartrack_click_overshoot.html",
"prefs": [["test.events.async.enabled", true], ["apz.test.logging_enabled", true],
["ui.useOverlayScrollbars", 0],
["layout.scrollbars.click_and_hold_track.continue_to_end", false]]},
{"file": "helper_bug1756814.html", "prefs": [
["ui.useOverlayScrollbars", 0]
]},
{"file": "helper_touch_synthesized_mouseevents.html?scrollable=true",
"prefs": synthesizedMouseEventsTestPrefs},
{"file": "helper_touch_synthesized_mouseevents.html?scrollable=false",
"prefs": synthesizedMouseEventsTestPrefs},
];
// Android, mac, and linux (at least in our automation) do not have scrollbar buttons.
if (getPlatform() == "windows") {
subtests.push(
// Basic test that click and hold on a scrollbar button works as expected
{ file: "helper_scrollbarbutton_repeat.html", "prefs": [["general.smoothScroll", false]] }
);
}
if (isApzEnabled()) {
SimpleTest.waitForExplicitFinish();
SimpleTest.expectAssertions(0, 2); // from helper_bug1550510.html, bug 1232856
window.onload = function() {
runSubtestsSeriallyInFreshWindows(subtests)
.then(SimpleTest.finish, SimpleTest.finishWithFailure);
};
}
</script>
</head>
<body>
</body>
</html>
|