Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5220b67a61e25c2737f3a6c1ba155f5cf54f231d https://github.com/WebKit/WebKit/commit/5220b67a61e25c2737f3a6c1ba155f5cf54f231d Author: Etienne Segonzac <s...@apple.com> Date: 2024-02-01 (Thu, 01 Feb 2024)
Changed paths: M LayoutTests/TestExpectations A LayoutTests/overlay-region/fixed-node-updates-expected.txt A LayoutTests/overlay-region/fixed-node-updates.html A LayoutTests/overlay-region/full-page-dynamic-expected.txt A LayoutTests/overlay-region/full-page-dynamic.html A LayoutTests/overlay-region/full-page-expected.txt A LayoutTests/overlay-region/full-page-horizontal-expected.txt A LayoutTests/overlay-region/full-page-horizontal.html A LayoutTests/overlay-region/full-page-overflow-expected.txt A LayoutTests/overlay-region/full-page-overflow-scrolling-expected.txt A LayoutTests/overlay-region/full-page-overflow-scrolling.html A LayoutTests/overlay-region/full-page-overflow.html A LayoutTests/overlay-region/full-page-scrolling-expected.txt A LayoutTests/overlay-region/full-page-scrolling.html A LayoutTests/overlay-region/full-page.html A LayoutTests/overlay-region/many-candidates-expected.txt A LayoutTests/overlay-region/many-candidates.html A LayoutTests/overlay-region/map-expected.txt A LayoutTests/overlay-region/map-small-expected.txt A LayoutTests/overlay-region/map-small.html A LayoutTests/overlay-region/map.html A LayoutTests/overlay-region/split-scrollers-expected.txt A LayoutTests/overlay-region/split-scrollers.html M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm M Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm M Source/WebKit/UIProcess/ios/WKBaseScrollView.h M Source/WebKit/UIProcess/ios/WKBaseScrollView.mm M Source/WebKit/UIProcess/ios/WKScrollView.h M Source/WebKit/UIProcess/ios/WKScrollView.mm Log Message: ----------- Re-enable and refresh Overlay Regions https://bugs.webkit.org/show_bug.cgi?id=268112 <rdar://119322854> Reviewed by Mike Wyrzykowski. The code for Overlay Regions is re-enabled and refreshed. It now supports overflow scrolling and focuses on a single "selected" scroll view. A sizeable test suite is added to make future modifications easier. * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: Making the LayerPropertiesMap type usable in WKWebViewIOS. * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (addOverlayEventRegions): Updated, now only responsible to build the overlayRegionsIDs set. (configureScrollViewWithOverlayRegionsIDs): New function building a HashSet<IntRect> to pass to the selected scroll view. (-[WKWebView _scrollViewCanHaveOverlayRegions:]): (-[WKWebView _selectOverlayRegionScrollView:]): This method selects the main scroll view to use for Overlay Regions. The top level WKScrollView takes priority, otherwise we select the candidate covering the largest area. (-[WKWebView _updateOverlayRegions:destroyedLayers:]): Remove destroyed layers from the scrolling coordinator proxy tracking. Update the overlayRegionsIDs set. Select the overlayRegionScrollView and configure it. * Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h: * Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: (WebKit::RemoteScrollingCoordinatorProxyIOS::removeDestroyedLayerIDs): (WebKit::RemoteScrollingCoordinatorProxyIOS::removeFixedScrollingNodeLayerIDs): Deleted. Renamed. Now removes destroyed layers from all tracking properties. (WebKit::RemoteScrollingCoordinatorProxyIOS::connectStateNodeLayers): Now keeps track of: - fixed and sticky nodes - scrolling node (by PlatformLayerIdentifier so we can remove the destroyed layers) (WebKit:: const): Generates a list of scroll view candidates for Overlay Regions, based on the scrolling node tracking. * Source/WebKit/UIProcess/ios/WKBaseScrollView.h: * Source/WebKit/UIProcess/ios/WKBaseScrollView.mm: (-[WKBaseScrollView _updateOverlayRegionRects:]): (-[WKBaseScrollView _updateOverlayRegionsBehavior:]): New API/Addition for Overlay Regions. * Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: (WebKit::RemoteLayerTreeDrawingAreaProxy::updateOverlayRegionIDs): Deleted. * Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: (WebKit::RemoteLayerTreeHost::overlayRegionIDs const): Deleted. (WebKit::RemoteLayerTreeHost::updateOverlayRegionIDs): Deleted. Remove dead code. * Source/WebKit/UIProcess/ios/WKScrollView.h: * Source/WebKit/UIProcess/ios/WKScrollView.mm: (addDebugOverlays): Deleted. (-[WKScrollView _updateOverlayRegions:]): Deleted. (-[WKScrollView overlayRegions]): Deleted. Remove dead code. * Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm: (dumpUIView): Fix a typo in `rectToString`. Add extra properties to the UIView dump for Overlay Regions. * LayoutTests/TestExpectations: * LayoutTests/overlay-region/fixed-node-updates-expected.txt: Added. * LayoutTests/overlay-region/fixed-node-updates.html: Added. * LayoutTests/overlay-region/full-page-dynamic-expected.txt: Added. * LayoutTests/overlay-region/full-page-dynamic.html: Added. * LayoutTests/overlay-region/full-page-expected.txt: Added. * LayoutTests/overlay-region/full-page-horizontal-expected.txt: Added. * LayoutTests/overlay-region/full-page-horizontal.html: Added. * LayoutTests/overlay-region/full-page-overflow-expected.txt: Added. * LayoutTests/overlay-region/full-page-overflow-scrolling-expected.txt: Added. * LayoutTests/overlay-region/full-page-overflow-scrolling.html: Added. * LayoutTests/overlay-region/full-page-overflow.html: Added. * LayoutTests/overlay-region/full-page-scrolling-expected.txt: Added. * LayoutTests/overlay-region/full-page-scrolling.html: Added. * LayoutTests/overlay-region/full-page.html: Added. * LayoutTests/overlay-region/many-candidates-expected.txt: Added. * LayoutTests/overlay-region/many-candidates.html: Added. * LayoutTests/overlay-region/map-expected.txt: Added. * LayoutTests/overlay-region/map-small-expected.txt: Added. * LayoutTests/overlay-region/map-small.html: Added. * LayoutTests/overlay-region/map.html: Added. * LayoutTests/overlay-region/split-scrollers-expected.txt: Added. * LayoutTests/overlay-region/split-scrollers.html: Added. Add a new test suite for the feature, skipping in the current runners. Canonical link: https://commits.webkit.org/273889@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes