Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b08436732d9d451b70e9d6cd5061d65d6fd54497
https://github.com/WebKit/WebKit/commit/b08436732d9d451b70e9d6cd5061d65d6fd54497
Author: Nikolaos Mouchtaris <[email protected]>
Date: 2022-12-09 (Fri, 09 Dec 2022)
Changed paths:
A LayoutTests/fast/scrolling/mac/smooth-scroll-fixed-element-expected.txt
A LayoutTests/fast/scrolling/mac/smooth-scroll-fixed-element.html
A LayoutTests/fast/scrolling/mac/smooth-scroll-iframe-expected.txt
A LayoutTests/fast/scrolling/mac/smooth-scroll-iframe.html
A
LayoutTests/fast/scrolling/resources/smooth-scroll-iframe-helper-iframe.html
M Source/WebCore/dom/Document.cpp
M Source/WebCore/page/FrameView.cpp
M Source/WebCore/page/FrameView.h
M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
M Source/WebCore/platform/ScrollAnimator.cpp
M Source/WebCore/platform/ScrollableArea.h
M Source/WebCore/rendering/RenderLayerScrollableArea.cpp
M Source/WebCore/rendering/RenderLayerScrollableArea.h
Log Message:
-----------
REGRESSION (251454@main): Setting scrollTop on fixed element with overflow
breaks scrolling on a 'overscroll-behavior:none' page
https://bugs.webkit.org/show_bug.cgi?id=245300
<rdar://100057532>
Reviewed by Simon Fraser.
This fixes a few issues with https://commits.webkit.org/251454@main. The first
is the fix was originally only intended for
scroll-behavior: smooth, so only add the scrollable area when we are doing an
animated scroll. The second is to be more
strict when these non-user scrollable areas are in the frame view's list of
sccrollable areas. We accomplish this by
adding a call when the animation completes to updateScrollableAreaSet, which
will determine if the particular scrollable
area should be in the set after the animation completes. Finally, we add a
check to absoluteEventTrackingRegionsForFrame(),
to see if the scrollable area was added only because it needed to do an
animation.
* LayoutTests/fast/scrolling/mac/smooth-scroll-fixed-element-expected.txt:
Added.
* LayoutTests/fast/scrolling/mac/smooth-scroll-fixed-element.html: Added.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::runScrollSteps):
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::animatedScrollDidEndForNode):
* Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):
* Source/WebCore/platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::didStopAnimatedScroll):
* Source/WebCore/platform/ScrollableArea.h:
(WebCore::ScrollableArea::animatedScrollDidEnd):
* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollToOffset):
(WebCore::RenderLayerScrollableArea::registerScrollableAreaForAnimatedScroll):
(WebCore::RenderLayerScrollableArea::animatedScrollDidEnd):
(WebCore::RenderLayerScrollableArea::registerScrollableArea): Deleted.
* Source/WebCore/rendering/RenderLayerScrollableArea.h:
Canonical link: https://commits.webkit.org/257665@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes