Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8f2972ef9f74c7f00d74077697c4028a1121773e https://github.com/WebKit/WebKit/commit/8f2972ef9f74c7f00d74077697c4028a1121773e Author: Etienne Segonzac <s...@apple.com> Date: 2023-02-21 (Tue, 21 Feb 2023)
Changed paths: M Source/WebCore/page/scrolling/ScrollingStateNode.cpp M Source/WebCore/page/scrolling/ScrollingStateNode.h M Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.h M Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.mm M Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.h M Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.mm M Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.h M Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.mm M Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h M Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm Log Message: ----------- Update the Interaction Regions layer tree after UI-side scrolling https://bugs.webkit.org/show_bug.cgi?id=251696 <rdar://104964643> Reviewed by Simon Fraser. UI-side scrolling changes need to be reflected on the Interaction Regions layer side. Otherwise the in-layer coordinates of the regions will be offset. We connect ScrollingStateNodes to their respective Interaction Regions layers and relay all bounds/position changes. The root interaction regions layer is not impacted as it is parented to the root node's main layer. * Source/WebCore/page/scrolling/ScrollingStateNode.cpp: (WebCore::ScrollingStateNode::setInteractionRegionsLayer): * Source/WebCore/page/scrolling/ScrollingStateNode.h: (WebCore::ScrollingStateNode::interactionRegionsLayer const): Add an `interactionRegionsLayer` property. * Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: (WebKit::RemoteScrollingCoordinatorProxyIOS::connectStateNodeLayers): Set Interaction Regions layers on ScrollingStateNodes. * Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.h: * Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.mm: (WebCore::ScrollingTreeFixedNodeCocoa::commitStateBeforeChildren): (WebCore::ScrollingTreeFixedNodeCocoa::applyLayerPositions): * Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.h: * Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.mm: (WebCore::ScrollingTreeOverflowScrollProxyNodeCocoa::commitStateBeforeChildren): (WebCore::ScrollingTreeOverflowScrollProxyNodeCocoa::applyLayerPositions): * Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.h: * Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.mm: (WebCore::ScrollingTreePositionedNodeCocoa::commitStateBeforeChildren): (WebCore::ScrollingTreePositionedNodeCocoa::applyLayerPositions): * Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h: * Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm: (WebCore::ScrollingTreeStickyNodeCocoa::commitStateBeforeChildren): (WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions): Apply all layer positions changes to the ScrollNode's corresponding Interaction Regions Layer. * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren): (WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers): Apply the ScrollView's contentOffset to the corresponding Interaction Regions layer. * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::applyCommonPropertiesToLayer): (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer): (WebKit::RemoteLayerTreePropertyApplier::applyProperties): (WebKit::applyGeometryPropertiesToLayer): Deleted. Apply the masksToBounds property to Interaction Regions layers. * Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: (WebKit::RemoteLayerTreeNode::detachFromParent): Remove the Interaction Regions layer from superlayer on detach even for UIView based nodes. (WebKit::RemoteLayerTreeNode::initializeLayer): Disable implicit position animations for Interaction Regions layers. * Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: (WebKit::updateLayersForInteractionRegions): Improve the debug style for occlusion layers. Canonical link: https://commits.webkit.org/260598@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes