Title: [290333] trunk/Source/WebKit
Revision
290333
Author
hironori.fu...@sony.com
Date
2022-02-22 13:20:23 -0800 (Tue, 22 Feb 2022)

Log Message

[WinCairo][WK2] animations/background-position.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=236630

Reviewed by Don Olmstead.

r289848 was a wrong fix causing some test failures. It called the
force repaint completion handler too early if m_waitDidUpdate was
true when the force repaint was requested. In such case, we should
wait for two DidUpdate messages before calling the completion
handler.

* WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::didUpdate):
* WebProcess/WebPage/wc/DrawingAreaWC.h:
Added m_isForceRepaintCompletionHandlerDeferred flag.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (290332 => 290333)


--- trunk/Source/WebKit/ChangeLog	2022-02-22 21:11:40 UTC (rev 290332)
+++ trunk/Source/WebKit/ChangeLog	2022-02-22 21:20:23 UTC (rev 290333)
@@ -1,3 +1,22 @@
+2022-02-22  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [WinCairo][WK2] animations/background-position.html is timing out
+        https://bugs.webkit.org/show_bug.cgi?id=236630
+
+        Reviewed by Don Olmstead.
+
+        r289848 was a wrong fix causing some test failures. It called the
+        force repaint completion handler too early if m_waitDidUpdate was
+        true when the force repaint was requested. In such case, we should
+        wait for two DidUpdate messages before calling the completion
+        handler.
+
+        * WebProcess/WebPage/wc/DrawingAreaWC.cpp:
+        (WebKit::DrawingAreaWC::forceRepaintAsync):
+        (WebKit::DrawingAreaWC::didUpdate):
+        * WebProcess/WebPage/wc/DrawingAreaWC.h:
+        Added m_isForceRepaintCompletionHandlerDeferred flag.
+
 2022-02-22  Chris Dumez  <cdu...@apple.com>
 
         Clean up / optimize even more call sites constructing vectors

Modified: trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp (290332 => 290333)


--- trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp	2022-02-22 21:11:40 UTC (rev 290332)
+++ trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp	2022-02-22 21:20:23 UTC (rev 290333)
@@ -174,6 +174,7 @@
 void DrawingAreaWC::forceRepaintAsync(WebPage&, CompletionHandler<void()>&& completionHandler)
 {
     m_forceRepaintCompletionHandler = WTFMove(completionHandler);
+    m_isForceRepaintCompletionHandlerDeferred = m_waitDidUpdate;
     setNeedsDisplay();
 }
 
@@ -367,8 +368,12 @@
 void DrawingAreaWC::didUpdate()
 {
     m_waitDidUpdate = false;
-    if (m_forceRepaintCompletionHandler)
-        m_forceRepaintCompletionHandler();
+    if (m_forceRepaintCompletionHandler) {
+        if (m_isForceRepaintCompletionHandlerDeferred)
+            m_isForceRepaintCompletionHandlerDeferred = false;
+        else
+            m_forceRepaintCompletionHandler();
+    }
     if (m_hasDeferredRenderingUpdate) {
         m_hasDeferredRenderingUpdate = false;
         triggerRenderingUpdate();

Modified: trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h (290332 => 290333)


--- trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h	2022-02-22 21:11:40 UTC (rev 290332)
+++ trunk/Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h	2022-02-22 21:20:23 UTC (rev 290333)
@@ -80,6 +80,7 @@
     bool m_hasDeferredRenderingUpdate { false };
     bool m_inUpdateRendering { false };
     bool m_waitDidUpdate { false };
+    bool m_isForceRepaintCompletionHandlerDeferred { false };
     WCUpateInfo m_updateInfo;
     Ref<WebCore::GraphicsLayer> m_rootLayer;
     RefPtr<WebCore::GraphicsLayer> m_contentLayer;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to