Bug 916972 - Eliminate nsIFrame::GetSplittableType() completely. r=mats,dholbert

Currently, GetSplittableType() is called only in
nsCSSFrameConstructor::CreateContinuingFrame(). The splittable concrete frames
should inherit from nsSplittableFrame, and must explicitly create continuing
frame in CreateContinuingFrame(). Thus, no need to maintain GetSplittableType().

Differential Revision: https://phabricator.services.mozilla.com/D10798
This commit is contained in:
Ting-Yu Lin
2018-11-05 19:11:12 +00:00
parent f4ec3c9834
commit ff149eedd4
17 changed files with 0 additions and 99 deletions

View File

@@ -8329,9 +8329,6 @@ nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext* aPresContext,
LayoutFrameType frameType = aFrame->Type(); LayoutFrameType frameType = aFrame->Type();
nsIContent* content = aFrame->GetContent(); nsIContent* content = aFrame->GetContent();
NS_ASSERTION(aFrame->GetSplittableType() != NS_FRAME_NOT_SPLITTABLE,
"why CreateContinuingFrame for a non-splittable frame?");
if (LayoutFrameType::Text == frameType) { if (LayoutFrameType::Text == frameType) {
newFrame = NS_NewContinuingTextFrame(shell, computedStyle); newFrame = NS_NewContinuingTextFrame(shell, computedStyle);
newFrame->Init(content, aParentFrame, aFrame); newFrame->Init(content, aParentFrame, aFrame);

View File

@@ -35,10 +35,6 @@ public:
{ {
return nsFrame::PeekOffsetCharacter(aForward, aOffset, aOptions); return nsFrame::PeekOffsetCharacter(aForward, aOffset, aOptions);
} }
nsSplittableType GetSplittableType() const override
{
return nsFrame::GetSplittableType();
}
protected: protected:
nsAtomicContainerFrame(ComputedStyle* aStyle, ClassID aID) nsAtomicContainerFrame(ComputedStyle* aStyle, ClassID aID)

View File

@@ -404,12 +404,6 @@ NS_QUERYFRAME_HEAD(nsBlockFrame)
NS_QUERYFRAME_ENTRY(nsBlockFrame) NS_QUERYFRAME_ENTRY(nsBlockFrame)
NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame) NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
nsSplittableType
nsBlockFrame::GetSplittableType() const
{
return NS_FRAME_SPLITTABLE_NON_RECTANGULAR;
}
#ifdef DEBUG_FRAME_DUMP #ifdef DEBUG_FRAME_DUMP
void void
nsBlockFrame::List(FILE* out, const char* aPrefix, uint32_t aFlags) const nsBlockFrame::List(FILE* out, const char* aPrefix, uint32_t aFlags) const

View File

@@ -137,7 +137,6 @@ public:
nscoord* aBaseline) const override; nscoord* aBaseline) const override;
nscoord GetCaretBaseline() const override; nscoord GetCaretBaseline() const override;
void DestroyFrom(nsIFrame* aDestructRoot, PostDestroyData& aPostDestroyData) override; void DestroyFrom(nsIFrame* aDestructRoot, PostDestroyData& aPostDestroyData) override;
nsSplittableType GetSplittableType() const override;
bool IsFloatContainingBlock() const override; bool IsFloatContainingBlock() const override;
void BuildDisplayList(nsDisplayListBuilder* aBuilder, void BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsDisplayListSet& aLists) override; const nsDisplayListSet& aLists) override;

View File

