[webkit-changes] [WebKit/WebKit] bb4da5: Multiple iframes in same isolated process results ...

mattwoodrow noreply at github.com
Wed Nov 8 10:39:13 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bb4da53917de7e7e3788b43bf8b9aba9ee81d718
      https://github.com/WebKit/WebKit/commit/bb4da53917de7e7e3788b43bf8b9aba9ee81d718
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-11-08 (Wed, 08 Nov 2023)

  Changed paths:
    A LayoutTests/http/tests/site-isolation/double-iframe-expected.html
    A LayoutTests/http/tests/site-isolation/double-iframe.html
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm

  Log Message:
  -----------
  Multiple iframes in same isolated process results in one of them not being drawn.
https://bugs.webkit.org/show_bug.cgi?id=264356
<rdar://118034981>

Reviewed by Alex Christensen.

RemoteLayerBackingStoreCollection::willCommitLayerTree collects all the backing stores that were unreachable,
and includes that list in the transaction so that the UI process can ensure the buffer references are removed.

This changes moves that call until we've finished building all the transactions, so that were not considering
buffers only used in latter transactions to be unreachable for the first transaction.

It also adds a new 'willBuildTransaction' function. The set of backing stores that need display is a property
of the transaction (where we call prepareBuffersForDisplay, and then paint them), so we want to clear this
state per-transaction, not per rendering update.

* LayoutTests/http/tests/site-isolation/double-iframe-expected.html: Added.
* LayoutTests/http/tests/site-isolation/double-iframe.html: Added.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::willBuildTransaction):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

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




More information about the webkit-changes mailing list