Title: [281747] trunk/Source/WebKit
- Revision
- 281747
- Author
- [email protected]
- Date
- 2021-08-29 13:04:06 -0700 (Sun, 29 Aug 2021)
Log Message
REGRESSION(r281102): ASSERTION FAILED: !isInAcceleratedCompositingMode() in DrawingAreaProxyCoordinatedGraphics::incorporateUpdate
https://bugs.webkit.org/show_bug.cgi?id=229228
Reviewed by Carlos Garcia Campos.
WinCairo WK2 layout tests were observing an assertion failure for
some animations tests since r281102.
DrawingAreaProxyCoordinatedGraphics::incorporateUpdate has an
assertion ensuring a DrawingAreaProxy::Update message isn't sent
during the compositing mode. However,
DrawingAreaCoordinatedGraphics sent a Update message before
sending ExitAcceleratedCompositingMode message in the following
scenario.
1. DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode calls DrawingAreaCoordinatedGraphics::display(WebKit::UpdateInfo&)
2. It calls WebPage::updateRendering()
3. It executes _javascript_
4. It calls notifyDone
5. It calls WTR::TestRunner::notifyDone which calls WKBundlePageForceRepaint
6. It calls DrawingAreaCoordinatedGraphics::display() which dispatches the Update message
Send an ExitAcceleratedCompositingMode message instead of an
Update message if ExitAcceleratedCompositingMode isn't sent yet in
display().
* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::forceRepaint):
(WebKit::DrawingAreaCoordinatedGraphics::display):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (281746 => 281747)
--- trunk/Source/WebKit/ChangeLog 2021-08-29 18:57:47 UTC (rev 281746)
+++ trunk/Source/WebKit/ChangeLog 2021-08-29 20:04:06 UTC (rev 281747)
@@ -1,3 +1,35 @@
+2021-08-29 Fujii Hironori <[email protected]>
+
+ REGRESSION(r281102): ASSERTION FAILED: !isInAcceleratedCompositingMode() in DrawingAreaProxyCoordinatedGraphics::incorporateUpdate
+ https://bugs.webkit.org/show_bug.cgi?id=229228
+
+ Reviewed by Carlos Garcia Campos.
+
+ WinCairo WK2 layout tests were observing an assertion failure for
+ some animations tests since r281102.
+
+ DrawingAreaProxyCoordinatedGraphics::incorporateUpdate has an
+ assertion ensuring a DrawingAreaProxy::Update message isn't sent
+ during the compositing mode. However,
+ DrawingAreaCoordinatedGraphics sent a Update message before
+ sending ExitAcceleratedCompositingMode message in the following
+ scenario.
+
+ 1. DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode calls DrawingAreaCoordinatedGraphics::display(WebKit::UpdateInfo&)
+ 2. It calls WebPage::updateRendering()
+ 3. It executes _javascript_
+ 4. It calls notifyDone
+ 5. It calls WTR::TestRunner::notifyDone which calls WKBundlePageForceRepaint
+ 6. It calls DrawingAreaCoordinatedGraphics::display() which dispatches the Update message
+
+ Send an ExitAcceleratedCompositingMode message instead of an
+ Update message if ExitAcceleratedCompositingMode isn't sent yet in
+ display().
+
+ * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
+ (WebKit::DrawingAreaCoordinatedGraphics::forceRepaint):
+ (WebKit::DrawingAreaCoordinatedGraphics::display):
+
2021-08-29 Joonghun Park <[email protected]>
Unreviewed. Remove the build warning below since r281096.
Modified: trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp (281746 => 281747)
--- trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp 2021-08-29 18:57:47 UTC (rev 281746)
+++ trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp 2021-08-29 20:04:06 UTC (rev 281747)
@@ -212,7 +212,7 @@
#if USE(COORDINATED_GRAPHICS)
layerHostDidFlushLayers();
#endif
- }
+ }
}
void DrawingAreaCoordinatedGraphics::forceRepaintAsync(WebPage& page, CompletionHandler<void()>&& completionHandler)
@@ -770,7 +770,11 @@
return;
}
- send(Messages::DrawingAreaProxy::Update(m_backingStoreStateID, updateInfo));
+ if (m_compositingAccordingToProxyMessages) {
+ send(Messages::DrawingAreaProxy::ExitAcceleratedCompositingMode(m_backingStoreStateID, updateInfo));
+ m_compositingAccordingToProxyMessages = false;
+ } else
+ send(Messages::DrawingAreaProxy::Update(m_backingStoreStateID, updateInfo));
m_isWaitingForDidUpdate = true;
m_scheduledWhileWaitingForDidUpdate = false;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes