Bug 1277129 Part 4b - Rename ScrollReflowState to ScrollReflowInput.
MozReview-Commit-ID: ILLqDYR0vkZ
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -202,17 +202,17 @@ nsHTMLScrollFrame::GetType() const
/**
HTML scrolling implementation
All other things being equal, we prefer layouts with fewer scrollbars showing.
*/
namespace mozilla {
-struct MOZ_STACK_CLASS ScrollReflowState {
+struct MOZ_STACK_CLASS ScrollReflowInput {
const ReflowInput& mReflowState;
nsBoxLayoutState mBoxState;
ScrollbarStyles mStyles;
nsMargin mComputedBorder;
// === Filled in by ReflowScrolledFrame ===
nsOverflowAreas mContentsOverflowAreas;
bool mReflowedContentsWithHScrollbar;
@@ -221,30 +221,30 @@ struct MOZ_STACK_CLASS ScrollReflowState
// === Filled in when TryLayout succeeds ===
// The size of the inside-border area
nsSize mInsideBorderSize;
// Whether we decided to show the horizontal scrollbar
bool mShowHScrollbar;
// Whether we decided to show the vertical scrollbar
bool mShowVScrollbar;
- ScrollReflowState(nsIScrollableFrame* aFrame,
+ ScrollReflowInput(nsIScrollableFrame* aFrame,
const ReflowInput& aState) :
mReflowState(aState),
// mBoxState is just used for scrollbars so we don't need to
// worry about the reflow depth here
mBoxState(aState.frame->PresContext(), aState.rendContext, 0),
mStyles(aFrame->GetScrollbarStyles()) {
}
};
} // namespace mozilla
// XXXldb Can this go away?
-static nsSize ComputeInsideBorderSize(ScrollReflowState* aState,
+static nsSize ComputeInsideBorderSize(ScrollReflowInput* aState,
const nsSize& aDesiredInsideBorderSize)
{
// aDesiredInsideBorderSize is the frame size; i.e., it includes
// borders and padding (but the scrolled child doesn't have
// borders). The scrolled child has the same padding as us.
nscoord contentWidth = aState->mReflowState.ComputedWidth();
if (contentWidth == NS_UNCONSTRAINEDSIZE) {
contentWidth = aDesiredInsideBorderSize.width -
@@ -293,34 +293,34 @@ GetScrollbarMetrics(nsBoxLayoutState& aS
}
}
/**
* Assuming that we know the metrics for our wrapped frame and
* whether the horizontal and/or vertical scrollbars are present,
* compute the resulting layout and return true if the layout is
* consistent. If the layout is consistent then we fill in the
- * computed fields of the ScrollReflowState.
+ * computed fields of the ScrollReflowInput.
*
* The layout is consistent when both scrollbars are showing if and only
* if they should be showing. A horizontal scrollbar should be showing if all
* following conditions are met:
* 1) the style is not HIDDEN
* 2) our inside-border height is at least the scrollbar height (i.e., the
* scrollbar fits vertically)
* 3) our scrollport width (the inside-border width minus the width allocated for a
* vertical scrollbar, if showing) is at least the scrollbar's min-width
* (i.e., the scrollbar fits horizontally)
* 4) the style is SCROLL, or the kid's overflow-area XMost is
* greater than the scrollport width
*
* @param aForce if true, then we just assume the layout is consistent.
*/
bool
-nsHTMLScrollFrame::TryLayout(ScrollReflowState* aState,
+nsHTMLScrollFrame::TryLayout(ScrollReflowInput* aState,
nsHTMLReflowMetrics* aKidMetrics,
bool aAssumeHScroll, bool aAssumeVScroll,
bool aForce)
{
if ((aState->mStyles.mVertical == NS_STYLE_OVERFLOW_HIDDEN && aAssumeVScroll) ||
(aState->mStyles.mHorizontal == NS_STYLE_OVERFLOW_HIDDEN && aAssumeHScroll)) {
NS_ASSERTION(!aForce, "Shouldn't be forcing a hidden scrollbar to show!");
return false;
@@ -427,29 +427,29 @@ nsHTMLScrollFrame::TryLayout(ScrollReflo
mHelper.mScrollPort = nsRect(scrollPortOrigin, scrollPortSize);
return true;
}
// XXX Height/BSize mismatch needs to be addressed here; check the caller!
// Currently this will only behave as expected for horizontal writing modes.
// (See bug 1175509.)
bool
-nsHTMLScrollFrame::ScrolledContentDependsOnHeight(ScrollReflowState* aState)
+nsHTMLScrollFrame::ScrolledContentDependsOnHeight(ScrollReflowInput* aState)
{
// Return true if ReflowScrolledFrame is going to do something different
// based on the presence of a horizontal scrollbar.
return mHelper.mScrolledFrame->HasAnyStateBits(
NS_FRAME_CONTAINS_RELATIVE_BSIZE | NS_FRAME_DESCENDANT_INTRINSIC_ISIZE_DEPENDS_ON_BSIZE) ||
aState->mReflowState.ComputedBSize() != NS_UNCONSTRAINEDSIZE ||
aState->mReflowState.ComputedMinBSize() > 0 ||
aState->mReflowState.ComputedMaxBSize() != NS_UNCONSTRAINEDSIZE;
}
void
-nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowState* aState,
+nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowInput* aState,
bool aAssumeHScroll,
bool aAssumeVScroll,
nsHTMLReflowMetrics* aMetrics,
bool aFirstPass)
{
WritingMode wm = mHelper.mScrolledFrame->GetWritingMode();
// these could be NS_UNCONSTRAINEDSIZE ... std::min arithmetic should
@@ -582,27 +582,27 @@ nsHTMLScrollFrame::ReflowScrolledFrame(S
}
aState->mContentsOverflowAreas = aMetrics->mOverflowAreas;
aState->mReflowedContentsWithHScrollbar = aAssumeHScroll;
aState->mReflowedContentsWithVScrollbar = aAssumeVScroll;
}
bool
-nsHTMLScrollFrame::GuessHScrollbarNeeded(const ScrollReflowState& aState)
+nsHTMLScrollFrame::GuessHScrollbarNeeded(const ScrollReflowInput& aState)
{
if (aState.mStyles.mHorizontal != NS_STYLE_OVERFLOW_AUTO)
// no guessing required
return aState.mStyles.mHorizontal == NS_STYLE_OVERFLOW_SCROLL;
return mHelper.mHasHorizontalScrollbar;
}
bool
-nsHTMLScrollFrame::GuessVScrollbarNeeded(const ScrollReflowState& aState)
+nsHTMLScrollFrame::GuessVScrollbarNeeded(const ScrollReflowInput& aState)
{
if (aState.mStyles.mVertical != NS_STYLE_OVERFLOW_AUTO)
// no guessing required
return aState.mStyles.mVertical == NS_STYLE_OVERFLOW_SCROLL;
// If we've had at least one non-initial reflow, then just assume
// the state of the vertical scrollbar will be what we determined
// last time.
@@ -644,17 +644,17 @@ nsHTMLScrollFrame::InInitialReflow() con
// The guess here is that there are lots of overflow:auto divs out there that
// end up auto-sizing so they don't overflow, and that the root basically
// always needs a scrollbar if it did last time we loaded this page (good
// assumption, because our initial reflow is no longer synchronous).
return !mHelper.mIsRoot && (GetStateBits() & NS_FRAME_FIRST_REFLOW);
}
void
-nsHTMLScrollFrame::ReflowContents(ScrollReflowState* aState,
+nsHTMLScrollFrame::ReflowContents(ScrollReflowInput* aState,
const nsHTMLReflowMetrics& aDesiredSize)
{
nsHTMLReflowMetrics kidDesiredSize(aDesiredSize.GetWritingMode(), aDesiredSize.mFlags);
ReflowScrolledFrame(aState, GuessHScrollbarNeeded(*aState),
GuessVScrollbarNeeded(*aState), &kidDesiredSize, true);
// There's an important special case ... if the child appears to fit
// in the inside-border rect (but overflows the scrollport), we
@@ -718,17 +718,17 @@ nsHTMLScrollFrame::ReflowContents(Scroll
// This just happens sometimes.
TryLayout(aState, &kidDesiredSize,
aState->mStyles.mHorizontal != NS_STYLE_OVERFLOW_HIDDEN,
aState->mStyles.mVertical != NS_STYLE_OVERFLOW_HIDDEN,
true);
}
void
-nsHTMLScrollFrame::PlaceScrollArea(const ScrollReflowState& aState,
+nsHTMLScrollFrame::PlaceScrollArea(const ScrollReflowInput& aState,
const nsPoint& aScrollPosition)
{
nsIFrame *scrolledFrame = mHelper.mScrolledFrame;
// Set the x,y of the scrolled frame to the correct value
scrolledFrame->SetPosition(mHelper.mScrollPort.TopLeft() - aScrollPosition);
nsRect scrolledArea;
// Preserve the width or height of empty rects
@@ -839,17 +839,17 @@ nsHTMLScrollFrame::Reflow(nsPresContext*
nsReflowStatus& aStatus)
{
MarkInReflow();
DO_GLOBAL_REFLOW_COUNT("nsHTMLScrollFrame");
DISPLAY_REFLOW(aPresContext, this, aReflowState, aDesiredSize, aStatus);
mHelper.HandleScrollbarStyleSwitching();
- ScrollReflowState state(this, aReflowState);
+ ScrollReflowInput state(this, aReflowState);
// sanity check: ensure that if we have no scrollbar, we treat it
// as hidden.
if (!mHelper.mVScrollbarBox || mHelper.mNeverHasVerticalScrollbar)
state.mStyles.mVertical = NS_STYLE_OVERFLOW_HIDDEN;
if (!mHelper.mHScrollbarBox || mHelper.mNeverHasHorizontalScrollbar)
state.mStyles.mHorizontal = NS_STYLE_OVERFLOW_HIDDEN;
//------------ Handle Incremental Reflow -----------------
--- a/layout/generic/nsGfxScrollFrame.h
+++ b/layout/generic/nsGfxScrollFrame.h
@@ -27,17 +27,17 @@
class nsPresContext;
class nsIPresShell;
class nsIContent;
class nsIAtom;
class nsPresState;
class nsIScrollPositionListener;
namespace mozilla {
-struct ScrollReflowState;
+struct ScrollReflowInput;
namespace layers {
class Layer;
} // namespace layers
namespace layout {
class ScrollbarActivity;
} // namespace layout
class ScrollFrameHelper : public nsIReflowCallback {
@@ -648,17 +648,17 @@ protected:
*/
class nsHTMLScrollFrame : public nsContainerFrame,
public nsIScrollableFrame,
public nsIAnonymousContentCreator,
public nsIStatefulFrame {
public:
typedef mozilla::ScrollFrameHelper ScrollFrameHelper;
typedef mozilla::CSSIntPoint CSSIntPoint;
- typedef mozilla::ScrollReflowState ScrollReflowState;
+ typedef mozilla::ScrollReflowInput ScrollReflowInput;
friend nsHTMLScrollFrame* NS_NewHTMLScrollFrame(nsIPresShell* aPresShell,
nsStyleContext* aContext,
bool aIsRoot);
NS_DECL_QUERYFRAME
NS_DECL_FRAMEARENA_HELPERS
virtual mozilla::WritingMode GetWritingMode() const override
@@ -670,29 +670,29 @@ public:
}
virtual void BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsRect& aDirtyRect,
const nsDisplayListSet& aLists) override {
mHelper.BuildDisplayList(aBuilder, aDirtyRect, aLists);
}
- bool TryLayout(ScrollReflowState* aState,
+ bool TryLayout(ScrollReflowInput* aState,
nsHTMLReflowMetrics* aKidMetrics,
bool aAssumeVScroll, bool aAssumeHScroll,
bool aForce);
- bool ScrolledContentDependsOnHeight(ScrollReflowState* aState);
- void ReflowScrolledFrame(ScrollReflowState* aState,
+ bool ScrolledContentDependsOnHeight(ScrollReflowInput* aState);
+ void ReflowScrolledFrame(ScrollReflowInput* aState,
bool aAssumeHScroll,
bool aAssumeVScroll,
nsHTMLReflowMetrics* aMetrics,
bool aFirstPass);
- void ReflowContents(ScrollReflowState* aState,
+ void ReflowContents(ScrollReflowInput* aState,
const nsHTMLReflowMetrics& aDesiredSize);
- void PlaceScrollArea(const ScrollReflowState& aState,
+ void PlaceScrollArea(const ScrollReflowInput& aState,
const nsPoint& aScrollPosition);
nscoord GetIntrinsicVScrollbarWidth(nsRenderingContext *aRenderingContext);
virtual bool GetBorderRadii(const nsSize& aFrameSize, const nsSize& aBorderArea,
Sides aSkipSides, nscoord aRadii[8]) const override {
return mHelper.GetBorderRadii(aFrameSize, aBorderArea, aSkipSides, aRadii);
}
@@ -1019,18 +1019,18 @@ public:
virtual mozilla::a11y::AccType AccessibleType() override;
#endif
protected:
nsHTMLScrollFrame(nsStyleContext* aContext, bool aIsRoot);
void SetSuppressScrollbarUpdate(bool aSuppress) {
mHelper.mSupppressScrollbarUpdate = aSuppress;
}
- bool GuessHScrollbarNeeded(const ScrollReflowState& aState);
- bool GuessVScrollbarNeeded(const ScrollReflowState& aState);
+ bool GuessHScrollbarNeeded(const ScrollReflowInput& aState);
+ bool GuessVScrollbarNeeded(const ScrollReflowInput& aState);
bool IsScrollbarUpdateSuppressed() const {
return mHelper.mSupppressScrollbarUpdate;
}
// Return whether we're in an "initial" reflow. Some reflows with
// NS_FRAME_FIRST_REFLOW set are NOT "initial" as far as we're concerned.
bool InInitialReflow() const;