Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 72ba23e6beb5f4855c3abc4271d4161f1a27a2bf https://github.com/WebKit/WebKit/commit/72ba23e6beb5f4855c3abc4271d4161f1a27a2bf Author: Simon Fraser <simon.fra...@apple.com> 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 webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes