Changeset 157198 in webkit


Ignore:
Timestamp:
Oct 9, 2013, 5:53:23 PM (11 years ago)
Author:
Simon Fraser
Message:

Layout assertion failure in WebCore::RenderView::paint
https://bugs.webkit.org/show_bug.cgi?id=121925

Reviewed by Tim Horton.

This fixes the assertion seen when running WK2 API tests.

If RenderLayerCompositor::flushPendingLayerChanges() was called before
the root layer was attached, it would set m_shouldFlushOnReattach
to do the flush later, after attaching (bypassing the runloop observer
that updated layout if necessary).

This could cause us to get to a CA commit without having updated
layout, hence the assertion.

Fix by having attachRootLayer() schedule a layer flush, rather than doing
one right away.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachRootLayer):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r157197 r157198  
     12013-10-09  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Layout assertion failure in WebCore::RenderView::paint
     4        https://bugs.webkit.org/show_bug.cgi?id=121925
     5
     6        Reviewed by Tim Horton.
     7
     8        This fixes the assertion seen when running WK2 API tests.
     9       
     10        If RenderLayerCompositor::flushPendingLayerChanges() was called before
     11        the root layer was attached, it would set m_shouldFlushOnReattach
     12        to do the flush later, after attaching (bypassing the runloop observer
     13        that updated layout if necessary).
     14       
     15        This could cause us to get to a CA commit without having updated
     16        layout, hence the assertion.
     17       
     18        Fix by having attachRootLayer() schedule a layer flush, rather than doing
     19        one right away.
     20
     21        * rendering/RenderLayerCompositor.cpp:
     22        (WebCore::RenderLayerCompositor::attachRootLayer):
     23
    1242013-10-09  Bem Jones-Bey  <bjonesbe@adobe.com>
    225
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

    r156749 r157198  
    29002900   
    29012901    if (m_shouldFlushOnReattach) {
    2902         flushPendingLayerChanges(true);
     2902        scheduleLayerFlushNow();
    29032903        m_shouldFlushOnReattach = false;
    29042904    }
Note: See TracChangeset for help on using the changeset viewer.