Bug 1266131 part 1 - [css-grid] 'order' doesn't apply to grid-aligned abs.pos. descendants (anymore). r=dholbert

This commit is contained in:
Mats Palmgren 2016-04-25 18:43:04 +02:00
Родитель adbc189b42
Коммит 91532abbc2
2 изменённых файлов: 2 добавлений и 13 удалений

Просмотреть файл

@ -5213,15 +5213,6 @@ nsGridContainerFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
// Our children are all grid-level boxes, which behave the same as
// inline-blocks in painting, so their borders/backgrounds all go on
// the BlockBorderBackgrounds list.
// Also, we capture positioned descendants so we can sort them by
// CSS 'order'.
nsDisplayList positionedDescendants;
nsDisplayListSet childLists(aLists.BlockBorderBackgrounds(),
aLists.BlockBorderBackgrounds(),
aLists.Floats(),
aLists.Content(),
&positionedDescendants,
aLists.Outlines());
typedef GridItemCSSOrderIterator::OrderState OrderState;
OrderState order = HasAnyStateBits(NS_STATE_GRID_NORMAL_FLOW_CHILDREN_IN_CSS_ORDER)
? OrderState::eKnownOrdered
@ -5230,11 +5221,9 @@ nsGridContainerFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
GridItemCSSOrderIterator::eIncludeAll, order);
for (; !iter.AtEnd(); iter.Next()) {
nsIFrame* child = *iter;
BuildDisplayListForChild(aBuilder, child, aDirtyRect, childLists,
BuildDisplayListForChild(aBuilder, child, aDirtyRect, aLists,
::GetDisplayFlagsForGridItem(child));
}
positionedDescendants.SortByCSSOrder();
aLists.PositionedDescendants()->AppendToTop(&positionedDescendants);
}
bool

Просмотреть файл

@ -32,7 +32,7 @@ fails == grid-whitespace-handling-1b.xhtml grid-whitespace-handling-1-ref.xhtml
== grid-abspos-items-013.html grid-abspos-items-013-ref.html
== grid-abspos-items-014.html grid-abspos-items-014-ref.html
== grid-abspos-items-015.html grid-abspos-items-015-ref.html
== grid-order-abspos-items-001.html grid-order-abspos-items-001-ref.html
!= grid-order-abspos-items-001.html grid-order-abspos-items-001-ref.html
== grid-order-placement-auto-001.html grid-order-placement-auto-001-ref.html
fuzzy-if(skiaContent,1,200) == grid-order-placement-definite-001.html grid-order-placement-definite-001-ref.html
skip-if(Android) == grid-placement-definite-implicit-001.html grid-placement-definite-implicit-001-ref.html