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

Reply via email to