Patch by Julien Chaffraix <jchaffraix@webkit.org> on 2011-07-07
authorAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Tue, 2 Aug 2011 18:08:51 +0000 (15:08 -0300)
committerAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Tue, 2 Aug 2011 18:21:31 +0000 (15:21 -0300)
commitc955d9023e78c90187a3e11c5ca637a446e95ee9
treeabdac7861c76f61d90bea5d3a357bd20c300b587
parent2f842a47d379271e800cf54584d6aca0a5d106c9
Patch by Julien Chaffraix <jchaffraix@webkit.org> on 2011-07-07
Reviewed by David Hyatt.

Partial layout when a flex-box has visibility: collapse
https://bugs.webkit.org/show_bug.cgi?id=63776

Source/WebCore:

Tests: fast/flexbox/crash-button-input-autofocus.html
       fast/flexbox/crash-button-keygen.html
       fast/flexbox/crash-button-relayout.html

The issue is that FlexBoxIterator would skip any child if it has visibility: collapsed.
However if one of the child is anonymous, it may wrap some other child that would be skipped.
Now FlexBoxIterator is called during the layout phase and thus some nodes would not relayouted
as expected.

* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::FlexBoxIterator::next): When iterating, don't skip anonymous content as there may
be real content hiding below.

LayoutTests:

Those tests checks some variation of the same underlying issue.

* fast/flexbox/crash-button-input-autofocus-expected.txt: Added.
* fast/flexbox/crash-button-input-autofocus.html: Added.
* fast/flexbox/crash-button-keygen-expected.txt: Added.
* fast/flexbox/crash-button-keygen.html: Added.
* fast/flexbox/crash-button-relayout-expected.txt: Added.
* fast/flexbox/crash-button-relayout.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90568 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Conflicts:

Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
LayoutTests/ChangeLog
LayoutTests/fast/flexbox/crash-button-input-autofocus-expected.txt [new file with mode: 0644]
LayoutTests/fast/flexbox/crash-button-input-autofocus.html [new file with mode: 0755]
LayoutTests/fast/flexbox/crash-button-keygen-expected.txt [new file with mode: 0644]
LayoutTests/fast/flexbox/crash-button-keygen.html [new file with mode: 0755]
LayoutTests/fast/flexbox/crash-button-relayout-expected.txt [new file with mode: 0644]
LayoutTests/fast/flexbox/crash-button-relayout.html [new file with mode: 0755]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderFlexibleBox.cpp