• hyatt@apple.com's avatar
    WebCore: · 8b2cd1fe
    hyatt@apple.com authored
    2009-01-25  David Hyatt  <hyatt@apple.com>
    
            Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
    
            The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
            end up marking ancestors of a block as needing layout when that block was still in the process of
            doing a layout.
    
            The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
            we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
            of objects to avoid accidentally marking a clean ancestor as needing layout again.
    
            Ultimately the second parameter to setNeedsLayout and setChildNeedsLayout should just be removed,
            with a check of whether or not we are mid-layout being done by those methods instead.
    
            Reviewed by Oliver Hunt
    
            Added fast/repaint/dynamic-table-vertical-alignment-change.html
    
            * rendering/RenderBlock.cpp:
            (WebCore::RenderBlock::collapseMargins):
            (WebCore::RenderBlock::clearFloatsIfNeeded):
            (WebCore::RenderBlock::layoutBlockChildren):
            (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
            * rendering/RenderBlock.h:
            * rendering/RenderObject.cpp:
            (WebCore::RenderObject::removeFromObjectLists):
            * rendering/RenderObject.h:
            * rendering/RenderTableSection.cpp:
            (WebCore::RenderTableSection::layoutRows):
    
    LayoutTests:
    
    2009-01-25  David Hyatt  <hyatt@apple.com>
    
            Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
    
            Reviewed by Oliver Hunt
    
            * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
            * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
            * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
            * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    8b2cd1fe
RenderBlock.cpp 188 KB