Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d689b8edef147f0eab7c70fc6f0f3a1ad8db5e3b
      
https://github.com/WebKit/WebKit/commit/d689b8edef147f0eab7c70fc6f0f3a1ad8db5e3b
  Author: Tim Horton <thor...@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@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
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to