[webkit-changes] [WebKit/WebKit] 368b33: Stitch remote iframe layers together regardless of...

Alex Christensen noreply at github.com
Thu Feb 9 15:49:24 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 368b3354ef93a9e982bb7b4cb598de4f1dbe0104
      https://github.com/WebKit/WebKit/commit/368b3354ef93a9e982bb7b4cb598de4f1dbe0104
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm

  Log Message:
  -----------
  Stitch remote iframe layers together regardless of creation order
https://bugs.webkit.org/show_bug.cgi?id=252009
rdar://105236763

Reviewed by Simon Fraser.

In 259937 at main we started adding iframe root layers as sublayers of
the hosting layer from another process, but this only works if the hosting
layer is created before the hosted layer.  This adds symmetric code that
remembers the hosting layers and the hosted layers and adds them if the
parent is created first or if the child is created first.

Not quiiiite ready for automated tests covering this, but we're getting close.
The test added in 259937 at main would cover this, but before re-landing that
test we need to get layers from all subframe processes in WebKitTestRunner
and fix at least 1 more assertion.  This can easily be seen in MiniBrowser
with site isolation after resizing the window.  Cross-origin iframes would
disappear before this and now they don't.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::createLayer):

Canonical link: https://commits.webkit.org/260090@main




More information about the webkit-changes mailing list