Bug 1144096 part 23 - [css-grid] A grid container fragment that is an overflow container can't be INCOMPLETE, only OVERFLOW_INCOMPLETE and it should always have zero BSize. r=dholbert
--- a/layout/generic/nsGridContainerFrame.cpp
+++ b/layout/generic/nsGridContainerFrame.cpp
@@ -5070,16 +5070,28 @@ nsGridContainerFrame::Reflow(nsPresConte
}
LogicalSize desiredSize(wm, computedISize + bp.IStartEnd(wm),
bSize + bp.BStartEnd(wm));
aDesiredSize.SetSize(wm, desiredSize);
aDesiredSize.mOverflowAreas.UnionAllWith(nsRect(0, 0,
aDesiredSize.Width(),
aDesiredSize.Height()));
+
+ // Convert INCOMPLETE -> OVERFLOW_INCOMPLETE and zero bsize if we're an OC.
+ if (HasAnyStateBits(NS_FRAME_IS_OVERFLOW_CONTAINER)) {
+ if (!NS_FRAME_IS_COMPLETE(aStatus)) {
+ NS_FRAME_SET_OVERFLOW_INCOMPLETE(aStatus);
+ aStatus |= NS_FRAME_REFLOW_NEXTINFLOW;
+ }
+ bSize = 0;
+ desiredSize.BSize(wm) = bSize + bp.BStartEnd(wm);
+ aDesiredSize.SetSize(wm, desiredSize);
+ }
+
if (!prevInFlow) {
auto sharedGridData = static_cast<SharedGridData*>(
Properties().Get(SharedGridData::Prop()));
if (!NS_FRAME_IS_FULLY_COMPLETE(aStatus)) {
if (!sharedGridData) {
sharedGridData = new SharedGridData;
Properties().Set(SharedGridData::Prop(), sharedGridData);
}