Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dcfc5f620194f93c5141ca86719a57676fd427ef
https://github.com/WebKit/WebKit/commit/dcfc5f620194f93c5141ca86719a57676fd427ef
Author: Abrar Rahman Protyasha <[email protected]>
Date: 2026-09-14 (Mon, 14 Sep 2026)
Changed paths:
M Source/WebKit/UIProcess/mac/AppKitGestures/WKAppKitGestureController.mm
M Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/BasicAppKitGesturesTests.swift
M Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/RefreshControlGesturesTests.swift
Log Message:
-----------
REGRESSION(316424@main): [AppKit Gestures] Scrolling, then interrupting,
sometimes follows the link below the mouse
https://bugs.webkit.org/show_bug.cgi?id=324117
rdar://187268555
Reviewed by Richard Robinson.
315351@main stopped a scroll interruption from doing anything other than
stopping the scroll. It used two bits set in -interruptMomentumIfNeeded
and later cleared when the interrupting gesture ended.
Later, 316424@main started clearing both of them from
-didEndSyntheticMomentumScrolling instead, to fix pull to refresh.
However, only one of these bits (_suppressNextPanScrollDelta) is really
associated to the momentum. _caughtDeceleratingScroll is a property of
the gesture, instead, and clearing it when synthetic momentum ends
is wrong, since the interrupting gesture can outlive the momentum.
In this patch, we associated it (again) to the gesture, and left only
the delta suppression where 316424@main put it.
Tests:
AppKitGesturesTests.Basic/clickingAfterDeceleratingScrollSettlesFollowsLink
AppKitGesturesTests.RefreshControl/trackpadSwipeDownToInterruptDeceleratingScrollTriggersRefresh
* Source/WebKit/UIProcess/mac/AppKitGestures/WKAppKitGestureController.mm:
(-[WKAppKitGestureController didEndSyntheticMomentumScrolling]):
* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/BasicAppKitGesturesTests.swift:
(AppKitGesturesTests.interruptingDeceleratingScrollDoesNotFollowLink):
(AppKitGesturesTests.clickingAfterDeceleratingScrollSettlesFollowsLink):
* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/RefreshControlGesturesTests.swift:
(AppKitGesturesTests.trackpadSwipeDownTriggersRefresh):
(AppKitGesturesTests.trackpadSwipeDownToInterruptDeceleratingScrollTriggersRefresh):
(AppKitGesturesTests.waitForRefresh):
Add another test case that asserts the fix for 316424@main is intact.
Canonical link: https://commits.webkit.org/321053@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications