Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3b1deb16fd46634de113e032ec4f07113ff84ed7
      
https://github.com/WebKit/WebKit/commit/3b1deb16fd46634de113e032ec4f07113ff84ed7
  Author: Simon Fraser <[email protected]>
  Date:   2026-07-18 (Sat, 18 Jul 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/mouse-wheel-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-viewport-covering-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-expected.txt
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/resources/testdriver-vendor.js

  Log Message:
  -----------
  [WPT] Wheel actions: Follow tick-based event dispatch logic rather than 
sending scroll events instantaneously
https://bugs.webkit.org/show_bug.cgi?id=261810
rdar://115772410

Reviewed by Abrar Rahman Protyasha.

The wheel event dispatch code in `testdriver-vendor.js` just sent a single 
wheel event, instead of following [1].
But the existing code also had a bug, where the last event had `momentumPhase : 
"ended"` instead of
`phase : "ended"`: that's wrong here, because we haven't generated a momentum 
phase at all, and it prevented
end-of-scroll snapping from happening.

So synthesize a stream of events at 16ms intervals, dividing the delta as 
described in the spec.

Sending a single event with non-zero deltaX and deltaY broke 
`pointerevent_touch-action-mouse.html`,
because the wheel handling code does aggressive axis-locking (which zeros out 
the non-dominant axis),
which is why the old code sent two events in this case; we have to preserve 
this behavior. This
could also affect the multi-event code path in future.

This fixed `css-scroll-snap/input/mouse-wheel.html` and 
`snap-at-user-scroll-end.html`, and changed
the output of `snap-area-overflow-boundary-viewport-covering.html` which is 
broken for other reasons
(webkit.org/b/319715).

[1] https://w3c.github.io/webdriver/#dfn-perform-a-scroll

* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/mouse-wheel-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-viewport-covering-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-expected.txt:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/resources/testdriver-vendor.js:

Canonical link: https://commits.webkit.org/317497@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to