commit d82b4f012e34eb01336b0ccb6c878ece57d70ee4 parent 6066f300044b1dabdb17c66f2396d709eb526233 Author: longsonr <longsonr@gmail.com> Date: Fri, 9 Jan 2026 20:50:07 +0000 Bug 2009364 Part 1 - Rename ISVGDisplayableFrame::ChangeFlags r=jwatt Differential Revision: https://phabricator.services.mozilla.com/D278452 Diffstat:
26 files changed, 82 insertions(+), 84 deletions(-)
diff --git a/dom/svg/SVGSVGElement.cpp b/dom/svg/SVGSVGElement.cpp @@ -490,7 +490,7 @@ void SVGSVGElement::InvalidateTransformNotifyFrame() { // might fail this check if we've failed conditional processing if (ISVGSVGFrame* svgframe = do_QueryFrame(GetPrimaryFrame())) { svgframe->NotifyViewportOrTransformChanged( - ISVGDisplayableFrame::ChangeFlags::TransformChanged); + ISVGDisplayableFrame::ChangeFlag::TransformChanged); } } diff --git a/layout/svg/ISVGDisplayableFrame.h b/layout/svg/ISVGDisplayableFrame.h @@ -103,11 +103,12 @@ class ISVGDisplayableFrame : public nsQueryFrame { // lengths must be reevaluated) // FullZoomChanged: // the page's zoom level has changed - enum class ChangeFlags { + enum class ChangeFlag { TransformChanged, CoordContextChanged, FullZoomChanged }; + using ChangeFlags = EnumSet<ChangeFlag>; /** * This is called on a frame when there has been a change to one of its @@ -118,7 +119,7 @@ class ISVGDisplayableFrame : public nsQueryFrame { * invalidate the entire area of the ancestor that changed. However, they * may need to update their bounds. */ - virtual void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) = 0; + virtual void NotifySVGChanged(ChangeFlags aFlags) = 0; /** * Get this frame's contribution to the rect returned by a GetBBox() call diff --git a/layout/svg/ISVGSVGFrame.h b/layout/svg/ISVGSVGFrame.h @@ -20,11 +20,11 @@ class ISVGSVGFrame { * Called when non-attribute changes have caused the element's width/height * or its for-children transform to change, and to get the element to notify * its children appropriately. aFlags must be set to - * ISVGDisplayableFrame::ChangeFlags::CoordContextChanged and/or - * ISVGDisplayableFrame::ChangeFlags::TransformChanged. + * ISVGDisplayableFrame::ChangeFlag::CoordContextChanged and/or + * ISVGDisplayableFrame::ChangeFlag::TransformChanged. */ virtual void NotifyViewportOrTransformChanged( - EnumSet<ISVGDisplayableFrame::ChangeFlags> aFlags) = 0; + ISVGDisplayableFrame::ChangeFlags aFlags) = 0; }; } // namespace mozilla diff --git a/layout/svg/SVGClipPathFrame.cpp b/layout/svg/SVGClipPathFrame.cpp @@ -172,7 +172,7 @@ void SVGClipPathFrame::PaintFrameIntoMask(nsIFrame* aFrame, } // The CTM of each frame referencing us can be different. - frame->NotifySVGChanged(ISVGDisplayableFrame::ChangeFlags::TransformChanged); + frame->NotifySVGChanged(ISVGDisplayableFrame::ChangeFlag::TransformChanged); // Children of this clipPath may themselves be clipped. SVGClipPathFrame* clipPathThatClipsChild; diff --git a/layout/svg/SVGContainerFrame.cpp b/layout/svg/SVGContainerFrame.cpp @@ -381,16 +381,16 @@ void SVGDisplayContainerFrame::DidSetComputedStyle(ComputedStyle* aOldStyle) { } if (StyleDisplay()->CalcTransformPropertyDifference( *aOldStyle->StyleDisplay())) { - NotifySVGChanged(ChangeFlags::TransformChanged); + NotifySVGChanged(ChangeFlag::TransformChanged); } } -void SVGDisplayContainerFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGDisplayContainerFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); - if (aFlags.contains(ChangeFlags::TransformChanged)) { + if (aFlags.contains(ChangeFlag::TransformChanged)) { // make sure our cached transform matrix gets (lazily) updated mCanvasTM = nullptr; } diff --git a/layout/svg/SVGContainerFrame.h b/layout/svg/SVGContainerFrame.h @@ -133,7 +133,7 @@ class SVGDisplayContainerFrame : public SVGContainerFrame, imgDrawingParams& aImgParams) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace, uint32_t aFlags) override; bool IsDisplayContainer() override { return true; } diff --git a/layout/svg/SVGForeignObjectFrame.cpp b/layout/svg/SVGForeignObjectFrame.cpp @@ -280,16 +280,16 @@ void SVGForeignObjectFrame::ReflowSVG() { NS_FRAME_HAS_DIRTY_CHILDREN); } -void SVGForeignObjectFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGForeignObjectFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); bool needNewBounds = false; // i.e. mRect or ink overflow rect bool needReflow = false; bool needNewCanvasTM = false; - if (aFlags.contains(ChangeFlags::CoordContextChanged)) { + if (aFlags.contains(ChangeFlag::CoordContextChanged)) { // Coordinate context changes affect mCanvasTM if we have a // percentage 'x' or 'y' if (StyleSVGReset()->mX.HasPercent() || StyleSVGReset()->mY.HasPercent()) { @@ -307,7 +307,7 @@ void SVGForeignObjectFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { } } - if (aFlags.contains(ChangeFlags::TransformChanged)) { + if (aFlags.contains(ChangeFlag::TransformChanged)) { if (mCanvasTM && mCanvasTM->IsSingular()) { needNewBounds = true; // old bounds are bogus } diff --git a/layout/svg/SVGForeignObjectFrame.h b/layout/svg/SVGForeignObjectFrame.h @@ -62,7 +62,7 @@ class SVGForeignObjectFrame final : public nsContainerFrame, imgDrawingParams& aImgParams) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace, uint32_t aFlags) override; bool IsDisplayContainer() override { return true; } diff --git a/layout/svg/SVGGFrame.cpp b/layout/svg/SVGGFrame.cpp @@ -49,7 +49,7 @@ nsresult SVGGFrame::AttributeChanged(int32_t aNameSpaceID, nsAtom* aAttribute, // Also note that SVGTransformableElement::GetAttributeChangeHint will // return nsChangeHint_UpdateOverflow for "transform" attribute changes // and cause DoApplyRenderingChangeToTree to make the SchedulePaint call. - NotifySVGChanged(ChangeFlags::TransformChanged); + NotifySVGChanged(ChangeFlag::TransformChanged); } return NS_OK; diff --git a/layout/svg/SVGGeometryFrame.cpp b/layout/svg/SVGGeometryFrame.cpp @@ -116,7 +116,7 @@ void SVGGeometryFrame::DidSetComputedStyle(ComputedStyle* aOldComputedStyle) { if (StyleDisplay()->CalcTransformPropertyDifference( *aOldComputedStyle->StyleDisplay())) { - NotifySVGChanged(ChangeFlags::TransformChanged); + NotifySVGChanged(ChangeFlag::TransformChanged); } if (element->IsGeometryChangedViaCSS(*Style(), *aOldComputedStyle) || @@ -310,9 +310,9 @@ void SVGGeometryFrame::ReflowSVG() { } } -void SVGGeometryFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGGeometryFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); // Changes to our ancestors may affect how we render when we are rendered as @@ -328,7 +328,7 @@ void SVGGeometryFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { // overflow rects or not, and we sometimes deliberately include stroke // when it's not visible. See the complexities of GetBBoxContribution. - if (aFlags.contains(ChangeFlags::CoordContextChanged)) { + if (aFlags.contains(ChangeFlag::CoordContextChanged)) { auto* geom = static_cast<SVGGeometryElement*>(GetContent()); // Stroke currently contributes to our mRect, which is why we have to take // account of stroke-width here. Note that we do not need to take account @@ -344,7 +344,7 @@ void SVGGeometryFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { } } - if (aFlags.contains(ChangeFlags::TransformChanged) && + if (aFlags.contains(ChangeFlag::TransformChanged) && StyleSVGReset()->HasNonScalingStroke()) { // Stroke currently contributes to our mRect, and our stroke depends on // the transform to our outer-<svg> if |vector-effect:non-scaling-stroke|. diff --git a/layout/svg/SVGGeometryFrame.h b/layout/svg/SVGGeometryFrame.h @@ -92,7 +92,7 @@ class SVGGeometryFrame final : public nsIFrame, public ISVGDisplayableFrame { imgDrawingParams& aImgParams) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace, uint32_t aFlags) override; bool IsDisplayContainer() override { return false; } diff --git a/layout/svg/SVGImageFrame.cpp b/layout/svg/SVGImageFrame.cpp @@ -826,9 +826,9 @@ bool SVGImageFrame::IgnoreHitTest() const { return true; } -void SVGImageFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGImageFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); } diff --git a/layout/svg/SVGImageFrame.h b/layout/svg/SVGImageFrame.h @@ -63,7 +63,7 @@ class SVGImageFrame final : public nsIFrame, imgDrawingParams& aImgParams) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace, uint32_t aFlags) override; bool IsDisplayContainer() override { return false; } diff --git a/layout/svg/SVGMarkerFrame.cpp b/layout/svg/SVGMarkerFrame.cpp @@ -134,7 +134,7 @@ void SVGMarkerFrame::PaintMark(gfxContext& aContext, ISVGDisplayableFrame* SVGFrame = do_QueryFrame(kid); // The CTM of each frame referencing us may be different. SVGFrame->NotifySVGChanged( - ISVGDisplayableFrame::ChangeFlags::TransformChanged); + ISVGDisplayableFrame::ChangeFlag::TransformChanged); auto contextPaint = MakeRefPtr<SVGContextPaintImpl>(); contextPaint->Init(aContext.GetDrawTarget(), aToMarkedFrameUserSpace * aContext.CurrentMatrixDouble(), diff --git a/layout/svg/SVGMaskFrame.cpp b/layout/svg/SVGMaskFrame.cpp @@ -90,7 +90,7 @@ already_AddRefed<SourceSurface> SVGMaskFrame::GetMaskForMaskedFrame( ISVGDisplayableFrame* SVGFrame = do_QueryFrame(kid); if (SVGFrame) { SVGFrame->NotifySVGChanged( - ISVGDisplayableFrame::ChangeFlags::TransformChanged); + ISVGDisplayableFrame::ChangeFlag::TransformChanged); m = SVGUtils::GetTransformMatrixInUserSpace(kid) * m; } diff --git a/layout/svg/SVGOuterSVGFrame.cpp b/layout/svg/SVGOuterSVGFrame.cpp @@ -374,7 +374,7 @@ void SVGOuterSVGFrame::Reflow(nsPresContext* aPresContext, nsPresContext::AppUnitsToFloatCSSPixels(aReflowInput.ComputedWidth()), nsPresContext::AppUnitsToFloatCSSPixels(aReflowInput.ComputedHeight())); - EnumSet<ChangeFlags> changeBits; + ChangeFlags changeBits; if (newViewportSize != svgElem->GetViewportSize()) { // When our viewport size changes, we may need to update the overflow rects // of our child frames. This is the case if: @@ -403,14 +403,14 @@ void SVGOuterSVGFrame::Reflow(nsPresContext* aPresContext, child->MarkSubtreeDirty(); } } - changeBits += ChangeFlags::CoordContextChanged; + changeBits += ChangeFlag::CoordContextChanged; svgElem->SetViewportSize(newViewportSize); } if (mIsRootContent && !mIsInIframe) { const auto oldZoom = mFullZoom; mFullZoom = ComputeFullZoom(); if (oldZoom != mFullZoom) { - changeBits += ChangeFlags::FullZoomChanged; + changeBits += ChangeFlag::FullZoomChanged; } } if (!changeBits.isEmpty() && !HasAnyStateBits(NS_FRAME_FIRST_REFLOW)) { @@ -513,9 +513,9 @@ nsresult SVGOuterSVGFrame::AttributeChanged(int32_t aNameSpaceID, SVGUtils::NotifyChildrenOfSVGChange( PrincipalChildList().FirstChild(), aAttribute == nsGkAtoms::viewBox - ? EnumSet<ChangeFlags>(ChangeFlags::TransformChanged, - ChangeFlags::CoordContextChanged) - : ChangeFlags::TransformChanged); + ? ChangeFlags(ChangeFlag::TransformChanged, + ChangeFlag::CoordContextChanged) + : ChangeFlag::TransformChanged); if (aAttribute != nsGkAtoms::transform) { static_cast<SVGSVGElement*>(GetContent()) @@ -578,39 +578,38 @@ void SVGOuterSVGFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, //---------------------------------------------------------------------- // ISVGSVGFrame methods: -void SVGOuterSVGFrame::NotifyViewportOrTransformChanged( - EnumSet<ChangeFlags> aFlags) { +void SVGOuterSVGFrame::NotifyViewportOrTransformChanged(ChangeFlags aFlags) { auto* content = static_cast<SVGSVGElement*>(GetContent()); - if (aFlags.contains(ChangeFlags::CoordContextChanged)) { + if (aFlags.contains(ChangeFlag::CoordContextChanged)) { if (content->HasViewBox()) { // Percentage lengths on children resolve against the viewBox rect so we // don't need to notify them of the viewport change, but the viewBox // transform will have changed, so we need to notify them of that instead. - aFlags = ChangeFlags::TransformChanged; + aFlags = ChangeFlag::TransformChanged; } else if (content->ShouldSynthesizeViewBox()) { // In the case of a synthesized viewBox, the synthetic viewBox's rect // changes as the viewport changes. As a result we need to maintain the // COORD_CONTEXT_CHANGED flag. - aFlags += ChangeFlags::TransformChanged; + aFlags += ChangeFlag::TransformChanged; } else if (mCanvasTM && mCanvasTM->IsSingular()) { // A width/height of zero will result in us having a singular mCanvasTM // even when we don't have a viewBox. So we also want to recompute our // mCanvasTM for this width/height change even though we don't have a // viewBox. - aFlags += ChangeFlags::TransformChanged; + aFlags += ChangeFlag::TransformChanged; } } bool haveNonFullZoomTransformChange = - aFlags.contains(ChangeFlags::TransformChanged); + aFlags.contains(ChangeFlag::TransformChanged); - if (aFlags.contains(ChangeFlags::FullZoomChanged)) { + if (aFlags.contains(ChangeFlag::FullZoomChanged)) { // Convert FullZoomChanged to TransformChanged. - aFlags -= ChangeFlags::FullZoomChanged; - aFlags += ChangeFlags::TransformChanged; + aFlags -= ChangeFlag::FullZoomChanged; + aFlags += ChangeFlag::TransformChanged; } - if (aFlags.contains(ChangeFlags::TransformChanged)) { + if (aFlags.contains(ChangeFlag::TransformChanged)) { // Make sure our canvas transform matrix gets (lazily) recalculated: mCanvasTM = nullptr; diff --git a/layout/svg/SVGOuterSVGFrame.h b/layout/svg/SVGOuterSVGFrame.h @@ -99,7 +99,7 @@ class SVGOuterSVGFrame final : public SVGDisplayContainerFrame, void AppendDirectlyOwnedAnonBoxes(nsTArray<OwnedAnonBox>& aResult) override; // ISVGSVGFrame interface: - void NotifyViewportOrTransformChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifyViewportOrTransformChanged(ChangeFlags aFlags) override; // ISVGDisplayableFrame methods: void PaintSVG(gfxContext& aContext, const gfxMatrix& aTransform, diff --git a/layout/svg/SVGPatternFrame.cpp b/layout/svg/SVGPatternFrame.cpp @@ -240,7 +240,7 @@ void SVGPatternFrame::PaintChildren(DrawTarget* aDrawTarget, ISVGDisplayableFrame* SVGFrame = do_QueryFrame(kid); if (SVGFrame) { SVGFrame->NotifySVGChanged( - ISVGDisplayableFrame::ChangeFlags::TransformChanged); + ISVGDisplayableFrame::ChangeFlag::TransformChanged); tm = SVGUtils::GetTransformMatrixInUserSpace(kid) * tm; } diff --git a/layout/svg/SVGTextFrame.cpp b/layout/svg/SVGTextFrame.cpp @@ -3053,19 +3053,19 @@ void SVGTextFrame::FindCloserFrameForSelection( //---------------------------------------------------------------------- // ISVGDisplayableFrame methods -void SVGTextFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGTextFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); bool needNewBounds = false; bool needGlyphMetricsUpdate = false; - if (aFlags.contains(ChangeFlags::CoordContextChanged) && + if (aFlags.contains(ChangeFlag::CoordContextChanged) && HasAnyStateBits(NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES)) { needGlyphMetricsUpdate = true; } - if (aFlags.contains(ChangeFlags::TransformChanged)) { + if (aFlags.contains(ChangeFlag::TransformChanged)) { if (mCanvasTM && mCanvasTM->IsSingular()) { // We won't have calculated the glyph positions correctly. needNewBounds = true; diff --git a/layout/svg/SVGTextFrame.h b/layout/svg/SVGTextFrame.h @@ -226,7 +226,7 @@ class SVGTextFrame final : public SVGDisplayContainerFrame { const nsPoint& aPoint, FrameWithDistance* aCurrentBestFrame) override; // ISVGDisplayableFrame interface: - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; void PaintSVG(gfxContext& aContext, const gfxMatrix& aTransform, imgDrawingParams& aImgParams) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; diff --git a/layout/svg/SVGUseFrame.cpp b/layout/svg/SVGUseFrame.cpp @@ -55,7 +55,7 @@ void SVGUseFrame::DidSetComputedStyle(ComputedStyle* aOldComputedStyle) { // make sure our cached transform matrix gets (lazily) updated mCanvasTM = nullptr; SVGUtils::ScheduleReflowSVG(this); - SVGUtils::NotifyChildrenOfSVGChange(this, ChangeFlags::TransformChanged); + SVGUtils::NotifyChildrenOfSVGChange(this, ChangeFlag::TransformChanged); } } @@ -105,13 +105,13 @@ void SVGUseFrame::ReflowSVG() { SVGGFrame::ReflowSVG(); } -void SVGUseFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - if (aFlags.contains(ChangeFlags::CoordContextChanged) && - !aFlags.contains(ChangeFlags::TransformChanged)) { +void SVGUseFrame::NotifySVGChanged(ChangeFlags aFlags) { + if (aFlags.contains(ChangeFlag::CoordContextChanged) && + !aFlags.contains(ChangeFlag::TransformChanged)) { // Coordinate context changes affect mCanvasTM if we have a // percentage 'x' or 'y' if (StyleSVGReset()->mX.HasPercent() || StyleSVGReset()->mY.HasPercent()) { - aFlags += ChangeFlags::TransformChanged; + aFlags += ChangeFlag::TransformChanged; // Ancestor changes can't affect how we render from the perspective of // any rendering observers that we may have, so we don't need to // invalidate them. We also don't need to invalidate ourself, since our diff --git a/layout/svg/SVGUseFrame.h b/layout/svg/SVGUseFrame.h @@ -51,7 +51,7 @@ class SVGUseFrame final : public SVGGFrame { // ISVGDisplayableFrame interface: void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; private: bool mHasValidDimensions; diff --git a/layout/svg/SVGUtils.cpp b/layout/svg/SVGUtils.cpp @@ -361,7 +361,7 @@ bool SVGUtils::GetParentSVGTransforms(const nsIFrame* aFrame, } void SVGUtils::NotifyChildrenOfSVGChange( - nsIFrame* aFrame, EnumSet<ISVGDisplayableFrame::ChangeFlags> aFlags) { + nsIFrame* aFrame, ISVGDisplayableFrame::ChangeFlags aFlags) { for (nsIFrame* kid : aFrame->PrincipalChildList()) { ISVGDisplayableFrame* SVGFrame = do_QueryFrame(kid); if (SVGFrame) { diff --git a/layout/svg/SVGUtils.h b/layout/svg/SVGUtils.h @@ -262,7 +262,7 @@ class SVGUtils final { * that might affect them. */ static void NotifyChildrenOfSVGChange( - nsIFrame* aFrame, EnumSet<ISVGDisplayableFrame::ChangeFlags> aFlags); + nsIFrame* aFrame, ISVGDisplayableFrame::ChangeFlags aFlags); /* * Convert a surface size to an integer for use by thebes diff --git a/layout/svg/SVGViewportFrame.cpp b/layout/svg/SVGViewportFrame.cpp @@ -73,12 +73,12 @@ void SVGViewportFrame::ReflowSVG() { SVGDisplayContainerFrame::ReflowSVG(); } -void SVGViewportFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { - MOZ_ASSERT(aFlags.contains(ChangeFlags::TransformChanged) || - aFlags.contains(ChangeFlags::CoordContextChanged), +void SVGViewportFrame::NotifySVGChanged(ChangeFlags aFlags) { + MOZ_ASSERT(aFlags.contains(ChangeFlag::TransformChanged) || + aFlags.contains(ChangeFlag::CoordContextChanged), "Invalidation logic may need adjusting"); - if (aFlags.contains(ChangeFlags::CoordContextChanged)) { + if (aFlags.contains(ChangeFlag::CoordContextChanged)) { SVGViewportElement* svg = static_cast<SVGViewportElement*>(GetContent()); bool xOrYIsPercentage = @@ -102,17 +102,17 @@ void SVGViewportFrame::NotifySVGChanged(EnumSet<ChangeFlags> aFlags) { // percentage 'x' or 'y', or if we have a percentage 'width' or 'height' AND // a 'viewBox'. - if (!aFlags.contains(ChangeFlags::TransformChanged) && + if (!aFlags.contains(ChangeFlag::TransformChanged) && (xOrYIsPercentage || (widthOrHeightIsPercentage && svg->HasViewBox()))) { - aFlags += ChangeFlags::TransformChanged; + aFlags += ChangeFlag::TransformChanged; } if (svg->HasViewBox() || !widthOrHeightIsPercentage) { // Remove COORD_CONTEXT_CHANGED, since we establish the coordinate // context for our descendants and this notification won't change its // dimensions: - aFlags -= ChangeFlags::CoordContextChanged; + aFlags -= ChangeFlag::CoordContextChanged; if (aFlags.isEmpty()) { return; // No notification flags left @@ -181,13 +181,12 @@ nsresult SVGViewportFrame::AttributeChanged(int32_t aNameSpaceID, // make sure our cached transform matrix gets (lazily) updated mCanvasTM = nullptr; content->ChildrenOnlyTransformChanged(); - SVGUtils::NotifyChildrenOfSVGChange(this, - ChangeFlags::TransformChanged); + SVGUtils::NotifyChildrenOfSVGChange(this, ChangeFlag::TransformChanged); } else { - EnumSet<ChangeFlags> flags(ChangeFlags::CoordContextChanged); + ChangeFlags flags(ChangeFlag::CoordContextChanged); if (mCanvasTM && mCanvasTM->IsSingular()) { mCanvasTM = nullptr; - flags += ChangeFlags::TransformChanged; + flags += ChangeFlag::TransformChanged; } SVGUtils::NotifyChildrenOfSVGChange(this, flags); } @@ -200,9 +199,9 @@ nsresult SVGViewportFrame::AttributeChanged(int32_t aNameSpaceID, SVGUtils::NotifyChildrenOfSVGChange( this, aAttribute == nsGkAtoms::viewBox - ? EnumSet<ChangeFlags>(ChangeFlags::TransformChanged, - ChangeFlags::CoordContextChanged) - : ChangeFlags::TransformChanged); + ? ChangeFlags(ChangeFlag::TransformChanged, + ChangeFlag::CoordContextChanged) + : ChangeFlag::TransformChanged); if (aAttribute == nsGkAtoms::x || aAttribute == nsGkAtoms::y) { nsLayoutUtils::PostRestyleEvent( @@ -232,8 +231,7 @@ nsIFrame* SVGViewportFrame::GetFrameForPoint(const gfxPoint& aPoint) { //---------------------------------------------------------------------- // ISVGSVGFrame methods: -void SVGViewportFrame::NotifyViewportOrTransformChanged( - EnumSet<ChangeFlags> aFlags) { +void SVGViewportFrame::NotifyViewportOrTransformChanged(ChangeFlags aFlags) { // The dimensions of inner-<svg> frames are purely defined by their "width" // and "height" attributes, and transform changes can only occur as a result // of changes to their "width", "height", "viewBox" or "preserveAspectRatio" diff --git a/layout/svg/SVGViewportFrame.h b/layout/svg/SVGViewportFrame.h @@ -33,7 +33,7 @@ class SVGViewportFrame : public SVGDisplayContainerFrame, public ISVGSVGFrame { void PaintSVG(gfxContext& aContext, const gfxMatrix& aTransform, imgDrawingParams& aImgParams) override; void ReflowSVG() override; - void NotifySVGChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifySVGChanged(ChangeFlags aFlags) override; SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace, uint32_t aFlags) override; nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override; @@ -42,7 +42,7 @@ class SVGViewportFrame : public SVGDisplayContainerFrame, public ISVGSVGFrame { bool HasChildrenOnlyTransform(Matrix* aTransform) const override; // ISVGSVGFrame interface: - void NotifyViewportOrTransformChanged(EnumSet<ChangeFlags> aFlags) override; + void NotifyViewportOrTransformChanged(ChangeFlags aFlags) override; }; } // namespace mozilla