From df633bd27a8892ecf27700ef92078faffeb6fa2d Mon Sep 17 00:00:00 2001 From: Date: Sat, 1 Dec 2007 02:38:09 -0800 Subject: [PATCH] Bug 375304. Fix absolute positioning where the abs-pos container is scrollable and has a height constrained by min-height etc. Patch by Eli Friedman, r+sr=roc --- layout/generic/nsBlockFrame.cpp | 14 +-- layout/generic/nsGfxScrollFrame.cpp | 116 +++++++++++------- layout/generic/nsHTMLReflowState.cpp | 50 ++------ .../percent-overflow-sizing/greenbox.html | 1 + .../percent-overflow-sizing/greenboxhbar.html | 2 + .../hScrollAbsHeight.html | 5 + .../hScrollAbsHeightD.html | 6 + .../hScrollAbsHeightQuirks.html | 5 + .../hScrollAbsHeightQuirksD.html | 5 + .../hScrollAbsMinHeightD.html | 6 + .../hScrollAbsMinHeightQuirksD.html | 5 + .../hScrollSimpleHeight.html | 5 + .../hScrollSimpleHeightD.html | 6 + .../hScrollSimpleHeightQuirks-1.html | 4 + .../hScrollSimpleHeightQuirks-1D.html | 5 + .../hScrollSimpleHeightQuirks-2.html | 6 + .../hScrollSimpleHeightQuirks-2D.html | 7 ++ .../hScrollSimpleHeightQuirks-3.html | 8 ++ .../hScrollSimpleHeightQuirks-3D.html | 9 ++ .../hScrollSimpleMinHeightD.html | 6 + .../hScrollSimpleMinHeightQuirks-1D.html | 5 + .../hScrollSimpleMinHeightQuirks-3D.html | 9 ++ .../percent-overflow-sizing/reftest.list | 23 ++++ .../simpleAbsHeight.html | 5 + .../simpleAbsHeightD.html | 6 + .../simpleAbsMinHeightD.html | 6 + .../simpleHeight100.html | 5 + .../simpleHeight100D.html | 6 + .../simpleMinHeight100D.html | 6 + layout/reftests/reftest.list | 4 + 30 files changed, 251 insertions(+), 95 deletions(-) create mode 100644 layout/reftests/percent-overflow-sizing/greenbox.html create mode 100644 layout/reftests/percent-overflow-sizing/greenboxhbar.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsHeight.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirks.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirksD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightQuirksD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeight.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1D.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2D.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3D.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-1D.html create mode 100644 layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-3D.html create mode 100644 layout/reftests/percent-overflow-sizing/reftest.list create mode 100644 layout/reftests/percent-overflow-sizing/simpleAbsHeight.html create mode 100644 layout/reftests/percent-overflow-sizing/simpleAbsHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/simpleAbsMinHeightD.html create mode 100644 layout/reftests/percent-overflow-sizing/simpleHeight100.html create mode 100644 layout/reftests/percent-overflow-sizing/simpleHeight100D.html create mode 100644 layout/reftests/percent-overflow-sizing/simpleMinHeight100D.html diff --git a/layout/generic/nsBlockFrame.cpp b/layout/generic/nsBlockFrame.cpp index 16ad8142520e..9540452e2cf8 100644 --- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -784,12 +784,8 @@ CalculateContainingBlockSizeForAbsolutes(const nsHTMLReflowState& aReflowState, // The issue here is that for a 'height' of 'auto' the reflow state // code won't know how to calculate the containing block height // because it's calculated bottom up. So we use our own computed - // size as the dimensions. We don't really want to do this for the - // initial containing block + // size as the dimensions. nsIFrame* frame = aReflowState.frame; - if (nsLayoutUtils::IsInitialContainingBlock(frame)) { - return nsSize(-1, -1); - } nsSize cbSize(aFrameSize); // Containing block is relative to the padding edge @@ -825,13 +821,9 @@ CalculateContainingBlockSizeForAbsolutes(const nsHTMLReflowState& aReflowState, nsBoxLayoutState dummyState(aLastRS->frame->PresContext(), aLastRS->rendContext); scrollbars = scrollFrame->GetDesiredScrollbarSizes(&dummyState); - // XXX We should account for the horizontal scrollbar too --- but currently - // nsGfxScrollFrame assumes nothing depends on the presence (or absence) of - // a horizontal scrollbar, so accounting for it would create incremental - // reflow bugs. - //if (!lastButOneRS->mFlags.mAssumingHScrollbar) { + if (!lastButOneRS->mFlags.mAssumingHScrollbar) { scrollbars.top = scrollbars.bottom = 0; - //} + } if (!lastButOneRS->mFlags.mAssumingVScrollbar) { scrollbars.left = scrollbars.right = 0; } diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp index e7ab34c8975a..e6fa87beeb3d 100644 --- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -420,6 +420,19 @@ nsHTMLScrollFrame::ReflowScrolledFrame(const ScrollReflowState& aState, nscoord availWidth = aState.mReflowState.ComputedWidth() + paddingLR; + nscoord computedHeight = aState.mReflowState.ComputedHeight(); + nscoord computedMinHeight = aState.mReflowState.mComputedMinHeight; + nscoord computedMaxHeight = aState.mReflowState.mComputedMaxHeight; + if (aAssumeHScroll) { + nsSize hScrollbarPrefSize = + mInner.mHScrollbarBox->GetPrefSize(const_cast(aState.mBoxState)); + if (computedHeight != NS_UNCONSTRAINEDSIZE) + computedHeight = PR_MAX(0, computedHeight - hScrollbarPrefSize.height); + computedMinHeight = PR_MAX(0, computedMinHeight - hScrollbarPrefSize.height); + if (computedMaxHeight != NS_UNCONSTRAINEDSIZE) + computedMaxHeight = PR_MAX(0, computedMaxHeight - hScrollbarPrefSize.height); + } + if (aAssumeVScroll) { nsSize vScrollbarPrefSize = mInner.mVScrollbarBox->GetPrefSize(const_cast(aState.mBoxState)); @@ -443,6 +456,9 @@ nsHTMLScrollFrame::ReflowScrolledFrame(const ScrollReflowState& aState, &aState.mReflowState.mComputedPadding); kidReflowState.mFlags.mAssumingHScrollbar = aAssumeHScroll; kidReflowState.mFlags.mAssumingVScrollbar = aAssumeVScroll; + kidReflowState.SetComputedHeight(computedHeight); + kidReflowState.mComputedMinHeight = computedMinHeight; + kidReflowState.mComputedMaxHeight = computedMaxHeight; nsReflowStatus status; nsresult rv = ReflowChild(mInner.mScrolledFrame, presContext, *aMetrics, @@ -526,13 +542,14 @@ nsresult nsHTMLScrollFrame::ReflowContents(ScrollReflowState* aState, const nsHTMLReflowMetrics& aDesiredSize) { - PRBool currentlyUsingVScrollbar = GuessVScrollbarNeeded(*aState); + PRBool lastUsedVScrollbar = GuessVScrollbarNeeded(*aState); + PRBool lastUsedHScrollbar = mInner.mHasHorizontalScrollbar; // XXX is this good enough? nsHTMLReflowMetrics kidDesiredSize(aDesiredSize.mFlags); - nsresult rv = ReflowScrolledFrame(*aState, PR_FALSE, currentlyUsingVScrollbar, + nsresult rv = ReflowScrolledFrame(*aState, lastUsedHScrollbar, lastUsedVScrollbar, &kidDesiredSize, PR_TRUE); - if (NS_FAILED(rv)) - return rv; - PRBool didUseScrollbar = currentlyUsingVScrollbar; + NS_ENSURE_SUCCESS(rv, rv); + + PRBool relativeHeight = (mInner.mScrolledFrame->GetStateBits() & NS_FRAME_CONTAINS_RELATIVE_HEIGHT) != 0; // There's an important special case ... if the child appears to fit // in the inside-border rect (but overflows the scrollport), we @@ -550,7 +567,10 @@ nsHTMLScrollFrame::ReflowContents(ScrollReflowState* aState, // Detecting when we enter this special case is important for when // people design layouts that exactly fit the container "most of the // time". - if (currentlyUsingVScrollbar && + + // XXX Is this check really sufficient to catch all the incremental cases + // where the ideal case doesn't have a scrollbar? + if ((lastUsedVScrollbar || (lastUsedHScrollbar && relativeHeight)) && aState->mStyles.mVertical != NS_STYLE_OVERFLOW_SCROLL && aState->mStyles.mHorizontal != NS_STYLE_OVERFLOW_SCROLL) { nsSize insideBorderSize = @@ -559,56 +579,66 @@ nsHTMLScrollFrame::ReflowContents(ScrollReflowState* aState, nsRect scrolledRect = mInner.GetScrolledRect(insideBorderSize); if (nsRect(nsPoint(0, 0), insideBorderSize).Contains(scrolledRect)) { // Let's pretend we had no vertical scrollbar coming in here - currentlyUsingVScrollbar = PR_FALSE; - rv = ReflowScrolledFrame(*aState, PR_FALSE, currentlyUsingVScrollbar, + rv = ReflowScrolledFrame(*aState, PR_FALSE, PR_FALSE, &kidDesiredSize, PR_FALSE); - if (NS_FAILED(rv)) - return rv; - didUseScrollbar = PR_FALSE; + NS_ENSURE_SUCCESS(rv, rv); + lastUsedVScrollbar = PR_FALSE; + lastUsedHScrollbar = PR_FALSE; } } // First try a layout without a horizontal scrollbar, then with. - if (TryLayout(aState, kidDesiredSize, didUseScrollbar, PR_FALSE, PR_FALSE)) - return NS_OK; - // XXX Adding a horizontal scrollbar could cause absolute children positioned - // relative to the bottom padding-edge to need to be reflowed. But we don't, - // because that would be slow. - if (TryLayout(aState, kidDesiredSize, didUseScrollbar, PR_TRUE, PR_FALSE)) - return NS_OK; + if (!relativeHeight) { + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, PR_FALSE, PR_FALSE)) + return NS_OK; + + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, PR_TRUE, PR_FALSE)) + return NS_OK; + } else { + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, lastUsedHScrollbar, PR_FALSE)) + return NS_OK; + } PRBool canHaveVerticalScrollbar = aState->mStyles.mVertical != NS_STYLE_OVERFLOW_HIDDEN; + PRBool canHaveHorizontalScrollbar = + aState->mStyles.mHorizontal != NS_STYLE_OVERFLOW_HIDDEN; + // That didn't work. Try the other setting for the vertical scrollbar. // But don't try to show a scrollbar if we know there can't be one. - if (currentlyUsingVScrollbar || canHaveVerticalScrollbar) { - nsHTMLReflowMetrics kidRetrySize(aDesiredSize.mFlags); - rv = ReflowScrolledFrame(*aState, PR_FALSE, !currentlyUsingVScrollbar, - &kidRetrySize, PR_FALSE); - if (NS_FAILED(rv)) - return rv; - didUseScrollbar = !currentlyUsingVScrollbar; - // XXX Adding a horizontal scrollbar could cause absolute children positioned - // relative to the bottom padding-edge to need to be reflowed. But we don't, - // because that would be slow. - if (TryLayout(aState, kidRetrySize, didUseScrollbar, PR_FALSE, PR_FALSE)) - return NS_OK; - if (TryLayout(aState, kidRetrySize, didUseScrollbar, PR_TRUE, PR_FALSE)) - return NS_OK; - - NS_WARNING("Strange content ... we can't find logically consistent scrollbar settings"); - } else { - NS_WARNING("Strange content ... we can't find logically consistent scrollbar settings"); + if (lastUsedVScrollbar || canHaveVerticalScrollbar) { + rv = ReflowScrolledFrame(*aState, PR_FALSE, !lastUsedVScrollbar, + &kidDesiredSize, PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + lastUsedHScrollbar = PR_FALSE; + lastUsedVScrollbar = !lastUsedVScrollbar; + if (!relativeHeight) { + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, PR_FALSE, PR_FALSE)) + return NS_OK; + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, PR_TRUE, PR_FALSE)) + return NS_OK; + } else { + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, lastUsedHScrollbar, PR_FALSE)) + return NS_OK; + } } - // Fall back to no scrollbars --- even if NS_STYLE_OVERFLOW_SCROLL is - // in effect. They might not fit anyway. - if (didUseScrollbar) { - rv = ReflowScrolledFrame(*aState, PR_FALSE, PR_FALSE, &kidDesiredSize, PR_FALSE); - if (NS_FAILED(rv)) - return rv; + if ((lastUsedHScrollbar || canHaveHorizontalScrollbar) && relativeHeight) { + rv = ReflowScrolledFrame(*aState, PR_TRUE, PR_FALSE, + &kidDesiredSize, PR_FALSE); + lastUsedHScrollbar = PR_TRUE; + lastUsedVScrollbar = PR_FALSE; + NS_ENSURE_SUCCESS(rv, rv); + if (TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, lastUsedHScrollbar, PR_FALSE)) + return NS_OK; } - TryLayout(aState, kidDesiredSize, PR_FALSE, PR_FALSE, PR_TRUE); + + rv = ReflowScrolledFrame(*aState, PR_TRUE, PR_TRUE, + &kidDesiredSize, PR_FALSE); + lastUsedHScrollbar = PR_TRUE; + lastUsedVScrollbar = PR_TRUE; + NS_ENSURE_SUCCESS(rv, rv); + TryLayout(aState, kidDesiredSize, lastUsedVScrollbar, lastUsedHScrollbar, PR_TRUE); return NS_OK; } diff --git a/layout/generic/nsHTMLReflowState.cpp b/layout/generic/nsHTMLReflowState.cpp index 427158890e27..da7bc6b51090 100644 --- a/layout/generic/nsHTMLReflowState.cpp +++ b/layout/generic/nsHTMLReflowState.cpp @@ -362,16 +362,7 @@ IsQuirkContainingBlockHeight(const nsHTMLReflowState* rs) nsIAtom* frameType = rs->frame->GetType(); if (nsGkAtoms::blockFrame == frameType || nsGkAtoms::areaFrame == frameType || - nsGkAtoms::scrollFrame == frameType) { - - if (nsGkAtoms::areaFrame == frameType) { - // Skip over scrolled-content area frames - if (rs->frame->GetStyleContext()->GetPseudoType() == - nsCSSAnonBoxes::scrolledContent) { - return PR_FALSE; - } - } - + nsGkAtoms::scrollFrame == frameType) { // Note: This next condition could change due to a style change, // but that would cause a style reflow anyway, which means we're ok. if (NS_AUTOHEIGHT == rs->ComputedHeight()) { @@ -424,7 +415,7 @@ nsHTMLReflowState::InitResizeFlags(nsPresContext* aPresContext) mStylePosition->mMinHeight.GetUnit() == eStyleUnit_Percent || mStylePosition->mMaxHeight.GetUnit() == eStyleUnit_Percent || mStylePosition->mOffset.GetTopUnit() == eStyleUnit_Percent || - mStylePosition->mOffset.GetBottomUnit() == eStyleUnit_Percent || + mStylePosition->mOffset.GetBottomUnit() != eStyleUnit_Auto || frame->IsBoxFrame() || frame->GetIntrinsicSize().height.GetUnit() == eStyleUnit_Percent; @@ -1417,14 +1408,6 @@ CalcQuirkContainingBlockHeight(const nsHTMLReflowState* aCBReflowState) if (nsGkAtoms::blockFrame == frameType || nsGkAtoms::areaFrame == frameType || nsGkAtoms::scrollFrame == frameType) { - - if (nsGkAtoms::areaFrame == frameType) { - // Skip over scrolled-content area frames - if (rs->frame->GetStyleContext()->GetPseudoType() == - nsCSSAnonBoxes::scrolledContent) { - continue; - } - } secondAncestorRS = firstAncestorRS; firstAncestorRS = (nsHTMLReflowState*)rs; @@ -1442,12 +1425,7 @@ CalcQuirkContainingBlockHeight(const nsHTMLReflowState* aCBReflowState) } } else if (nsGkAtoms::canvasFrame == frameType) { - // Use scroll frames' computed height if we have one, this will - // allow us to get viewport height for native scrollbars. - nsHTMLReflowState* scrollState = (nsHTMLReflowState *)rs->parentReflowState; - if (nsGkAtoms::scrollFrame == scrollState->frame->GetType()) { - rs = scrollState; - } + // Always continue on to the height calculation } else if (nsGkAtoms::pageContentFrame == frameType) { nsIFrame* prevInFlow = rs->frame->GetPrevInFlow(); @@ -1668,24 +1646,14 @@ nsHTMLReflowState::InitConstraints(nsPresContext* aPresContext, // content nsIAtom* fType; if (NS_AUTOHEIGHT == aContainingBlockHeight) { - // See if the containing block is (1) a scrolled frame, i.e. its - // parent is a scroll frame. The presence of the intervening - // frame (that the scroll frame scrolls) needs to be hidden from - // the containingBlockHeight calcuation, or (2) a cell frame which needs + // See if the containing block is a cell frame which needs // to use the mComputedHeight of the cell instead of what the cell block passed in. + // XXX It seems like this could lead to bugs with min-height and friends if (cbrs->parentReflowState) { - nsIFrame* f = cbrs->parentReflowState->frame; - fType = f->GetType(); - if (nsGkAtoms::scrollFrame == fType) { - // Use the scroll frame's computed height instead - aContainingBlockHeight = cbrs->parentReflowState->mComputedHeight; - } - else { - fType = cbrs->frame->GetType(); - if (IS_TABLE_CELL(fType)) { - // use the cell's computed height - aContainingBlockHeight = cbrs->mComputedHeight; - } + fType = cbrs->frame->GetType(); + if (IS_TABLE_CELL(fType)) { + // use the cell's computed height + aContainingBlockHeight = cbrs->mComputedHeight; } } } diff --git a/layout/reftests/percent-overflow-sizing/greenbox.html b/layout/reftests/percent-overflow-sizing/greenbox.html new file mode 100644 index 000000000000..fc44641112a4 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/greenbox.html @@ -0,0 +1 @@ +
diff --git a/layout/reftests/percent-overflow-sizing/greenboxhbar.html b/layout/reftests/percent-overflow-sizing/greenboxhbar.html new file mode 100644 index 000000000000..0e38d16aba39 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/greenboxhbar.html @@ -0,0 +1,2 @@ +
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsHeight.html b/layout/reftests/percent-overflow-sizing/hScrollAbsHeight.html new file mode 100644 index 000000000000..dd2288a02b3d --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsHeight.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsHeightD.html b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightD.html new file mode 100644 index 000000000000..0aa7777272a5 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirks.html b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirks.html new file mode 100644 index 000000000000..dd2288a02b3d --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirks.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirksD.html b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirksD.html new file mode 100644 index 000000000000..bf5456be9bf7 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsHeightQuirksD.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightD.html b/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightD.html new file mode 100644 index 000000000000..58e9327742fb --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightQuirksD.html b/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightQuirksD.html new file mode 100644 index 000000000000..e349c0edc98f --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollAbsMinHeightQuirksD.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeight.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeight.html new file mode 100644 index 000000000000..649a47b410e7 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeight.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightD.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightD.html new file mode 100644 index 000000000000..913ae6f4054d --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1.html new file mode 100644 index 000000000000..0135bcca81e2 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1.html @@ -0,0 +1,4 @@ +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1D.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1D.html new file mode 100644 index 000000000000..897fda842996 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-1D.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2.html new file mode 100644 index 000000000000..2c20eccc811e --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2.html @@ -0,0 +1,6 @@ +
+
+
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2D.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2D.html new file mode 100644 index 000000000000..7ad01a7b20c7 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-2D.html @@ -0,0 +1,7 @@ + +
+
+
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3.html new file mode 100644 index 000000000000..626fbe7b50f2 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3.html @@ -0,0 +1,8 @@ +
+
+
+
+
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3D.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3D.html new file mode 100644 index 000000000000..76b1e6ca5258 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleHeightQuirks-3D.html @@ -0,0 +1,9 @@ + +
+
+
+
+
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightD.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightD.html new file mode 100644 index 000000000000..91bfd1e35a3e --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-1D.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-1D.html new file mode 100644 index 000000000000..b74a38c30369 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-1D.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-3D.html b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-3D.html new file mode 100644 index 000000000000..2c6833fe33f3 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/hScrollSimpleMinHeightQuirks-3D.html @@ -0,0 +1,9 @@ + +
+
+
+
+
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/reftest.list b/layout/reftests/percent-overflow-sizing/reftest.list new file mode 100644 index 000000000000..e3ea91bde079 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/reftest.list @@ -0,0 +1,23 @@ +== simpleHeight100.html greenbox.html +== simpleAbsHeight.html greenbox.html +== hScrollSimpleHeight.html greenboxhbar.html +== hScrollSimpleHeightQuirks-1.html greenboxhbar.html +== hScrollSimpleHeightQuirks-2.html greenboxhbar.html +== hScrollSimpleHeightQuirks-3.html greenboxhbar.html +== hScrollAbsHeight.html greenboxhbar.html +== hScrollAbsHeightQuirks.html greenboxhbar.html +== simpleHeight100D.html greenbox.html +== simpleAbsHeightD.html greenbox.html +== hScrollSimpleHeightD.html greenboxhbar.html +== hScrollSimpleHeightQuirks-1D.html greenboxhbar.html +== hScrollSimpleHeightQuirks-2D.html greenboxhbar.html +== hScrollSimpleHeightQuirks-3D.html greenboxhbar.html +== hScrollAbsHeightD.html greenboxhbar.html +== hScrollAbsHeightQuirksD.html greenboxhbar.html +== simpleMinHeight100D.html greenbox.html +== simpleAbsMinHeightD.html greenbox.html +== hScrollSimpleMinHeightD.html greenboxhbar.html +== hScrollSimpleMinHeightQuirks-1D.html greenboxhbar.html +== hScrollSimpleMinHeightQuirks-3D.html greenboxhbar.html +== hScrollAbsMinHeightD.html greenboxhbar.html +== hScrollAbsMinHeightQuirksD.html greenboxhbar.html diff --git a/layout/reftests/percent-overflow-sizing/simpleAbsHeight.html b/layout/reftests/percent-overflow-sizing/simpleAbsHeight.html new file mode 100644 index 000000000000..dcbd1709ed82 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleAbsHeight.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/simpleAbsHeightD.html b/layout/reftests/percent-overflow-sizing/simpleAbsHeightD.html new file mode 100644 index 000000000000..59342917f3b1 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleAbsHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/simpleAbsMinHeightD.html b/layout/reftests/percent-overflow-sizing/simpleAbsMinHeightD.html new file mode 100644 index 000000000000..789dbb635bbc --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleAbsMinHeightD.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/simpleHeight100.html b/layout/reftests/percent-overflow-sizing/simpleHeight100.html new file mode 100644 index 000000000000..b22a101ce46c --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleHeight100.html @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/simpleHeight100D.html b/layout/reftests/percent-overflow-sizing/simpleHeight100D.html new file mode 100644 index 000000000000..e4e1f492a06d --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleHeight100D.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/percent-overflow-sizing/simpleMinHeight100D.html b/layout/reftests/percent-overflow-sizing/simpleMinHeight100D.html new file mode 100644 index 000000000000..f79a59c05d00 --- /dev/null +++ b/layout/reftests/percent-overflow-sizing/simpleMinHeight100D.html @@ -0,0 +1,6 @@ + + +
+
+
+
diff --git a/layout/reftests/reftest.list b/layout/reftests/reftest.list index 786877160260..098b307da4e4 100644 --- a/layout/reftests/reftest.list +++ b/layout/reftests/reftest.list @@ -80,3 +80,7 @@ include ib-split/reftest.list # line-breaking include line-breaking/reftest.list + +# percent-overflow-sizing +include percent-overflow-sizing/reftest.list +