commit e79fdbf7b43db5428e457a4e675a6b0421054dd2
parent f50fd6ca170f6f8a8c35616df8d306feffd60c5c
Author: Ting-Yu Lin <tlin@mozilla.com>
Date: Tue, 28 Oct 2025 20:17:08 +0000
Bug 1996677 Part 3 - Remove logicalCBSizeOuterWM in ReflowAbsoluteFrame(). r=layout-reviewers,emilio
With the `cbSize` variable introduced in the previous part, we can remove
`logicalCBSizeOuterWM`.
Differential Revision: https://phabricator.services.mozilla.com/D270250
Diffstat:
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/layout/generic/AbsoluteContainingBlock.cpp b/layout/generic/AbsoluteContainingBlock.cpp
@@ -1111,12 +1111,11 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
// to align the child by its margin box:
// https://drafts.csswg.org/css-position-3/#abspos-layout
const auto* stylePos = aKidFrame->StylePosition();
- const LogicalSize logicalCBSizeOuterWM(outerWM, usedCb.Size());
const auto anchorResolutionParams =
AnchorPosOffsetResolutionParams::ExplicitCBFrameSize(
AnchorPosResolutionParams::From(aKidFrame,
aAnchorPosReferenceData),
- &logicalCBSizeOuterWM);
+ &cbSize);
const bool iInsetAuto =
stylePos
->GetAnchorResolvedInset(LogicalSide::IStart, outerWM,
@@ -1147,8 +1146,8 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
"Non-auto inline inset but requires CSS alignment for static "
"position?");
auto alignOffset = OffsetToAlignedStaticPos(
- kidReflowInput, kidMarginBox, logicalCBSizeOuterWM,
- placeholderContainer, outerWM, LogicalAxis::Inline,
+ kidReflowInput, kidMarginBox, cbSize, placeholderContainer, outerWM,
+ LogicalAxis::Inline,
Some(NonAutoAlignParams{
offsets.IStart(outerWM),
offsets.IEnd(outerWM),
@@ -1157,7 +1156,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
offsets.IStart(outerWM) += alignOffset;
offsets.IEnd(outerWM) =
- logicalCBSizeOuterWM.ISize(outerWM) -
+ cbSize.ISize(outerWM) -
(offsets.IStart(outerWM) + kidMarginBox.ISize(outerWM));
}
if (!bInsetAuto) {
@@ -1165,8 +1164,8 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
"Non-auto block inset but requires CSS alignment for static "
"position?");
auto alignOffset = OffsetToAlignedStaticPos(
- kidReflowInput, kidMarginBox, logicalCBSizeOuterWM,
- placeholderContainer, outerWM, LogicalAxis::Block,
+ kidReflowInput, kidMarginBox, cbSize, placeholderContainer, outerWM,
+ LogicalAxis::Block,
Some(NonAutoAlignParams{
offsets.BStart(outerWM),
offsets.BEnd(outerWM),
@@ -1174,7 +1173,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
resolvedPositionArea);
offsets.BStart(outerWM) += alignOffset;
offsets.BEnd(outerWM) =
- logicalCBSizeOuterWM.BSize(outerWM) -
+ cbSize.BSize(outerWM) -
(offsets.BStart(outerWM) + kidMarginBox.BSize(outerWM));
}