[webkit-changes] [WebKit/WebKit] 72ba23: REGRESSION(264840 at main) ASSERTION FAILED: CGRectIs...
Simon Fraser
noreply at github.com
Thu Jun 29 15:06:12 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 72ba23e6beb5f4855c3abc4271d4161f1a27a2bf
https://github.com/WebKit/WebKit/commit/72ba23e6beb5f4855c3abc4271d4161f1a27a2bf
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-06-29 (Thu, 29 Jun 2023)
Changed paths:
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
Log Message:
-----------
REGRESSION(264840 at 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
More information about the webkit-changes
mailing list