[webkit-changes] [WebKit/WebKit] bdce1d: [scroll-anchoring] A scroll anchoring adjustment d...
Nikos Mouchtaris
noreply at github.com
Mon Dec 4 15:57:51 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bdce1d6d1b68d8c04c45c4128a257a5778f6fcbd
https://github.com/WebKit/WebKit/commit/bdce1d6d1b68d8c04c45c4128a257a5778f6fcbd
Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
Date: 2023-12-04 (Mon, 04 Dec 2023)
Changed paths:
A LayoutTests/fast/scrolling/ios/scroll-anchoring-momentum-scroll-expected.txt
A LayoutTests/fast/scrolling/ios/scroll-anchoring-momentum-scroll.html
M Source/WebCore/page/scrolling/ScrollAnchoringController.cpp
Log Message:
-----------
[scroll-anchoring] A scroll anchoring adjustment during a momentum scroll stops the scroll
https://bugs.webkit.org/show_bug.cgi?id=264898
rdar://118476758
Reviewed by Simon Fraser.
On iOS, _scrollToContentScrollPosition calls [_scrollView _wk_stopScrollingAndZooming], which
means when we issue a programmatic scroll, it would stop a current user scroll (rdar://115703492).
For scroll anchoring, this isn't great as a scroll anchoring adjustment could kill a user scroll.
To mitigate this, ignore scroll anchoring adjustments on scrollable areas that have an ongoing
user scroll. Ideally, we would add the delta to the ongoing momentum scroll to compensate for layout
changes during user scrolls, which requires a fix for rdar://115703492.
* LayoutTests/resources/js-test.js:
(getOrCreate):
(description):
(debug):
* Source/WebCore/page/scrolling/ScrollAnchoringController.cpp:
(WebCore::ScrollAnchoringController::adjustScrollPositionForAnchoring):
* Source/WebCore/platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::handleWheelEvent):
Canonical link: https://commits.webkit.org/271517@main
More information about the webkit-changes
mailing list