Changeset 211346 in webkit


Ignore:
Timestamp:
Jan 28, 2017 11:14:12 PM (7 years ago)
Author:
Carlos Garcia Campos
Message:

[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):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r211343 r211346  
     12017-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
     4        https://bugs.webkit.org/show_bug.cgi?id=167548
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling
     9        display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree
     10        host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case
     11        of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a
     12        display, but we are going to display synchronously.
     13
     14        * WebProcess/WebPage/DrawingAreaImpl.cpp:
     15        (WebKit::DrawingAreaImpl::forceRepaint):
     16
    1172017-01-28  Tim Horton  <timothy_horton@apple.com>
    218
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp

    r203341 r211346  
    153153    }
    154154
    155     setNeedsDisplay();
    156     m_webPage.layoutIfNeeded();
    157155    m_isWaitingForDidUpdate = false;
    158     display();
     156    if (m_isPaintingEnabled) {
     157        m_dirtyRegion = m_webPage.bounds();
     158        display();
     159    }
    159160}
    160161
Note: See TracChangeset for help on using the changeset viewer.