Ignore:
Timestamp:
Aug 20, 2012, 2:32:03 PM (13 years ago)
Author:
tony@chromium.org
Message:

RenderGrid children should always be RenderBoxes
https://bugs.webkit.org/show_bug.cgi?id=94305

Reviewed by Abhishek Arya.

Source/WebCore:

During RenderGrid::layout, we assume all the children are RenderBoxes.
When removing children, if the last child is an anonymous block, we don't
want to remove the anonymous block for grids. Ensure this doesn't happen
by adding canCollapseAnonymousBlockChild to RenderBlock (flexboxen and
grid can override this method).

Test: fast/css-grid-layout/should-not-collapse-anonymous-blocks.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removeChild): Check canCollapseAnonymousBlockChild().

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::canCollapseAnonymousBlockChild):
(RenderBlock):

  • rendering/RenderDeprecatedFlexibleBox.h: canCollapseAnonymousBlockChild returns false.
  • rendering/RenderFlexibleBox.h: canCollapseAnonymousBlockChild returns false.
  • rendering/RenderGrid.h: canCollapseAnonymousBlockChild returns false.

LayoutTests:

Add test case from fuzzer.

  • fast/css-grid-layout/should-not-collapse-anonymous-blocks-expected.txt: Added.
  • fast/css-grid-layout/should-not-collapse-anonymous-blocks.html: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.