Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 72ba23e6beb5f4855c3abc4271d4161f1a27a2bf
https://github.com/WebKit/WebKit/commit/72ba23e6beb5f4855c3abc4271d4161f1a27a2bf
Author: Simon Fraser <[email protected]>
Date: 2023-06-29 (Thu, 29 Jun 2023)
Changed paths:
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
Log Message:
-----------
REGRESSION(264840@main) ASSERTION FAILED:
CGRectIsNull(layer.contentsDirtyRect)
https://bugs.webkit.org/show_bug.cgi?id=258652
rdar://111229068
Reviewed by Brent Fulgham.
On platforms where -[CALayer contentsDirtyRect] is supported, TestWebKitAPI
tests on iOS, and sometimes apps
on macOS would hit an assertion in
RemoteLayerBackingStoreProperties::applyBackingStoreToLayer() that
the contentsDirtyRect was not the null rect. This happens when there has been
no CA transaction since the last call to
applyBackingStoreToLayer() which has committed this layer.
This happens in TestWebKitAPI on iOS because the app is not a real UIKit app,
so no layer commits happen. In other
scenarios it appears that it's possible to hit
RemoteLayerBackingStoreProperties::applyBackingStoreToLayer() twice
without a layer being committed in between. When that happens, we need to
accumulate into `contentsDirtyRect`,
and we should never clear it ourselves.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStoreProperties::applyBackingStoreToLayer):
Canonical link: https://commits.webkit.org/265631@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes