Title: [203341] trunk/Source/WebKit2
Revision
203341
Author
[email protected]
Date
2016-07-17 23:53:52 -0700 (Sun, 17 Jul 2016)

Log Message

REGRESSION(r202855): [GTK] ASSERTION FAILED: m_webPage.bounds().contains(bounds)
https://bugs.webkit.org/show_bug.cgi?id=159806

Reviewed by Žan Doberšek.

The problem is that since r202855, in case of non accelerated mode, the dirty region is updated too late when
updating backing store state.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updateBackingStoreState): Update the dirty region to the new size when not in
accelerated compositing mode.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize): Update the WebPage size before resizing the frame and calling setNeedsDisplay() to
ensure that any call to setNeedsDisplay() uses the new web page bounds. This is actually a regression introduced
in r143472, where setNeedsDisplay was changed to use the web page bounds as directy rectangle. Before r143472
the dirty rectangle was passed to setNeedsDisplay and it passed the right one.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (203340 => 203341)


--- trunk/Source/WebKit2/ChangeLog	2016-07-18 06:13:28 UTC (rev 203340)
+++ trunk/Source/WebKit2/ChangeLog	2016-07-18 06:53:52 UTC (rev 203341)
@@ -1,3 +1,22 @@
+2016-07-17  Carlos Garcia Campos  <[email protected]>
+
+        REGRESSION(r202855): [GTK] ASSERTION FAILED: m_webPage.bounds().contains(bounds)
+        https://bugs.webkit.org/show_bug.cgi?id=159806
+
+        Reviewed by Žan Doberšek.
+
+        The problem is that since r202855, in case of non accelerated mode, the dirty region is updated too late when
+        updating backing store state.
+
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::updateBackingStoreState): Update the dirty region to the new size when not in
+        accelerated compositing mode.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setSize): Update the WebPage size before resizing the frame and calling setNeedsDisplay() to
+        ensure that any call to setNeedsDisplay() uses the new web page bounds. This is actually a regression introduced
+        in r143472, where setNeedsDisplay was changed to use the web page bounds as directy rectangle. Before r143472
+        the dirty rectangle was passed to setNeedsDisplay and it passed the right one.
+
 2016-07-16  Sam Weinig  <[email protected]>
 
         [WebKit API] Add SPI to track multiple navigations caused by a single user gesture

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (203340 => 203341)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2016-07-18 06:13:28 UTC (rev 203340)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2016-07-18 06:53:52 UTC (rev 203341)
@@ -212,10 +212,10 @@
 
 void DrawingAreaImpl::updateBackingStoreState(uint64_t stateID, bool respondImmediately, float deviceScaleFactor, const WebCore::IntSize& size, const WebCore::IntSize& scrollOffset)
 {
-    bool shouldUpdateDirtyRegion = stateID != m_backingStoreStateID && !m_layerTreeHost;
+    if (stateID != m_backingStoreStateID && !m_layerTreeHost)
+        m_dirtyRegion = IntRect(IntPoint(), size);
+
     AcceleratedDrawingArea::updateBackingStoreState(stateID, respondImmediately, deviceScaleFactor, size, scrollOffset);
-    if (shouldUpdateDirtyRegion)
-        m_dirtyRegion = m_webPage.bounds();
 
     if (m_forceRepaintAfterBackingStoreStateUpdate)
         forceRepaint();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (203340 => 203341)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-07-18 06:13:28 UTC (rev 203340)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-07-18 06:53:52 UTC (rev 203341)
@@ -1350,11 +1350,10 @@
     if (m_viewSize == viewSize)
         return;
 
+    m_viewSize = viewSize;
     FrameView* view = m_page->mainFrame().view();
     view->resize(viewSize);
     m_drawingArea->setNeedsDisplay();
-    
-    m_viewSize = viewSize;
 
 #if USE(COORDINATED_GRAPHICS)
     if (view->useFixedLayout())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to