Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 82c681c6142f6a73ee90cf0aec5ecbe7a98bcd45
      
https://github.com/WebKit/WebKit/commit/82c681c6142f6a73ee90cf0aec5ecbe7a98bcd45
  Author: Tim Horton <timothy_hor...@apple.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.h
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm

  Log Message:
  -----------
  [UnifiedPDF] Occasional crashes under IOSurface construction in the web 
content process
https://bugs.webkit.org/show_bug.cgi?id=268439

Reviewed by Said Abou-Hallawa.

LayerPool will often return layers that contain existing 
RemoteLayerBackingStore instances.
Before reusing the RemoteLayerBackingStore, we need to make sure it's of the 
correct subclass
for the layer, once the layer is reconfigured.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::createForLayer):
(WebKit::RemoteLayerBackingStore::processModelForLayer):
Hoist model picking and RLBS creation into RLBS.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::createRemoteLayerBackingStore): 
Deleted.
* 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.h:
* 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.h:
Make it possible to query a RLBS' "process model" (essentially which subclass 
it is,
this is technically duplicative with the is... methods, but handier for 
comparison).

* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::ensureBackingStore):
Avoid reusing the incorrect RLBS subclass.

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to