Title: [245954] trunk/Source/WebKit
Revision
245954
Author
carlo...@webkit.org
Date
2019-05-31 01:12:45 -0700 (Fri, 31 May 2019)

Log Message

REGRESSION(r244182): [GTK] Web view no longer updated after re-entering AC mode
https://bugs.webkit.org/show_bug.cgi?id=198367

Reviewed by Sergio Villar Senin.

This happens because we leave accelerated compositing mode when a rendering update is scheduled in
RenderingUpdateScheduler. The ThreadedDisplayRefreshMonitor is destroyed without completing the
frame, so that the RenderingUpdateScheduler is left scheduled forever, ignoring any new schedule request. We
need to ensure we complete the frame request before destroying the display refresh monitor to leave the
RenderingUpdateScheduler in a consistent state.

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (245953 => 245954)


--- trunk/Source/WebKit/ChangeLog	2019-05-31 07:25:43 UTC (rev 245953)
+++ trunk/Source/WebKit/ChangeLog	2019-05-31 08:12:45 UTC (rev 245954)
@@ -1,3 +1,19 @@
+2019-05-31  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        REGRESSION(r244182): [GTK] Web view no longer updated after re-entering AC mode
+        https://bugs.webkit.org/show_bug.cgi?id=198367
+
+        Reviewed by Sergio Villar Senin.
+
+        This happens because we leave accelerated compositing mode when a rendering update is scheduled in
+        RenderingUpdateScheduler. The ThreadedDisplayRefreshMonitor is destroyed without completing the
+        frame, so that the RenderingUpdateScheduler is left scheduled forever, ignoring any new schedule request. We
+        need to ensure we complete the frame request before destroying the display refresh monitor to leave the
+        RenderingUpdateScheduler in a consistent state.
+
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
+        (WebKit::ThreadedDisplayRefreshMonitor::invalidate):
+
 2019-05-30  Ryosuke Niwa  <rn...@webkit.org>
 
         iOS: Main frame should be scrollable when pinch zoomed or software keyboard is up

Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp (245953 => 245954)


--- trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp	2019-05-31 07:25:43 UTC (rev 245953)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp	2019-05-31 08:12:45 UTC (rev 245954)
@@ -85,6 +85,13 @@
 void ThreadedDisplayRefreshMonitor::invalidate()
 {
     m_displayRefreshTimer.stop();
+    bool wasScheduled = false;
+    {
+        LockHolder locker(mutex());
+        wasScheduled = isScheduled();
+    }
+    if (wasScheduled)
+        DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread(this);
     m_client = nullptr;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to