tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit b3002681350a454c95875f97bc251c1352ddb2e2
parent 335bb7cb7af40cb6f3fefbe7f36327f8b97b56e5
Author: Daniel Holbert <dholbert@cs.stanford.edu>
Date:   Fri,  5 Dec 2025 07:05:33 +0000

Bug 2004170: Flip the logic ordering in AnchorResolved{...}Helper::FromUnresolved() methods. r=TYLin

This doesn't change behavior at all; it just makes these functions easier to
extend in the future.

Differential Revision: https://phabricator.services.mozilla.com/D275149

Diffstat:
Mlayout/style/nsStyleStruct.h | 45+++++++++++++++++++++++----------------------
1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h @@ -415,10 +415,10 @@ struct AnchorResolvedMarginHelper { static AnchorResolvedMargin FromUnresolved( const mozilla::StyleMargin& aValue, mozilla::StylePhysicalAxis aAxis, const AnchorPosResolutionParams& aParams) { - if (!aValue.HasAnchorPositioningFunction()) { - return AnchorResolvedMargin::NonOwning(&aValue); + if (aValue.HasAnchorPositioningFunction()) { + return ResolveAnchor(aValue, aAxis, aParams); } - return ResolveAnchor(aValue, aAxis, aParams); + return AnchorResolvedMargin::NonOwning(&aValue); } private: @@ -776,20 +776,21 @@ struct AnchorResolvedInsetHelper { static AnchorResolvedInset FromUnresolved( const mozilla::StyleInset& aValue, mozilla::Side aSide, const AnchorPosOffsetResolutionParams& aParams) { - if (!aValue.HasAnchorPositioningFunction()) { - // If `position-area` is used "Any auto inset properties resolve to 0": - // https://drafts.csswg.org/css-anchor-position-1/#valdef-position-area-position-area - // If `anchor-center` is used with a valid anchor, "auto inset - // properties resolve to 0": - // https://drafts.csswg.org/css-anchor-position-1/#anchor-center - if (aValue.IsAuto() && (!aParams.mBaseParams.mPositionArea.IsNone() || - SideUsesAnchorCenter(aSide, aParams))) { - return AnchorResolvedInset::UniquelyOwning( - new mozilla::StyleInset(mozilla::LengthPercentage::Zero())); - } - return AnchorResolvedInset::NonOwning(&aValue); + if (aValue.HasAnchorPositioningFunction()) { + return ResolveAnchor(aValue, mozilla::ToStylePhysicalSide(aSide), + aParams); + } + // If `position-area` is used "Any auto inset properties resolve to 0": + // https://drafts.csswg.org/css-anchor-position-1/#valdef-position-area-position-area + // If `anchor-center` is used with a valid anchor, "auto inset + // properties resolve to 0": + // https://drafts.csswg.org/css-anchor-position-1/#anchor-center + if (aValue.IsAuto() && (!aParams.mBaseParams.mPositionArea.IsNone() || + SideUsesAnchorCenter(aSide, aParams))) { + return AnchorResolvedInset::UniquelyOwning( + new mozilla::StyleInset(mozilla::LengthPercentage::Zero())); } - return ResolveAnchor(aValue, mozilla::ToStylePhysicalSide(aSide), aParams); + return AnchorResolvedInset::NonOwning(&aValue); } private: @@ -828,10 +829,10 @@ struct AnchorResolvedSizeHelper { static AnchorResolvedSize FromUnresolved( const mozilla::StyleSize& aValue, mozilla::StylePhysicalAxis aAxis, const AnchorPosResolutionParams& aParams) { - if (!aValue.HasAnchorPositioningFunction()) { - return AnchorResolvedSize::NonOwning(&aValue); + if (aValue.HasAnchorPositioningFunction()) { + return ResolveAnchor(aValue, aAxis, aParams); } - return ResolveAnchor(aValue, aAxis, aParams); + return AnchorResolvedSize::NonOwning(&aValue); } static AnchorResolvedSize Overridden(const mozilla::StyleSize& aSize) { @@ -878,10 +879,10 @@ struct AnchorResolvedMaxSizeHelper { static AnchorResolvedMaxSize FromUnresolved( const mozilla::StyleMaxSize& aValue, mozilla::StylePhysicalAxis aAxis, const AnchorPosResolutionParams& aParams) { - if (!aValue.HasAnchorPositioningFunction()) { - return AnchorResolvedMaxSize::NonOwning(&aValue); + if (aValue.HasAnchorPositioningFunction()) { + return ResolveAnchor(aValue, aAxis, aParams); } - return ResolveAnchor(aValue, aAxis, aParams); + return AnchorResolvedMaxSize::NonOwning(&aValue); } static AnchorResolvedMaxSize MaxContent() { return AnchorResolvedMaxSize::NonOwning(&MaxContentValue());