[webkit-changes] [WebKit/WebKit] 5220b6: Re-enable and refresh Overlay Regions
Etienne Segonzac
noreply at github.com
Thu Feb 1 00:43:20 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5220b67a61e25c2737f3a6c1ba155f5cf54f231d
https://github.com/WebKit/WebKit/commit/5220b67a61e25c2737f3a6c1ba155f5cf54f231d
Author: Etienne Segonzac <sgz at 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
More information about the webkit-changes
mailing list