Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 69f43e22401674b905bb6762846ce2f1814146be
https://github.com/WebKit/WebKit/commit/69f43e22401674b905bb6762846ce2f1814146be
Author: Matt Woodrow <[email protected]>
Date: 2024-07-11 (Thu, 11 Jul 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/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm
Log Message:
-----------
Crash in WebKit::RemoteLayerBackingStore::needsDisplay due to owner() being
null.
https://bugs.webkit.org/show_bug.cgi?id=276352
<rdar://131107394>
Reviewed by Dan Glastonbury.
When a layer subtree has rendering suppression, we just want add its backing
store
to m_reachableBackingStoreInLatestFlush to stop it from being purged.
It is entirely possible for the owner() (the GraphicsLayer) to have gone away,
and
we want to continue to display the old content until suppression ends.
The existing code for
RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed
checked for invalidation via needsDisplay(), which then crashed if the owner
had gone
away.
This adds a new alternative that doesn't check for invalidation, with very
explicit
rendering suppression naming.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::layerWillBeDisplayedWithRenderingSuppression):
(WebKit::RemoteLayerBackingStore::needsDisplay const):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayedWithRenderingSuppression):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::recursiveMarkWillBeDisplayedWithRenderingSuppresion):
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
(WebKit::PlatformCALayerRemote::recursiveMarkWillBeDisplayed): Deleted.
Canonical link: https://commits.webkit.org/280874@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes