Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html

Issue 2049323002: [Mac] Don't dispatch wheel events for PhaseMayBegin|Cancelled|Ended (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add filter and LayoutTests Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html b/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
new file mode 100644
index 0000000000000000000000000000000000000000..6476a8332e8973acb0504248a3195eac9cf851a5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<title>MouseWheel: Scroll shouldn't fire extra events for certain phase</title>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script>
+// See WebMouseWheelEvent::Phase.
+const PhaseNone = 0;
+const PhaseBegan = 1 << 0;
+const PhaseStationary = 1 << 1;
+const PhaseChanged = 1 << 2;
+const PhaseEnded = 1 << 3;
+const PhaseCancelled = 1 << 4;
+const PhaseMayBegin = 1 << 5;
+
+function mouseScrollByPixel(x, y, phase) {
+ if (!window.eventSender)
+ return;
+ const isMac = navigator.platform.indexOf('Mac') != -1;
+ if (!isMac) {
+ // Other platforms don't have Phase info yet.
+ if (phase == PhaseEnded || phase == PhaseCancelled || phase == PhaseMayBegin)
+ return;
+ phase = PhaseNone;
+ }
+ eventSender.continuousMouseScrollBy(x, y, false, true, 0, false, phase);
+}
+
+test(function() {
+ if (!window.eventSender) {
+ document.write('This test requires eventSender');
+ return;
+ }
+
+ var event_log = '';
+ document.addEventListener('wheel', function(event) {
+ event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`;
+ });
+
+ eventSender.mouseMoveTo(50, 50);
+ mouseScrollByPixel(0, 0, PhaseMayBegin);
+ mouseScrollByPixel(0, -1, PhaseBegan);
+ mouseScrollByPixel(0, -2, PhaseChanged);
+ mouseScrollByPixel(0, -3, PhaseChanged);
+ mouseScrollByPixel(0, -4, PhaseStationary);
+ mouseScrollByPixel(0, -5, PhaseChanged);
+ mouseScrollByPixel(0, 0, PhaseEnded);
+
+ assert_equals(event_log, '(0,1,0)(0,2,0)(0,3,0)(0,4,0)(0,5,0)');
+}, 'Simulate track-pad two finger scroll');
+
+test(function() {
+ if (!window.eventSender) {
+ document.write('This test requires eventSender');
+ return;
+ }
+
+ var event_log = '';
+ document.addEventListener('wheel', function(event) {
+ event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`;
+ });
+
+ eventSender.mouseMoveTo(50, 50);
+ mouseScrollByPixel(0, 0, PhaseMayBegin);
+ mouseScrollByPixel(0, 0, PhaseCancelled);
+
+ assert_equals(event_log, '');
+}, 'Simulate track-pad two finger touch and release');
+</script>
+

Powered by Google App Engine
This is Rietveld 408576698