Changeset 147759 in webkit


Ignore:
Timestamp:
Apr 5, 2013 10:36:12 AM (11 years ago)
Author:
Simon Fraser
Message:

ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
https://bugs.webkit.org/show_bug.cgi?id=103432

Reviewed by Allan Sandfeld Jensen.

Remove optimization added in r99752 that attempted to avoid clip rect
updates for table cells. As the assertions show, this optimization
is not always correct, so remove it. Bug 108272 tracks adding it back in.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Remove m_canSkipRepaintRectsUpdateOnScroll
check when updating clip rects.

  • rendering/RenderLayer.h: Remove the m_canSkipRepaintRectsUpdateOnScroll bit.
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r147758 r147759  
     12013-04-05  Simon Fraser  <simon.fraser@apple.com>
     2
     3        ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
     4        https://bugs.webkit.org/show_bug.cgi?id=103432
     5
     6        Reviewed by Allan Sandfeld Jensen.
     7       
     8        Remove optimization added in r99752 that attempted to avoid clip rect
     9        updates for table cells. As the assertions show, this optimization
     10        is not always correct, so remove it. Bug 108272 tracks adding it back in.
     11
     12        * rendering/RenderLayer.cpp:
     13        (WebCore::RenderLayer::RenderLayer):
     14        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Remove m_canSkipRepaintRectsUpdateOnScroll
     15        check when updating clip rects.
     16        * rendering/RenderLayer.h: Remove the m_canSkipRepaintRectsUpdateOnScroll bit.
     17
    1182013-04-05  Bear Travis  <betravis@adobe.com>
    219
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r147502 r147759  
    179179    , m_layerListMutationAllowed(true)
    180180#endif
    181     , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell())
    182181#if ENABLE(CSS_FILTERS)
    183182    , m_hasFilterInfo(false)
     
    775774
    776775    if (flags & HasSeenViewportConstrainedAncestor
    777         || (flags & IsOverflowScroll && flags & HasSeenAncestorWithOverflowClip && !m_canSkipRepaintRectsUpdateOnScroll)) {
     776        || (flags & IsOverflowScroll && flags & HasSeenAncestorWithOverflowClip)) {
    778777        // FIXME: We could track the repaint container as we walk down the tree.
    779778        computeRepaintRects(renderer()->containerForRepaint(), geometryMap);
    780779    } else {
    781780        // Check that our cached rects are correct.
    782         // FIXME: re-enable these assertions when the issue with table cells is resolved: https://bugs.webkit.org/show_bug.cgi?id=103432
    783         // ASSERT(m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()));
    784         // ASSERT(m_outlineBox == renderer()->outlineBoundsForRepaint(renderer()->containerForRepaint(), geometryMap));
     781        ASSERT(m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()));
     782        ASSERT(m_outlineBox == renderer()->outlineBoundsForRepaint(renderer()->containerForRepaint(), geometryMap));
    785783    }
    786784   
  • trunk/Source/WebCore/rendering/RenderLayer.h

    r147600 r147759  
    12081208    bool m_layerListMutationAllowed : 1;
    12091209#endif
    1210     // This is an optimization added for <table>.
    1211     // Currently cells do not need to update their repaint rectangles when scrolling. This also
    1212     // saves a lot of time when scrolling on a table.
    1213     const bool m_canSkipRepaintRectsUpdateOnScroll : 1;
    12141210
    12151211#if ENABLE(CSS_FILTERS)
Note: See TracChangeset for help on using the changeset viewer.