2011-05-05 Abhishek Arya <inferno@chromium.org>
authorAbhishek Arya <inferno@chromium.org>
Thu, 5 May 2011 21:07:52 +0000 (21:07 +0000)
committerAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Tue, 21 Jun 2011 17:25:33 +0000 (14:25 -0300)
commit6807e9bc7b234e5fc9bd3be5faecbe9f369ee893
treec8252511b657b913cd568d22454eaef93fbe9489
parent4c2e373572d7d6a307cd351bf8fffe3f734e17cf
2011-05-05  Abhishek Arya  <inferno@chromium.org>

        Reviewed by Dave Hyatt.

        When style changes for a RenderBlock and we lose our ability to intrude into
        floats in the next siblings block (e.g a position change), make sure to mark
        our childs with floats for layout and iterate through our next sibling block
        chain to see which ones contain the float that also exists in our floating
        objects list and clear those using markAllDescendantsWithFloatsForLayout.
        https://bugs.webkit.org/show_bug.cgi?id=56299

        Tests: fast/block/float/float-not-removed-from-next-sibling-crash.html
               fast/block/float/float-not-removed-from-next-sibling.html
               fast/block/float/float-not-removed-from-next-sibling2.html
               fast/block/float/float-not-removed-from-next-sibling3.html
               fast/block/float/float-not-removed-from-next-sibling4.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::styleWillChange):
        (WebCore::RenderBlock::styleDidChange):
        (WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
        * rendering/RenderBlock.h:
2011-05-04  Abhishek Arya  <inferno@chromium.org>

        Reviewed by Dave Hyatt.

        Tests that we do not crash when trying to add overflow from a float not in the
        descendant list and whose renderer is already removed.
        https://bugs.webkit.org/show_bug.cgi?id=56299

        * fast/block/float/float-not-removed-from-next-sibling-crash-expected.txt: Added.
        * fast/block/float/float-not-removed-from-next-sibling-crash.html: Added.
        * fast/block/float/float-not-removed-from-next-sibling.html: Added. Black
        text boxes should be inside the silver float. Failing test will have float
        added to the text div block which will push the text downward.
        * fast/block/float/float-not-removed-from-next-sibling-expected.png: Added.
        * fast/block/float/float-not-removed-from-next-sibling-expected.txt: Added.
        * fast/block/float/float-not-removed-from-next-sibling2.html: Added. Black
        text boxes should be inside the silver float. Failing test will have float
        added to the text div block which will push the text downward.
        * fast/block/float/float-not-removed-from-next-sibling2-expected.png: Added.
        * fast/block/float/float-not-removed-from-next-sibling2-expected.txt: Added.
        * fast/block/float/float-not-removed-from-next-sibling3.html: Added. Distance
        between the silver float and black text boxes should be less than height of
        silver float. Failing test will have float overflow added to the text div
        block which will cause large space between silver float and and black text boxes.
        * fast/block/float/float-not-removed-from-next-sibling3-expected.png: Added.
        * fast/block/float/float-not-removed-from-next-sibling3-expected.txt: Added.
        * fast/block/float/float-not-removed-from-next-sibling4.html: Added. Distance
        between the silver float and black text boxes should be less than height of
        silver float. Failing test will have float overflow added to the text div
        block which will cause large space between silver float and and black text boxes.
        * fast/block/float/float-not-removed-from-next-sibling4-expected.png: Added.
        * fast/block/float/float-not-removed-from-next-sibling4-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@85876 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/block/float/float-not-removed-from-next-sibling-crash-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling-crash.html [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling-expected.png [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling.html [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling2-expected.png [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling2-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling2.html [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling3-expected.png [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling3-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling3.html [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling4-expected.png [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling4-expected.txt [new file with mode: 0644]
LayoutTests/fast/block/float/float-not-removed-from-next-sibling4.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderBlock.cpp
Source/WebCore/rendering/RenderBlock.h