Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 50c9dcae73447ac8e649a07dd246b227fc3dfd65
      
https://github.com/WebKit/WebKit/commit/50c9dcae73447ac8e649a07dd246b227fc3dfd65
  Author: Nikolaos Mouchtaris <nmouchta...@apple.com>
  Date:   2024-01-04 (Thu, 04 Jan 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/scrolling/mac/keyboard-rubberband-expected.txt
    A LayoutTests/fast/scrolling/mac/keyboard-rubberband.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/start-edge-in-block-layout-direction-expected.txt
    M Source/WebCore/page/scrolling/ScrollAnchoringController.cpp
    M Source/WebCore/platform/ScrollAnimator.cpp

  Log Message:
  -----------
  [scroll-anchoring] Keyboard scrolling into a rubberband leaves the page stuck 
at a bad scroll offset
https://bugs.webkit.org/show_bug.cgi?id=267061
rdar://120053910

Reviewed by Simon Fraser.

After https://commits.webkit.org/271957@main we disabled scroll anchoring 
adjustments while
m_owningScrollableArea.isRubberBandInProgress() is true. However, this is not 
true during a
keyboard scroll. A better solution to this is to invalidate the scroll 
anchoring element in
ScrollAnimator::setCurrentPosition itself. Normally scroll position changes 
here would be sent
down into the scrollable area via setScrollPositionFromAnimation, however while 
rubberbanding
notify is NotifyScrollableArea::No, so we don't propagate the scroll position 
change to the
scrollable area. Now that we properly notfiy the scroll anchoring controller of 
the scroll
position change while rubberbanding, we can remove the old solution.

* Source/WebCore/page/scrolling/ScrollAnchoringController.cpp:
(WebCore::ScrollAnchoringController::adjustScrollPositionForAnchoring):
* Source/WebCore/platform/ScrollAnimator.cpp:
(WebCore::notifyScrollAnchoringControllerOfScroll):
(WebCore::ScrollAnimator::setCurrentPosition):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to