Title: [211790] releases/WebKitGTK/webkit-2.14/Source/WebKit2
Revision
211790
Author
carlo...@webkit.org
Date
2017-02-07 01:33:19 -0800 (Tue, 07 Feb 2017)

Log Message

Merge r211346 - [GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
https://bugs.webkit.org/show_bug.cgi?id=167548

Reviewed by Michael Catanzaro.

The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling
display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree
host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case
of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a
display, but we are going to display synchronously.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::forceRepaint):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (211789 => 211790)


--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog	2017-02-07 09:33:12 UTC (rev 211789)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog	2017-02-07 09:33:19 UTC (rev 211790)
@@ -1,3 +1,19 @@
+2017-01-28  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
+        https://bugs.webkit.org/show_bug.cgi?id=167548
+
+        Reviewed by Michael Catanzaro.
+
+        The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling
+        display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree
+        host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case
+        of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a
+        display, but we are going to display synchronously.
+
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::forceRepaint):
+
 2017-01-27  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [Threaded Compositor] Stop creating the GLContext on demand the first time makeContextCurrent is called

Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (211789 => 211790)


--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2017-02-07 09:33:12 UTC (rev 211789)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2017-02-07 09:33:19 UTC (rev 211790)
@@ -152,10 +152,11 @@
         return;
     }
 
-    setNeedsDisplay();
-    m_webPage.layoutIfNeeded();
     m_isWaitingForDidUpdate = false;
-    display();
+    if (m_isPaintingEnabled) {
+        m_dirtyRegion = m_webPage.bounds();
+        display();
+    }
 }
 
 void DrawingAreaImpl::mainFrameContentSizeChanged(const WebCore::IntSize& newSize)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to