REGRESSION (r85964): Improper relayout of some nested positioned elements
authorDaniel Bates <dbates@webkit.org>
Mon, 25 Jul 2011 18:55:58 +0000 (18:55 +0000)
committerAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Thu, 28 Jul 2011 21:00:04 +0000 (18:00 -0300)
commit57813edb6f26b5b13e3efbe3fabd84f10f51a157
tree65201d266a346c6cc9e2f3058e9e9a98b71e08ab
parenta7ba52c323132461dab4af616271bab75c2ffd57
REGRESSION (r85964): Improper relayout of some nested positioned elements
https://bugs.webkit.org/show_bug.cgi?id=64286

Reviewed by David Hyatt.

Source/WebCore:

Fixes an issue when traversing up the containing block hierarchy after skipping
relatively positioned inlines.

When processing a positioned element we skip any intermediate inlines to get to
to enclosing block B, but don't use the containing block for B (call this P_B) to
properly continue traversing up the containing block hierarchy. So, B may be
considered again instead of looking at P_B. Hence, we don't set the correct dirty
bits for P_B and may not schedule a relayout with respect to the correct layout node.

Test: fast/block/positioning/relayout-nested-positioned-elements-crash.html

* rendering/RenderObject.h:
(WebCore::RenderObject::markContainingBlocksForLayout):

LayoutTests:

Add test case to ensure we don't regress relayout of nested positioned elements.

* fast/block/positioning/relayout-nested-positioned-elements-expected-crash.txt: Added.
* fast/block/positioning/relayout-nested-positioned-elements-crash.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@91689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/block/positioning/relayout-nested-positioned-elements-crash.html [new file with mode: 0644]
LayoutTests/fast/block/positioning/relayout-nested-positioned-elements-expected-crash.txt [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderObject.h