Bug 890782 - Part 3: Inherit NS_FRAME_IS_NONDISPLAY by default. r=jwatt

This commit is contained in:
Cameron McCormack 2013-07-12 17:13:07 +10:00
parent 4d5eacea09
commit 723d3df830
6 changed files with 6 additions and 22 deletions

View File

@ -517,7 +517,8 @@ nsFrame::Init(nsIContent* aContent,
mState |= state & (NS_FRAME_INDEPENDENT_SELECTION |
NS_FRAME_GENERATED_CONTENT |
NS_FRAME_IS_SVG_TEXT |
NS_FRAME_IN_POPUP);
NS_FRAME_IN_POPUP |
NS_FRAME_IS_NONDISPLAY);
}
const nsStyleDisplay *disp = StyleDisplay();
if (disp->HasTransform(this)) {

View File

@ -88,8 +88,7 @@ nsSVGDisplayContainerFrame::Init(nsIContent* aContent,
nsIFrame* aPrevInFlow)
{
if (!(GetStateBits() & NS_STATE_IS_OUTER_SVG)) {
AddStateBits(aParent->GetStateBits() &
(NS_FRAME_IS_NONDISPLAY | NS_STATE_SVG_CLIPPATH_CHILD));
AddStateBits(aParent->GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD);
}
nsSVGContainerFrame::Init(aContent, aParent, aPrevInFlow);
}

View File

@ -61,8 +61,7 @@ nsSVGForeignObjectFrame::Init(nsIContent* aContent,
"Content is not an SVG foreignObject!");
nsSVGForeignObjectFrameBase::Init(aContent, aParent, aPrevInFlow);
AddStateBits(aParent->GetStateBits() &
(NS_FRAME_IS_NONDISPLAY | NS_STATE_SVG_CLIPPATH_CHILD));
AddStateBits(aParent->GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD);
AddStateBits(NS_FRAME_FONT_INFLATION_CONTAINER |
NS_FRAME_FONT_INFLATION_FLOW_ROOT);
if (!(mState & NS_FRAME_IS_NONDISPLAY)) {

View File

@ -24,8 +24,7 @@ nsSVGGeometryFrame::Init(nsIContent* aContent,
nsIFrame* aParent,
nsIFrame* aPrevInFlow)
{
AddStateBits(aParent->GetStateBits() &
(NS_FRAME_IS_NONDISPLAY | NS_STATE_SVG_CLIPPATH_CHILD));
AddStateBits(aParent->GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD);
nsSVGGeometryFrameBase::Init(aContent, aParent, aPrevInFlow);
}

View File

@ -167,19 +167,6 @@ nsSVGOuterSVGFrame::Init(nsIContent* aContent,
SVGSVGElement *svg = static_cast<SVGSVGElement*>(aContent);
if (!svg->PassesConditionalProcessingTests()) {
AddStateBits(NS_FRAME_IS_NONDISPLAY);
} else {
// If this outer <svg> element is the child of a <foreignObject> that
// is non-display, or is the child of a frame for HTML content that
// itself is a descendant of a non-display SVG frame, then we want to
// it non-display also. The second case is not as simple to handle
// as copying a state bit from the parent, since non-SVG frames do
// not use NS_FRAME_IS_NONDISPLAY.
for (nsIFrame* f = aParent; f; f = f->GetParent()) {
if (f->IsFrameOfType(eSVG)) {
AddStateBits(f->GetStateBits() & NS_FRAME_IS_NONDISPLAY);
break;
}
}
}
nsSVGOuterSVGFrameBase::Init(aContent, aParent, aPrevInFlow);

View File

@ -3023,8 +3023,7 @@ nsSVGTextFrame2::Init(nsIContent* aContent,
NS_ASSERTION(aContent->IsSVG(nsGkAtoms::text), "Content is not an SVG text");
nsSVGTextFrame2Base::Init(aContent, aParent, aPrevInFlow);
AddStateBits((aParent->GetStateBits() &
(NS_FRAME_IS_NONDISPLAY | NS_STATE_SVG_CLIPPATH_CHILD)) |
AddStateBits((aParent->GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD) |
NS_FRAME_SVG_LAYOUT | NS_FRAME_IS_SVG_TEXT);
mMutationObserver.StartObserving(this);