commit 8f823be747db655aef53348b58ea9de4f36c8834
parent 858a69d18649e870fa3967022e895bf5b8c5ef5c
Author: David Shin <dshin@mozilla.com>
Date: Tue, 16 Dec 2025 20:17:34 +0000
Bug 2006398: Remove check for at least one inset in axis being auto for anchor-center use. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio
Spec [1] doesn't make anchor-center depend on inset values; in fact, it forces
any `auto` inset to 0.
[1]: https://drafts.csswg.org/css-anchor-position-1/#anchor-center
Differential Revision: https://phabricator.services.mozilla.com/D276694
Diffstat:
2 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/layout/generic/ReflowInput.cpp b/layout/generic/ReflowInput.cpp
@@ -82,19 +82,12 @@ void ComputeAnchorCenterUsage(
}
const auto* stylePos = aFrame->StylePosition();
- const auto parentWM = parent->GetWritingMode();
auto checkAxis = [&](LogicalAxis aAxis) {
StyleAlignFlags alignment =
stylePos->UsedSelfAlignment(aAxis, parent->Style());
- if ((alignment & ~StyleAlignFlags::FLAG_BITS) !=
- StyleAlignFlags::ANCHOR_CENTER) {
- return false;
- }
- LogicalSide startSide = MakeLogicalSide(aAxis, LogicalEdge::Start);
- LogicalSide endSide = MakeLogicalSide(aAxis, LogicalEdge::End);
- return stylePos->mOffset.Get(parentWM.PhysicalSide(startSide)).IsAuto() ||
- stylePos->mOffset.Get(parentWM.PhysicalSide(endSide)).IsAuto();
+ return (alignment & ~StyleAlignFlags::FLAG_BITS) ==
+ StyleAlignFlags::ANCHOR_CENTER;
};
aInlineUsesAnchorCenter = checkAxis(LogicalAxis::Inline);
diff --git a/testing/web-platform/meta/css/css-anchor-position/auto-margins-position-area.html.ini b/testing/web-platform/meta/css/css-anchor-position/auto-margins-position-area.html.ini
@@ -1,2 +0,0 @@
-[auto-margins-position-area.html]
- expected: FAIL