[webkit-changes] [WebKit/WebKit] d689b8: visionOS: Compositing layers can end up getting sh...
Tim Horton
noreply at github.com
Mon Mar 25 12:53:25 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d689b8edef147f0eab7c70fc6f0f3a1ad8db5e3b
https://github.com/WebKit/WebKit/commit/d689b8edef147f0eab7c70fc6f0f3a1ad8db5e3b
Author: Tim Horton <thorton at apple.com>
Date: 2024-03-25 (Mon, 25 Mar 2024)
Changed paths:
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
Log Message:
-----------
visionOS: Compositing layers can end up getting shuffled out of order on layer tree mutation
https://bugs.webkit.org/show_bug.cgi?id=268420
<rdar://121612730>
Reviewed by Richard Robinson and Simon Fraser.
It turns out it is not advisable to have interleaved UIView and CALayer children
underneath a UIView. Avoid this by wrapping the interaction region root layer
in a UIView.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(-[UIView _web_setSubviews:]):
Add an assertion to avoid future re-debugging of this issue.
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
Don't bother moving the interaction region container around in the non-UIView
case; it never comes up, as on UIKit-having platforms we always make UIViews
for all but the tile contents layers, which never have interaction regions.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::ensureInteractionRegionsContainer):
(WebKit::RemoteLayerTreeNode::removeInteractionRegionsContainer):
(WebKit::RemoteLayerTreeNode::repositionInteractionRegionsContainerIfNeeded):
Swap the CALayer for a UIView. However, we'll continue using the layer
for maintaining state and our set of sublayers, since it has no view children.
Originally-landed-as: 272448.443 at safari-7618-branch (1b8630ced33e). rdar://124554005
Canonical link: https://commits.webkit.org/276644@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list