[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