diff --git a/mozilla/layout/forms/nsComboboxControlFrame.cpp b/mozilla/layout/forms/nsComboboxControlFrame.cpp index 3e40b4dcafa..dbeca83999b 100644 --- a/mozilla/layout/forms/nsComboboxControlFrame.cpp +++ b/mozilla/layout/forms/nsComboboxControlFrame.cpp @@ -688,12 +688,6 @@ nsComboboxControlFrame::GetType() const return nsGkAtoms::comboboxControlFrame; } -PRBool -nsComboboxControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - #ifdef NS_DEBUG NS_IMETHODIMP nsComboboxControlFrame::GetFrameName(nsAString& aResult) const @@ -1047,7 +1041,11 @@ public: mComboBox(aComboBox) {} - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsBlockFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplacedContainsBlock)); + } NS_IMETHOD Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, @@ -1058,12 +1056,6 @@ protected: nsComboboxControlFrame* mComboBox; }; -PRBool -nsComboboxDisplayFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplacedContainsBlock)); -} - NS_IMETHODIMP nsComboboxDisplayFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, diff --git a/mozilla/layout/forms/nsComboboxControlFrame.h b/mozilla/layout/forms/nsComboboxControlFrame.h index e03d496d6a2..c3ff6625a1b 100644 --- a/mozilla/layout/forms/nsComboboxControlFrame.h +++ b/mozilla/layout/forms/nsComboboxControlFrame.h @@ -131,7 +131,11 @@ public: // things move to IsFrameOfType. virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsAreaFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } #ifdef NS_DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; diff --git a/mozilla/layout/forms/nsFileControlFrame.cpp b/mozilla/layout/forms/nsFileControlFrame.cpp index 4e63ebce8c2..3b72d01dfe5 100644 --- a/mozilla/layout/forms/nsFileControlFrame.cpp +++ b/mozilla/layout/forms/nsFileControlFrame.cpp @@ -617,9 +617,3 @@ nsFileControlFrame::MouseListener::MouseClick(nsIDOMEvent* aMouseEvent) return NS_OK; } - -PRBool -nsFileControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} diff --git a/mozilla/layout/forms/nsFileControlFrame.h b/mozilla/layout/forms/nsFileControlFrame.h index b248ca3658c..09d87b6b180 100644 --- a/mozilla/layout/forms/nsFileControlFrame.h +++ b/mozilla/layout/forms/nsFileControlFrame.h @@ -124,7 +124,11 @@ protected: nsresult MouseClick(nsIDOMEvent* aMouseEvent); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsAreaFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } virtual PRIntn GetSkipSides() const; diff --git a/mozilla/layout/forms/nsFormControlFrame.h b/mozilla/layout/forms/nsFormControlFrame.h index 51cdad8cb07..0c1620d13ab 100644 --- a/mozilla/layout/forms/nsFormControlFrame.h +++ b/mozilla/layout/forms/nsFormControlFrame.h @@ -58,6 +58,12 @@ public: */ nsFormControlFrame(nsStyleContext*); + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsLeafFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } + NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr); /** diff --git a/mozilla/layout/forms/nsGfxCheckboxControlFrame.cpp b/mozilla/layout/forms/nsGfxCheckboxControlFrame.cpp index 870625a4c6a..3480f5c4001 100644 --- a/mozilla/layout/forms/nsGfxCheckboxControlFrame.cpp +++ b/mozilla/layout/forms/nsGfxCheckboxControlFrame.cpp @@ -112,12 +112,6 @@ nsGfxCheckboxControlFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr return nsFormControlFrame::QueryInterface(aIID, aInstancePtr); } -PRBool -nsGfxCheckboxControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - #ifdef ACCESSIBILITY NS_IMETHODIMP nsGfxCheckboxControlFrame::GetAccessible(nsIAccessible** aAccessible) { diff --git a/mozilla/layout/forms/nsGfxCheckboxControlFrame.h b/mozilla/layout/forms/nsGfxCheckboxControlFrame.h index 31cc259dd87..19d6a3d03f3 100644 --- a/mozilla/layout/forms/nsGfxCheckboxControlFrame.h +++ b/mozilla/layout/forms/nsGfxCheckboxControlFrame.h @@ -55,8 +55,6 @@ public: nsGfxCheckboxControlFrame(nsStyleContext* aContext); virtual ~nsGfxCheckboxControlFrame(); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; - #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const { return MakeFrameName(NS_LITERAL_STRING("CheckboxControl"), aResult); diff --git a/mozilla/layout/forms/nsGfxRadioControlFrame.cpp b/mozilla/layout/forms/nsGfxRadioControlFrame.cpp index 73718a3e58e..4619937dfcf 100644 --- a/mozilla/layout/forms/nsGfxRadioControlFrame.cpp +++ b/mozilla/layout/forms/nsGfxRadioControlFrame.cpp @@ -77,12 +77,6 @@ nsGfxRadioControlFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr) return nsFormControlFrame::QueryInterface(aIID, aInstancePtr); } -PRBool -nsGfxRadioControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - #ifdef ACCESSIBILITY NS_IMETHODIMP nsGfxRadioControlFrame::GetAccessible(nsIAccessible** aAccessible) { diff --git a/mozilla/layout/forms/nsGfxRadioControlFrame.h b/mozilla/layout/forms/nsGfxRadioControlFrame.h index 429bd5bebae..e4d90027b58 100644 --- a/mozilla/layout/forms/nsGfxRadioControlFrame.h +++ b/mozilla/layout/forms/nsGfxRadioControlFrame.h @@ -60,8 +60,6 @@ public: nsGfxRadioControlFrame(nsStyleContext* aContext); ~nsGfxRadioControlFrame(); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; - //nsIRadioControlFrame methods NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr); NS_IMETHOD SetRadioButtonFaceStyleContext(nsStyleContext *aRadioButtonFaceStyleContext); diff --git a/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp b/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp index ccd7f3e1d32..3e7697dd5fd 100644 --- a/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp +++ b/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp @@ -475,9 +475,3 @@ nsHTMLButtonControlFrame::RemoveFrame(nsIAtom* aListName, NS_NOTREACHED("unsupported operation"); return NS_ERROR_UNEXPECTED; } - -PRBool -nsHTMLButtonControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} diff --git a/mozilla/layout/forms/nsHTMLButtonControlFrame.h b/mozilla/layout/forms/nsHTMLButtonControlFrame.h index 3e7dd12e9f3..0581b8cb46b 100644 --- a/mozilla/layout/forms/nsHTMLButtonControlFrame.h +++ b/mozilla/layout/forms/nsHTMLButtonControlFrame.h @@ -126,7 +126,11 @@ public: return GetFirstChild(nsnull)->GetContentInsertionFrame(); } - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsHTMLContainerFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } protected: virtual PRBool IsReset(PRInt32 type); diff --git a/mozilla/layout/forms/nsImageControlFrame.cpp b/mozilla/layout/forms/nsImageControlFrame.cpp index dfb449794e8..de7900d0524 100644 --- a/mozilla/layout/forms/nsImageControlFrame.cpp +++ b/mozilla/layout/forms/nsImageControlFrame.cpp @@ -93,7 +93,6 @@ public: nsEventStatus* aEventStatus); virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; #ifdef ACCESSIBILITY NS_IMETHOD GetAccessible(nsIAccessible** aAccessible); @@ -207,12 +206,6 @@ nsImageControlFrame::GetType() const return nsGkAtoms::imageControlFrame; } -PRBool -nsImageControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced)); -} - NS_METHOD nsImageControlFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, diff --git a/mozilla/layout/forms/nsListControlFrame.cpp b/mozilla/layout/forms/nsListControlFrame.cpp index f62d21d0352..e3ff0ff6384 100644 --- a/mozilla/layout/forms/nsListControlFrame.cpp +++ b/mozilla/layout/forms/nsListControlFrame.cpp @@ -1824,12 +1824,6 @@ nsListControlFrame::GetType() const return nsGkAtoms::listControlFrame; } -PRBool -nsListControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - PRBool nsListControlFrame::IsContainingBlock() const { diff --git a/mozilla/layout/forms/nsListControlFrame.h b/mozilla/layout/forms/nsListControlFrame.h index 68afa6a72cc..11d299588fc 100644 --- a/mozilla/layout/forms/nsListControlFrame.h +++ b/mozilla/layout/forms/nsListControlFrame.h @@ -121,7 +121,11 @@ public: */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsHTMLScrollFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } virtual PRBool IsContainingBlock() const; diff --git a/mozilla/layout/forms/nsTextControlFrame.cpp b/mozilla/layout/forms/nsTextControlFrame.cpp index 5f11b6e2093..811322bd61d 100644 --- a/mozilla/layout/forms/nsTextControlFrame.cpp +++ b/mozilla/layout/forms/nsTextControlFrame.cpp @@ -1801,12 +1801,6 @@ nsTextControlFrame::IsLeaf() const return PR_TRUE; } -PRBool -nsTextControlFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - static PRBool IsFocusedContent(nsPresContext* aPresContext, nsIContent* aContent) { diff --git a/mozilla/layout/forms/nsTextControlFrame.h b/mozilla/layout/forms/nsTextControlFrame.h index 71a59cce68a..f7a2499ddeb 100644 --- a/mozilla/layout/forms/nsTextControlFrame.h +++ b/mozilla/layout/forms/nsTextControlFrame.h @@ -107,7 +107,13 @@ public: } #endif - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // nsStackFrame is already both of these, but that's somewhat bogus, + // and we really mean it. + return nsStackFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } // nsIAnonymousContentCreator virtual nsresult CreateAnonymousContent(nsTArray& aElements); diff --git a/mozilla/layout/generic/nsBRFrame.cpp b/mozilla/layout/generic/nsBRFrame.cpp index ad6b6c6632c..2bdc60fa634 100644 --- a/mozilla/layout/generic/nsBRFrame.cpp +++ b/mozilla/layout/generic/nsBRFrame.cpp @@ -81,7 +81,11 @@ public: virtual nscoord GetMinWidth(nsIRenderingContext *aRenderingContext); virtual nscoord GetPrefWidth(nsIRenderingContext *aRenderingContext); virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsFrame::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } #ifdef ACCESSIBILITY NS_IMETHOD GetAccessible(nsIAccessible** aAccessible); @@ -222,12 +226,6 @@ BRFrame::GetType() const return nsGkAtoms::brFrame; } -PRBool -BRFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced)); -} - nsIFrame::ContentOffsets BRFrame::CalcContentOffsetsFromFramePoint(nsPoint aPoint) { ContentOffsets offsets; diff --git a/mozilla/layout/generic/nsFirstLetterFrame.cpp b/mozilla/layout/generic/nsFirstLetterFrame.cpp index 2a35df006b1..7093f507338 100644 --- a/mozilla/layout/generic/nsFirstLetterFrame.cpp +++ b/mozilla/layout/generic/nsFirstLetterFrame.cpp @@ -63,7 +63,12 @@ public: NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsFirstLetterFrameSuper::IsFrameOfType(aFlags & + ~(nsIFrame::eBidiInlineContainer)); + } virtual nscoord GetMinWidth(nsIRenderingContext *aRenderingContext); virtual nscoord GetPrefWidth(nsIRenderingContext *aRenderingContext); @@ -112,12 +117,6 @@ nsFirstLetterFrame::GetType() const return nsGkAtoms::letterFrame; } -PRBool -nsFirstLetterFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eBidiInlineContainer); -} - PRIntn nsFirstLetterFrame::GetSkipSides() const { diff --git a/mozilla/layout/generic/nsFrame.cpp b/mozilla/layout/generic/nsFrame.cpp index 6700d5241a2..1bd9ebd207a 100644 --- a/mozilla/layout/generic/nsFrame.cpp +++ b/mozilla/layout/generic/nsFrame.cpp @@ -554,6 +554,10 @@ nsFrame::Init(nsIContent* aContent, nsIFrame* aParent, nsIFrame* aPrevInFlow) { + NS_ASSERTION(IsFrameOfType(eDEBUGAllFrames) && + !IsFrameOfType(eDEBUGNoFrames), + "IsFrameOfType implementation that doesn't call base class"); + mContent = aContent; mParent = aParent; diff --git a/mozilla/layout/generic/nsFrameFrame.cpp b/mozilla/layout/generic/nsFrameFrame.cpp index 75d2ba7afa4..e714b9e5053 100644 --- a/mozilla/layout/generic/nsFrameFrame.cpp +++ b/mozilla/layout/generic/nsFrameFrame.cpp @@ -117,7 +117,13 @@ public: NS_IMETHOD_(nsrefcnt) Release(void) { return 1; } virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // nsLeafFrame is already eReplacedContainsBlock, but that's somewhat bogus + return nsLeafFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } NS_IMETHOD Init(nsIContent* aContent, nsIFrame* aParent, @@ -355,12 +361,6 @@ nsSubDocumentFrame::GetType() const return nsGkAtoms::subDocumentFrame; } -PRBool -nsSubDocumentFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - NS_IMETHODIMP nsSubDocumentFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, diff --git a/mozilla/layout/generic/nsGfxScrollFrame.cpp b/mozilla/layout/generic/nsGfxScrollFrame.cpp index 762301b3f17..af14593e051 100644 --- a/mozilla/layout/generic/nsGfxScrollFrame.cpp +++ b/mozilla/layout/generic/nsGfxScrollFrame.cpp @@ -1175,13 +1175,6 @@ nsXULScrollFrame::Release(void) return NS_OK; } -PRBool -nsXULScrollFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Override nsBoxFrame. - return !aFlags; -} - #ifdef NS_DEBUG NS_IMETHODIMP nsXULScrollFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/generic/nsGfxScrollFrame.h b/mozilla/layout/generic/nsGfxScrollFrame.h index 713aee4d4a1..649bd2f2885 100644 --- a/mozilla/layout/generic/nsGfxScrollFrame.h +++ b/mozilla/layout/generic/nsGfxScrollFrame.h @@ -545,7 +545,14 @@ public: */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Override bogus IsFrameOfType in nsBoxFrame. + if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced)) + return PR_FALSE; + return nsBoxFrame::IsFrameOfType(aFlags); + } + #ifdef NS_DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif diff --git a/mozilla/layout/generic/nsHTMLCanvasFrame.cpp b/mozilla/layout/generic/nsHTMLCanvasFrame.cpp index ebdf3abdb7c..62963ca5248 100644 --- a/mozilla/layout/generic/nsHTMLCanvasFrame.cpp +++ b/mozilla/layout/generic/nsHTMLCanvasFrame.cpp @@ -254,12 +254,6 @@ nsHTMLCanvasFrame::GetType() const return nsGkAtoms::HTMLCanvasFrame; } -PRBool -nsHTMLCanvasFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced)); -} - // get the offset into the content area of the image where aImg starts if it is a continuation. // from nsImageFrame nscoord diff --git a/mozilla/layout/generic/nsHTMLCanvasFrame.h b/mozilla/layout/generic/nsHTMLCanvasFrame.h index d193c84ce36..2cec95f248d 100644 --- a/mozilla/layout/generic/nsHTMLCanvasFrame.h +++ b/mozilla/layout/generic/nsHTMLCanvasFrame.h @@ -87,7 +87,12 @@ public: #endif virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsSplittableFrame::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; NS_IMETHOD List(FILE* out, PRInt32 aIndent) const; diff --git a/mozilla/layout/generic/nsIFrame.h b/mozilla/layout/generic/nsIFrame.h index 03029df1df3..7e5a83c82a1 100644 --- a/mozilla/layout/generic/nsIFrame.h +++ b/mozilla/layout/generic/nsIFrame.h @@ -1432,16 +1432,30 @@ public: eReplaced = 1 << 4, // Frame that contains a block but looks like a replaced element // from the outside - eReplacedContainsBlock = 1 << 5 + eReplacedContainsBlock = 1 << 5, + + + // These are to allow nsFrame::Init to assert that IsFrameOfType + // implementations all call the base class method. They are only + // meaningful in DEBUG builds. + eDEBUGAllFrames = 1 << 30, + eDEBUGNoFrames = 1 << 31 }; /** * API for doing a quick check if a frame is of a given * type. Returns true if the frame matches ALL flags passed in. + * + * Implementations should always override with inline virtual + * functions that call the base class's IsFrameOfType method. */ virtual PRBool IsFrameOfType(PRUint32 aFlags) const { +#ifdef DEBUG + return !(aFlags & ~(nsIFrame::eDEBUGAllFrames)); +#else return !aFlags; +#endif } /** diff --git a/mozilla/layout/generic/nsImageFrame.cpp b/mozilla/layout/generic/nsImageFrame.cpp index 862dbb00af8..c90c9165e88 100644 --- a/mozilla/layout/generic/nsImageFrame.cpp +++ b/mozilla/layout/generic/nsImageFrame.cpp @@ -1649,12 +1649,6 @@ nsImageFrame::GetType() const return nsGkAtoms::imageFrame; } -PRBool -nsImageFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced)); -} - #ifdef DEBUG NS_IMETHODIMP nsImageFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/generic/nsImageFrame.h b/mozilla/layout/generic/nsImageFrame.h index 692b35a1963..a402c366a6c 100644 --- a/mozilla/layout/generic/nsImageFrame.h +++ b/mozilla/layout/generic/nsImageFrame.h @@ -129,7 +129,12 @@ public: #endif virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return ImageFrameSuper::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; NS_IMETHOD List(FILE* out, PRInt32 aIndent) const; diff --git a/mozilla/layout/generic/nsInlineFrame.cpp b/mozilla/layout/generic/nsInlineFrame.cpp index f9eb1e590c7..52776bfff4a 100644 --- a/mozilla/layout/generic/nsInlineFrame.cpp +++ b/mozilla/layout/generic/nsInlineFrame.cpp @@ -122,12 +122,6 @@ nsInlineFrame::GetType() const return nsGkAtoms::inlineFrame; } -PRBool -nsInlineFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eBidiInlineContainer); -} - inline PRBool IsPaddingZero(nsStyleUnit aUnit, nsStyleCoord &aCoord) { diff --git a/mozilla/layout/generic/nsInlineFrame.h b/mozilla/layout/generic/nsInlineFrame.h index f870eeabbfb..e49301dcf2a 100644 --- a/mozilla/layout/generic/nsInlineFrame.h +++ b/mozilla/layout/generic/nsInlineFrame.h @@ -99,7 +99,12 @@ public: NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsInlineFrameSuper::IsFrameOfType(aFlags & + ~(nsIFrame::eBidiInlineContainer)); + } virtual PRBool IsEmpty(); virtual PRBool IsSelfEmpty(); diff --git a/mozilla/layout/generic/nsLeafFrame.cpp b/mozilla/layout/generic/nsLeafFrame.cpp index 23fb133fb6f..117e9d9fe2e 100644 --- a/mozilla/layout/generic/nsLeafFrame.cpp +++ b/mozilla/layout/generic/nsLeafFrame.cpp @@ -111,14 +111,6 @@ nsLeafFrame::Reflow(nsPresContext* aPresContext, return NS_OK; } -PRBool -nsLeafFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // We don't actually contain a block, but we do always want a - // computed width, so tell a little white lie here. - return !(aFlags & ~nsIFrame::eReplacedContainsBlock); -} - nscoord nsLeafFrame::GetIntrinsicHeight() { diff --git a/mozilla/layout/generic/nsLeafFrame.h b/mozilla/layout/generic/nsLeafFrame.h index e1f1322aefa..c24fd0b68e8 100644 --- a/mozilla/layout/generic/nsLeafFrame.h +++ b/mozilla/layout/generic/nsLeafFrame.h @@ -73,12 +73,17 @@ public: * borderpadding for the desired height. Ascent will be set to the height, * and descent will be set to 0. */ -NS_IMETHOD Reflow(nsPresContext* aPresContext, + NS_IMETHOD Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // We don't actually contain a block, but we do always want a + // computed width, so tell a little white lie here. + return nsFrame::IsFrameOfType(aFlags & ~(nsIFrame::eReplacedContainsBlock)); + } protected: nsLeafFrame(nsStyleContext* aContext) : nsFrame(aContext) {} diff --git a/mozilla/layout/generic/nsObjectFrame.cpp b/mozilla/layout/generic/nsObjectFrame.cpp index 580f6f57885..28a1ab7bb7a 100644 --- a/mozilla/layout/generic/nsObjectFrame.cpp +++ b/mozilla/layout/generic/nsObjectFrame.cpp @@ -505,12 +505,6 @@ nsObjectFrame::GetType() const return nsGkAtoms::objectFrame; } -PRBool -nsObjectFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(eReplaced)); -} - #ifdef DEBUG NS_IMETHODIMP nsObjectFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/generic/nsObjectFrame.h b/mozilla/layout/generic/nsObjectFrame.h index bfab9097cf4..abd29faecc4 100644 --- a/mozilla/layout/generic/nsObjectFrame.h +++ b/mozilla/layout/generic/nsObjectFrame.h @@ -91,7 +91,12 @@ public: nsEventStatus* aEventStatus); virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsObjectFrameSuper::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } + virtual PRBool SupportsVisibilityHidden() { return PR_FALSE; } virtual PRBool NeedsView() { return PR_TRUE; } virtual nsresult CreateWidgetForView(nsIView* aView); diff --git a/mozilla/layout/generic/nsTextFrame.cpp b/mozilla/layout/generic/nsTextFrame.cpp index 8f8dc34f014..00ba71e3121 100644 --- a/mozilla/layout/generic/nsTextFrame.cpp +++ b/mozilla/layout/generic/nsTextFrame.cpp @@ -317,7 +317,12 @@ public: */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Set the frame state bit for text frames to mark them as replaced. + // XXX kipp: temporary + return nsFrame::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } #ifdef DEBUG NS_IMETHOD List(FILE* out, PRInt32 aIndent) const; @@ -6343,14 +6348,6 @@ nsTextFrame::GetType() const return nsGkAtoms::textFrame; } -PRBool -nsTextFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Set the frame state bit for text frames to mark them as replaced. - // XXX kipp: temporary - return !(aFlags & ~(eReplaced)); -} - /* virtual */ PRBool nsTextFrame::IsEmpty() { diff --git a/mozilla/layout/generic/nsTextFrameThebes.cpp b/mozilla/layout/generic/nsTextFrameThebes.cpp index d63e77f23e6..0f4e04c500c 100644 --- a/mozilla/layout/generic/nsTextFrameThebes.cpp +++ b/mozilla/layout/generic/nsTextFrameThebes.cpp @@ -363,7 +363,12 @@ public: */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Set the frame state bit for text frames to mark them as replaced. + // XXX kipp: temporary + return nsFrame::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } #ifdef DEBUG NS_IMETHOD List(FILE* out, PRInt32 aIndent) const; @@ -5073,14 +5078,6 @@ nsTextFrame::GetType() const return nsGkAtoms::textFrame; } -PRBool -nsTextFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Set the frame state bit for text frames to mark them as replaced. - // XXX kipp: temporary - return !(aFlags & ~(eReplaced)); -} - /* virtual */ PRBool nsTextFrame::IsEmpty() { diff --git a/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.cpp b/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.cpp index 8851016f4e8..acbb21cc95e 100644 --- a/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.cpp +++ b/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.cpp @@ -1097,12 +1097,6 @@ nsMathMLContainerFrame::Reflow(nsPresContext* aPresContext, return NS_OK; } -PRBool -nsMathMLContainerFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - // see spacing table in Chapter 18, TeXBook (p.170) // Our table isn't quite identical to TeX because operators have // built-in values for lspace & rspace in the Operator Dictionary. diff --git a/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.h b/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.h index 27eae4a5244..92926d505da 100644 --- a/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.h +++ b/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.h @@ -116,7 +116,10 @@ public: // -------------------------------------------------------------------------- // Overloaded nsHTMLContainerFrame methods -- see documentation in nsIFrame.h - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsHTMLContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } NS_IMETHOD Init(nsIContent* aContent, @@ -375,7 +378,7 @@ public: } virtual PRBool IsFrameOfType(PRUint32 aFlags) const { - return !(aFlags & ~nsIFrame::eMathML); + return nsBlockFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); } protected: @@ -458,7 +461,10 @@ public: } virtual PRBool IsFrameOfType(PRUint32 aFlags) const { - return !(aFlags & ~nsIFrame::eMathML); + // Override nsInlineFrame. XXX Should we really? + if (aFlags & (nsIFrame::eBidiInlineContainer)) + return PR_FALSE; + return nsInlineFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); } protected: diff --git a/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.cpp b/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.cpp index c85fa592c38..a5e223840f8 100644 --- a/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.cpp +++ b/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.cpp @@ -650,12 +650,6 @@ nsMathMLmtableOuterFrame::Reflow(nsPresContext* aPresContext, return rv; } -PRBool -nsMathMLmtableOuterFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - // -------- // implementation of nsMathMLmtableFrame @@ -673,12 +667,6 @@ nsMathMLmtableFrame::~nsMathMLmtableFrame() { } -PRBool -nsMathMLmtableFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - NS_IMETHODIMP nsMathMLmtableFrame::SetInitialChildList(nsIAtom* aListName, nsIFrame* aChildList) @@ -727,12 +715,6 @@ nsMathMLmtrFrame::Init(nsIContent* aContent, return rv; } -PRBool -nsMathMLmtrFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - NS_IMETHODIMP nsMathMLmtrFrame::AttributeChanged(PRInt32 aNameSpaceID, nsIAtom* aAttribute, @@ -846,12 +828,6 @@ nsMathMLmtdFrame::GetColSpan() return colspan; } -PRBool -nsMathMLmtdFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - NS_IMETHODIMP nsMathMLmtdFrame::AttributeChanged(PRInt32 aNameSpaceID, nsIAtom* aAttribute, @@ -929,10 +905,3 @@ nsMathMLmtdInnerFrame::Reflow(nsPresContext* aPresContext, // ... return rv; } - -PRBool -nsMathMLmtdInnerFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eMathML); -} - diff --git a/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.h b/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.h index 5a5045c4108..c75c1eca683 100644 --- a/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.h +++ b/mozilla/layout/mathml/base/src/nsMathMLmtableFrame.h @@ -95,7 +95,10 @@ public: nsIAtom* aAttribute, PRInt32 aModType); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsTableOuterFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } protected: nsMathMLmtableOuterFrame(nsStyleContext* aContext) : nsTableOuterFrame(aContext) {} @@ -152,7 +155,10 @@ public: return rv; } - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsTableFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } // helper to restyle and reflow the table when a row is changed -- since MathML // attributes are inter-dependent and row/colspan can affect the table, it is @@ -213,7 +219,10 @@ public: return rv; } - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsTableRowFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } // helper to restyle and reflow the table -- @see nsMathMLmtableFrame. void RestyleTable() @@ -253,7 +262,10 @@ public: virtual PRInt32 GetRowSpan(); virtual PRInt32 GetColSpan(); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsTableCellFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } protected: nsMathMLmtdFrame(nsStyleContext* aContext) : nsTableCellFrame(aContext) {} @@ -302,7 +314,11 @@ public: nsHTMLReflowMetrics& aDesiredSize, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsBlockFrame::IsFrameOfType(aFlags & ~(nsIFrame::eMathML)); + } protected: nsMathMLmtdInnerFrame(nsStyleContext* aContext) : nsBlockFrame(aContext) {} diff --git a/mozilla/layout/svg/base/src/nsSVGContainerFrame.cpp b/mozilla/layout/svg/base/src/nsSVGContainerFrame.cpp index caa620557ab..2e48971faf0 100644 --- a/mozilla/layout/svg/base/src/nsSVGContainerFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGContainerFrame.cpp @@ -53,12 +53,6 @@ NS_NewSVGContainerFrame(nsIPresShell* aPresShell, return new (aPresShell) nsSVGContainerFrame(aContext); } -PRBool -nsSVGContainerFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eSVG); -} - NS_IMETHODIMP nsSVGContainerFrame::AppendFrames(nsIAtom* aListName, nsIFrame* aFrameList) diff --git a/mozilla/layout/svg/base/src/nsSVGContainerFrame.h b/mozilla/layout/svg/base/src/nsSVGContainerFrame.h index ea95a045058..39c46b7fa10 100644 --- a/mozilla/layout/svg/base/src/nsSVGContainerFrame.h +++ b/mozilla/layout/svg/base/src/nsSVGContainerFrame.h @@ -51,7 +51,11 @@ class nsSVGContainerFrame : public nsSVGContainerFrameBase nsStyleContext* aContext); protected: - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsSVGContainerFrameBase::IsFrameOfType(aFlags & ~(nsIFrame::eSVG)); + } + NS_IMETHOD InitSVG(); private: diff --git a/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.cpp b/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.cpp index 3b9fd085334..dd401187ea1 100644 --- a/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.cpp @@ -107,12 +107,6 @@ nsSVGForeignObjectFrame::GetType() const return nsGkAtoms::svgForeignObjectFrame; } -PRBool -nsSVGForeignObjectFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~(nsIFrame::eSVG | nsIFrame::eSVGForeignObject)); -} - NS_IMETHODIMP nsSVGForeignObjectFrame::AttributeChanged(PRInt32 aNameSpaceID, nsIAtom* aAttribute, diff --git a/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.h b/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.h index 385c11cf52c..eea9717860e 100644 --- a/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.h +++ b/mozilla/layout/svg/base/src/nsSVGForeignObjectFrame.h @@ -87,7 +87,12 @@ public: * @see nsGkAtoms::svgForeignObjectFrame */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsSVGForeignObjectFrameBase::IsFrameOfType(aFlags & + ~(nsIFrame::eSVG | nsIFrame::eSVGForeignObject)); + } virtual void InvalidateInternal(const nsRect& aDamageRect, nscoord aX, nscoord aY, nsIFrame* aForChild, diff --git a/mozilla/layout/svg/base/src/nsSVGGeometryFrame.h b/mozilla/layout/svg/base/src/nsSVGGeometryFrame.h index d8d6e9b7564..26accd85846 100644 --- a/mozilla/layout/svg/base/src/nsSVGGeometryFrame.h +++ b/mozilla/layout/svg/base/src/nsSVGGeometryFrame.h @@ -65,6 +65,11 @@ public: nsIFrame* aPrevInFlow); NS_IMETHOD DidSetStyleContext(); + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsSVGGeometryFrameBase::IsFrameOfType(aFlags & ~(nsIFrame::eSVG)); + } + // nsISupports interface: NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr); diff --git a/mozilla/layout/svg/base/src/nsSVGGlyphFrame.cpp b/mozilla/layout/svg/base/src/nsSVGGlyphFrame.cpp index 06c8e09cb6a..5cc74ecba6e 100644 --- a/mozilla/layout/svg/base/src/nsSVGGlyphFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGGlyphFrame.cpp @@ -174,15 +174,6 @@ nsSVGGlyphFrame::GetType() const return nsGkAtoms::svgGlyphFrame; } -PRBool -nsSVGGlyphFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Set the frame state bit for text frames to mark them as replaced. - // XXX kipp: temporary - - return !(aFlags & ~(eSVG | eReplaced)); -} - //---------------------------------------------------------------------- // nsISVGChildFrame methods diff --git a/mozilla/layout/svg/base/src/nsSVGGlyphFrame.h b/mozilla/layout/svg/base/src/nsSVGGlyphFrame.h index f6440098e4d..f882fcb0379 100644 --- a/mozilla/layout/svg/base/src/nsSVGGlyphFrame.h +++ b/mozilla/layout/svg/base/src/nsSVGGlyphFrame.h @@ -85,7 +85,14 @@ public: * @see nsGkAtoms::svgGlyphFrame */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Set the frame state bit for text frames to mark them as replaced. + // XXX kipp: temporary + + return nsSVGGlyphFrameBase::IsFrameOfType(aFlags & ~(nsIFrame::eReplaced)); + } #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/svg/base/src/nsSVGLeafFrame.cpp b/mozilla/layout/svg/base/src/nsSVGLeafFrame.cpp index 43458c3cb71..1f974ff944c 100644 --- a/mozilla/layout/svg/base/src/nsSVGLeafFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGLeafFrame.cpp @@ -38,7 +38,10 @@ class nsSVGLeafFrame : public nsFrame { - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsFrame::IsFrameOfType(aFlags & ~(nsIFrame::eSVG)); + } #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const @@ -56,9 +59,3 @@ NS_NewSVGLeafFrame(nsIPresShell* aPresShell, nsStyleContext* aContext) { return new (aPresShell) nsSVGLeafFrame(aContext); } - -PRBool -nsSVGLeafFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eSVG); -} diff --git a/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.cpp b/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.cpp index 397ac5bf105..4aa42fbc71a 100644 --- a/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.cpp @@ -140,12 +140,6 @@ nsSVGPathGeometryFrame::GetType() const return nsGkAtoms::svgPathGeometryFrame; } -PRBool -nsSVGPathGeometryFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eSVG); -} - // marker helper static void RemoveMarkerObserver(nsSVGMarkerProperty *property, diff --git a/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.h b/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.h index f79b2e99f11..468ac482ef4 100644 --- a/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.h +++ b/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.h @@ -84,7 +84,6 @@ public: * @see nsGkAtoms::svgPathGeometryFrame */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/svg/base/src/nsSVGStopFrame.cpp b/mozilla/layout/svg/base/src/nsSVGStopFrame.cpp index 8f4e79799ea..4244433fa66 100644 --- a/mozilla/layout/svg/base/src/nsSVGStopFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGStopFrame.cpp @@ -66,7 +66,11 @@ public: * @see nsGkAtoms::svgStopFrame */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + return nsSVGStopFrameBase::IsFrameOfType(aFlags & ~(nsIFrame::eSVG)); + } #ifdef DEBUG // nsIFrameDebug interface: @@ -103,12 +107,6 @@ nsSVGStopFrame::GetType() const return nsGkAtoms::svgStopFrame; } -PRBool -nsSVGStopFrame::IsFrameOfType(PRUint32 aFlags) const -{ - return !(aFlags & ~nsIFrame::eSVG); -} - NS_IMETHODIMP nsSVGStopFrame::AttributeChanged(PRInt32 aNameSpaceID, nsIAtom* aAttribute, diff --git a/mozilla/layout/xul/base/src/nsBoxFrame.cpp b/mozilla/layout/xul/base/src/nsBoxFrame.cpp index 1142621c39d..f6c0e991ca1 100644 --- a/mozilla/layout/xul/base/src/nsBoxFrame.cpp +++ b/mozilla/layout/xul/base/src/nsBoxFrame.cpp @@ -1501,16 +1501,6 @@ nsBoxFrame::GetType() const return nsGkAtoms::boxFrame; } -PRBool -nsBoxFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // This is bogus, but it's what we've always done. - // (Given that we're replaced, we need to say we're a replaced element - // that contains a block so nsHTMLReflowState doesn't tell us to be - // NS_INTRINSICSIZE wide.) - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - #ifdef DEBUG_LAYOUT NS_IMETHODIMP nsBoxFrame::GetDebug(PRBool& aDebug) diff --git a/mozilla/layout/xul/base/src/nsBoxFrame.h b/mozilla/layout/xul/base/src/nsBoxFrame.h index 10d649dbe9f..245dc93d30b 100644 --- a/mozilla/layout/xul/base/src/nsBoxFrame.h +++ b/mozilla/layout/xul/base/src/nsBoxFrame.h @@ -153,7 +153,17 @@ public: NS_IMETHOD DidSetStyleContext(); virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // This is bogus, but it's what we've always done. + // (Given that we're replaced, we need to say we're a replaced element + // that contains a block so nsHTMLReflowState doesn't tell us to be + // NS_INTRINSICSIZE wide.) + return nsContainerFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif diff --git a/mozilla/layout/xul/base/src/nsDocElementBoxFrame.cpp b/mozilla/layout/xul/base/src/nsDocElementBoxFrame.cpp index ffe3f3fb844..aa21b286db1 100644 --- a/mozilla/layout/xul/base/src/nsDocElementBoxFrame.cpp +++ b/mozilla/layout/xul/base/src/nsDocElementBoxFrame.cpp @@ -77,7 +77,14 @@ public: // nsIAnonymousContentCreator virtual nsresult CreateAnonymousContent(nsTArray& aElements); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Override nsBoxFrame. + if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced)) + return PR_FALSE; + return nsBoxFrame::IsFrameOfType(aFlags); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif @@ -158,13 +165,6 @@ NS_INTERFACE_MAP_BEGIN(nsDocElementBoxFrame) NS_INTERFACE_MAP_ENTRY(nsIAnonymousContentCreator) NS_INTERFACE_MAP_END_INHERITING(nsBoxFrame) -PRBool -nsDocElementBoxFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Override nsBoxFrame. - return !aFlags; -} - #ifdef DEBUG NS_IMETHODIMP nsDocElementBoxFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/xul/base/src/nsLeafBoxFrame.cpp b/mozilla/layout/xul/base/src/nsLeafBoxFrame.cpp index 75838ec30ee..ce69d60c5e5 100644 --- a/mozilla/layout/xul/base/src/nsLeafBoxFrame.cpp +++ b/mozilla/layout/xul/base/src/nsLeafBoxFrame.cpp @@ -363,13 +363,6 @@ nsLeafBoxFrame::Reflow(nsPresContext* aPresContext, return NS_OK; } -PRBool -nsLeafBoxFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // This is bogus, but it's what we've always done. - return !(aFlags & ~(eReplaced | eReplacedContainsBlock)); -} - #ifdef DEBUG NS_IMETHODIMP nsLeafBoxFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/xul/base/src/nsLeafBoxFrame.h b/mozilla/layout/xul/base/src/nsLeafBoxFrame.h index 216b364fcb4..fef1b9e4b5e 100644 --- a/mozilla/layout/xul/base/src/nsLeafBoxFrame.h +++ b/mozilla/layout/xul/base/src/nsLeafBoxFrame.h @@ -58,7 +58,14 @@ public: virtual nscoord GetFlex(nsBoxLayoutState& aState); virtual nscoord GetBoxAscent(nsBoxLayoutState& aState); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // This is bogus, but it's what we've always done. + // Note that nsLeafFrame is also eReplacedContainsBlock. + return nsLeafFrame::IsFrameOfType(aFlags & + ~(nsIFrame::eReplaced | nsIFrame::eReplacedContainsBlock)); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; #endif diff --git a/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp b/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp index d8d24f332c2..d3374b5505a 100644 --- a/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp +++ b/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp @@ -155,13 +155,6 @@ nsMenuBarFrame::Init(nsIContent* aContent, return rv; } -PRBool -nsMenuBarFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Override bogus IsFrameOfType in base class. - return !aFlags; -} - NS_IMETHODIMP nsMenuBarFrame::IsOpen() { diff --git a/mozilla/layout/xul/base/src/nsMenuBarFrame.h b/mozilla/layout/xul/base/src/nsMenuBarFrame.h index d3323c5934e..8df9673a69c 100644 --- a/mozilla/layout/xul/base/src/nsMenuBarFrame.h +++ b/mozilla/layout/xul/base/src/nsMenuBarFrame.h @@ -130,7 +130,14 @@ public: PRBool IsValidItem(nsIContent* aContent); PRBool IsDisabled(nsIContent* aContent); - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Override bogus IsFrameOfType in nsBoxFrame. + if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced)) + return PR_FALSE; + return nsBoxFrame::IsFrameOfType(aFlags); + } + #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const { diff --git a/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp b/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp index 9bd817f8822..88a26c2c89b 100644 --- a/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp +++ b/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp @@ -118,7 +118,14 @@ public: * @see nsGkAtoms::rootFrame */ virtual nsIAtom* GetType() const; - virtual PRBool IsFrameOfType(PRUint32 aFlags) const; + + virtual PRBool IsFrameOfType(PRUint32 aFlags) const + { + // Override bogus IsFrameOfType in nsBoxFrame. + if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced)) + return PR_FALSE; + return nsBoxFrame::IsFrameOfType(aFlags); + } #ifdef DEBUG NS_IMETHOD GetFrameName(nsAString& aResult) const; @@ -268,13 +275,6 @@ nsRootBoxFrame::GetType() const return nsGkAtoms::rootFrame; } -PRBool -nsRootBoxFrame::IsFrameOfType(PRUint32 aFlags) const -{ - // Override the bogus thing nsBoxFrame does. - return !aFlags; -} - nsIFrame* nsRootBoxFrame::GetPopupSetFrame() {