@@ -6630,12 +6630,6 @@ nsFrame::AttributeChanged(int32_t aNameSpaceID,
// Flow member functions // Flow member functions
nsSplittableType
nsFrame::GetSplittableType() const
{
return NS_FRAME_NOT_SPLITTABLE;
}
nsIFrame* nsFrame::GetPrevContinuation() const nsIFrame* nsFrame::GetPrevContinuation() const
{ {
return nullptr; return nullptr;

View File

@@ -201,7 +201,6 @@ public:
nsresult AttributeChanged(int32_t aNameSpaceID, nsresult AttributeChanged(int32_t aNameSpaceID,
nsAtom* aAttribute, nsAtom* aAttribute,
int32_t aModType) override; int32_t aModType) override;
nsSplittableType GetSplittableType() const override;
nsIFrame* GetPrevContinuation() const override; nsIFrame* GetPrevContinuation() const override;
void SetPrevContinuation(nsIFrame*) override; void SetPrevContinuation(nsIFrame*) override;
nsIFrame* GetNextContinuation() const override; nsIFrame* GetNextContinuation() const override;

View File

@@ -199,12 +199,6 @@ nsHTMLScrollFrame::RemoveFrame(ChildListID aListID,
mHelper.ReloadChildFrames(); mHelper.ReloadChildFrames();
} }
nsSplittableType
nsHTMLScrollFrame::GetSplittableType() const
{
return NS_FRAME_NOT_SPLITTABLE;
}
/** /**
HTML scrolling implementation HTML scrolling implementation
@@ -1616,12 +1610,6 @@ nsXULScrollFrame::RemoveFrame(ChildListID aListID,
mHelper.ReloadChildFrames(); mHelper.ReloadChildFrames();
} }
nsSplittableType
nsXULScrollFrame::GetSplittableType() const
{
return NS_FRAME_NOT_SPLITTABLE;
}
nsresult nsresult
nsXULScrollFrame::GetXULPadding(nsMargin& aMargin) nsXULScrollFrame::GetXULPadding(nsMargin& aMargin)
{ {

View File

@@ -818,7 +818,6 @@ public:
} }
virtual bool DoesClipChildren() override { return true; } virtual bool DoesClipChildren() override { return true; }
virtual nsSplittableType GetSplittableType() const override;
nsPoint GetPositionOfChildIgnoringScrolling(const nsIFrame* aChild) override nsPoint GetPositionOfChildIgnoringScrolling(const nsIFrame* aChild) override
{ nsPoint pt = aChild->GetPosition(); { nsPoint pt = aChild->GetPosition();
@@ -1246,7 +1245,6 @@ public:
} }
virtual bool DoesClipChildren() override { return true; } virtual bool DoesClipChildren() override { return true; }
virtual nsSplittableType GetSplittableType() const override;
nsPoint GetPositionOfChildIgnoringScrolling(const nsIFrame* aChild) override nsPoint GetPositionOfChildIgnoringScrolling(const nsIFrame* aChild) override
{ nsPoint pt = aChild->GetPosition(); { nsPoint pt = aChild->GetPosition();

View File

@@ -120,31 +120,6 @@ class Selection;
} // namespace mozilla } // namespace mozilla
/**
* Indication of how the frame can be split. This is used when doing runaround
* of floats, and when pulling up child frames from a next-in-flow.
*
* The choices are splittable, not splittable at all, and splittable in
* a non-rectangular fashion. This last type only applies to block-level
* elements, and indicates whether splitting can be used when doing runaround.
* If you can split across page boundaries, but you expect each continuing
* frame to be the same width then return frSplittable and not
* frSplittableNonRectangular.
*
* @see #GetSplittableType()
*/
typedef uint32_t nsSplittableType;
#define NS_FRAME_NOT_SPLITTABLE 0 // Note: not a bit!
#define NS_FRAME_SPLITTABLE 0x1
#define NS_FRAME_SPLITTABLE_NON_RECTANGULAR 0x3
#define NS_FRAME_IS_SPLITTABLE(type)\
(0 != ((type) & NS_FRAME_SPLITTABLE))
#define NS_FRAME_IS_NOT_SPLITTABLE(type)\
(0 == ((type) & NS_FRAME_SPLITTABLE))
//---------------------------------------------------------------------- //----------------------------------------------------------------------
#define NS_SUBTREE_DIRTY(_frame) \ #define NS_SUBTREE_DIRTY(_frame) \
@@ -2075,11 +2050,6 @@ public:
*/ */
virtual void ContentStatesChanged(mozilla::EventStates aStates); virtual void ContentStatesChanged(mozilla::EventStates aStates);
/**
* Return how your frame can be split.
*/
virtual nsSplittableType GetSplittableType() const = 0;
/** /**
* Continuation member functions * Continuation member functions
*/ */

View File

@@ -124,11 +124,6 @@ public:
uint32_t aFlags = 0) const override; uint32_t aFlags = 0) const override;
#endif #endif
nsSplittableType GetSplittableType() const override
{
return NS_FRAME_SPLITTABLE;
}
virtual LogicalSides GetLogicalSkipSides(const ReflowInput* aReflowInput = nullptr) const override; virtual LogicalSides GetLogicalSkipSides(const ReflowInput* aReflowInput = nullptr) const override;
nsresult GetIntrinsicImageSize(nsSize& aSize); nsresult GetIntrinsicImageSize(nsSize& aSize);

View File

@@ -41,12 +41,6 @@ nsSplittableFrame::DestroyFrom(nsIFrame* aDestructRoot, PostDestroyData& aPostDe
nsFrame::DestroyFrom(aDestructRoot, aPostDestroyData); nsFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
} }
nsSplittableType
nsSplittableFrame::GetSplittableType() const
{
return NS_FRAME_SPLITTABLE;
}
nsIFrame* nsSplittableFrame::GetPrevContinuation() const nsIFrame* nsSplittableFrame::GetPrevContinuation() const
{ {
return mPrevContinuation; return mPrevContinuation;

View File

@@ -25,8 +25,6 @@ public:
nsContainerFrame* aParent, nsContainerFrame* aParent,
nsIFrame* aPrevInFlow) override; nsIFrame* aPrevInFlow) override;
nsSplittableType GetSplittableType() const override;
void DestroyFrom(nsIFrame* aDestructRoot, PostDestroyData& aPostDestroyData) override; void DestroyFrom(nsIFrame* aDestructRoot, PostDestroyData& aPostDestroyData) override;
/* /*

View File

@@ -135,11 +135,6 @@ public:
nsTextFrame* LastInFlow() const final; nsTextFrame* LastInFlow() const final;
nsTextFrame* LastContinuation() const final; nsTextFrame* LastContinuation() const final;
nsSplittableType GetSplittableType() const final
{
return NS_FRAME_SPLITTABLE;
}
bool IsFrameOfType(uint32_t aFlags) const final bool IsFrameOfType(uint32_t aFlags) const final
{ {
// Set the frame state bit for text frames to mark them as replaced. // Set the frame state bit for text frames to mark them as replaced.

View File

@@ -798,12 +798,6 @@ nsSVGOuterSVGFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
} }
} }
nsSplittableType
nsSVGOuterSVGFrame::GetSplittableType() const
{
return NS_FRAME_NOT_SPLITTABLE;
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// nsISVGSVGFrame methods: // nsISVGSVGFrame methods:

View File

@@ -80,8 +80,6 @@ public:
aFlags & ~eSupportsContainLayoutAndPaint); aFlags & ~eSupportsContainLayoutAndPaint);
} }
virtual nsSplittableType GetSplittableType() const override;
#ifdef DEBUG_FRAME_DUMP #ifdef DEBUG_FRAME_DUMP
virtual nsresult GetFrameName(nsAString& aResult) const override virtual nsresult GetFrameName(nsAString& aResult) const override
{ {

View File

@@ -202,12 +202,6 @@ nsTableColFrame::GetFrameName(nsAString& aResult) const
} }
#endif #endif
nsSplittableType
nsTableColFrame::GetSplittableType() const
{
return NS_FRAME_NOT_SPLITTABLE;
}
void void
nsTableColFrame::InvalidateFrame(uint32_t aDisplayItemKey, bool aRebuildDisplayItems) nsTableColFrame::InvalidateFrame(uint32_t aDisplayItemKey, bool aRebuildDisplayItems)
{ {

View File

@@ -60,8 +60,6 @@ public:
virtual nsresult GetFrameName(nsAString& aResult) const override; virtual nsresult GetFrameName(nsAString& aResult) const override;
#endif #endif
virtual nsSplittableType GetSplittableType() const override;
nsTableColGroupFrame* GetTableColGroupFrame() const nsTableColGroupFrame* GetTableColGroupFrame() const
{ {
nsIFrame* parent = GetParent(); nsIFrame* parent = GetParent();