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

Reply via email to