Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7fe0d61af3920c468be5647625f59343f30aa253
https://github.com/WebKit/WebKit/commit/7fe0d61af3920c468be5647625f59343f30aa253
Author: Simon Fraser <[email protected]>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
A LayoutTests/fast/scrolling/mac/scrolling-triggerered-layouts-expected.txt
A LayoutTests/fast/scrolling/mac/scrolling-triggerered-layouts.html
M Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h
M
Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.messages.in
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm
Log Message:
-----------
[UI-side compositing] Scrolling triggers more layouts via updating the layout
viewport
https://bugs.webkit.org/show_bug.cgi?id=253690
rdar://106535756
Reviewed by Ryosuke Niwa.
With UI-side compositing, we see more layouts happening while scrolling than
before. These layouts
are triggered by FrameView::updateLayoutViewport() when it computes a new
layout viewport origin.
With the non-UI-side configuration, this doesn't happen because we get a new
layout viewport origin
from the scrolling tree via
AsyncScrollingCoordinator::applyScrollPositionUpdate() and
updateScrollPositionAfterAsyncScroll(), and apply this in
reconcileScrollingState() with a
FrameView::TriggerLayoutOrNot::No flag.
To fix this for UI-side compositing, we can simply pass the new layout viewport
origin from the
scrolling tree in the UI process back to the web process, and follow the same
code path.
* LayoutTests/fast/scrolling/mac/scrolling-triggerered-layouts-expected.txt:
Added.
* LayoutTests/fast/scrolling/mac/scrolling-triggerered-layouts.html: Added.
* Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h: Drive-by enum size
fix.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::sendScrollingTreeNodeDidScroll):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
*
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.messages.in:
*
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):
Canonical link: https://commits.webkit.org/261504@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes