commit 5f8128535c83d8a45d862cfe1fc1c484ea183c45
parent 2cc0a3813d2ca3948b90744a8111b8f36cff0b19
Author: longsonr <longsonr@gmail.com>
Date: Fri, 9 Jan 2026 13:46:35 +0000
Bug 2009035 - Convert ChildrenOnlyTransformChangedFlags to an enum class r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D278195
Diffstat:
3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/dom/svg/SVGViewportElement.cpp b/dom/svg/SVGViewportElement.cpp
@@ -115,7 +115,8 @@ void SVGViewportElement::UpdateHasChildrenOnlyTransform() {
static_cast<SVGSVGElement*>(this)->IsScaledOrTranslated());
}
-void SVGViewportElement::ChildrenOnlyTransformChanged(uint32_t aFlags) {
+void SVGViewportElement::ChildrenOnlyTransformChanged(
+ ChildrenOnlyTransformChangedFlags aFlags) {
// Avoid wasteful calls:
MOZ_ASSERT(!GetPrimaryFrame()->HasAnyStateBits(NS_FRAME_IS_NONDISPLAY),
"Non-display SVG frames don't maintain overflow rects");
@@ -142,7 +143,7 @@ void SVGViewportElement::ChildrenOnlyTransformChanged(uint32_t aFlags) {
// is being reflowed we're going to invalidate and repaint its entire area
// anyway (which will include our children).
if ((changeHint & nsChangeHint_ReconstructFrame) ||
- !(aFlags & eDuringReflow)) {
+ !aFlags.contains(ChildrenOnlyTransformChangedFlag::DuringReflow)) {
nsLayoutUtils::PostRestyleEvent(this, RestyleHint{0}, changeHint);
}
}
diff --git a/dom/svg/SVGViewportElement.h b/dom/svg/SVGViewportElement.h
@@ -82,7 +82,10 @@ class SVGViewportElement : public SVGGraphicsElement {
void UpdateHasChildrenOnlyTransform();
- enum ChildrenOnlyTransformChangedFlags { eDuringReflow = 1 };
+ enum class ChildrenOnlyTransformChangedFlag { DuringReflow };
+
+ using ChildrenOnlyTransformChangedFlags =
+ EnumSet<ChildrenOnlyTransformChangedFlag>;
/**
* This method notifies the style system that the overflow rects of our
@@ -94,7 +97,8 @@ class SVGViewportElement : public SVGGraphicsElement {
* GetAttributeChangeHint is because we need to act on non-attribute (e.g.
* currentScale) changes in addition to attribute (e.g. viewBox) changes.
*/
- void ChildrenOnlyTransformChanged(uint32_t aFlags = 0);
+ void ChildrenOnlyTransformChanged(
+ ChildrenOnlyTransformChangedFlags aFlags = {});
gfx::Matrix GetViewBoxTransform() const;
diff --git a/layout/svg/SVGOuterSVGFrame.cpp b/layout/svg/SVGOuterSVGFrame.cpp
@@ -616,9 +616,11 @@ void SVGOuterSVGFrame::NotifyViewportOrTransformChanged(
if (haveNonFullZoomTransformChange &&
!HasAnyStateBits(NS_FRAME_IS_NONDISPLAY)) {
- uint32_t flags = HasAnyStateBits(NS_FRAME_IN_REFLOW)
- ? SVGSVGElement::eDuringReflow
- : 0;
+ SVGViewportElement::ChildrenOnlyTransformChangedFlags flags;
+ if (HasAnyStateBits(NS_FRAME_IN_REFLOW)) {
+ flags +=
+ SVGViewportElement::ChildrenOnlyTransformChangedFlag::DuringReflow;
+ }
content->ChildrenOnlyTransformChanged(flags);
}
}