@@ -506,8 +506,7 @@ static nscoord OffsetToAlignedStaticPos(
506506 const ReflowInput& aKidReflowInput, const LogicalSize& aKidSizeInAbsPosCBWM,
507507 const LogicalSize& aAbsPosCBSize,
508508 const nsContainerFrame* aPlaceholderContainer, WritingMode aAbsPosCBWM,
509- LogicalAxis aAbsPosCBAxis, Maybe<NonAutoAlignParams> aNonAutoAlignParams,
510- const StylePositionArea& aPositionArea) {
509+ LogicalAxis aAbsPosCBAxis, Maybe<NonAutoAlignParams> aNonAutoAlignParams) {
511510 if (!aPlaceholderContainer) {
512511 // (The placeholder container should be the thing that kicks this whole
513512 // process off, by setting PLACEHOLDER_STATICPOS_NEEDS_CSSALIGN. So it
@@ -527,7 +526,6 @@ static nscoord OffsetToAlignedStaticPos(
527526 // WritingMode. For brevity, we use the abbreviation "pc" for "placeholder
528527 // container" in variables below.
529528 WritingMode pcWM = aPlaceholderContainer->GetWritingMode ();
530- LogicalSize absPosCBSizeInPCWM = aAbsPosCBSize.ConvertTo (pcWM, aAbsPosCBWM);
531529
532530 // Find what axis aAbsPosCBAxis corresponds to, in placeholder's parent's
533531 // writing-mode.
@@ -611,7 +609,7 @@ static nscoord OffsetToAlignedStaticPos(
611609 aNonAutoAlignParams
612610 ? aPlaceholderContainer
613611 ->CSSAlignmentForAbsPosChildWithinContainingBlock (
614- aKidReflowInput, pcAxis, aPositionArea, absPosCBSizeInPCWM )
612+ aKidReflowInput, pcAxis)
615613 : aPlaceholderContainer->CSSAlignmentForAbsPosChild (aKidReflowInput,
616614 pcAxis);
617615 // If the safe bit in alignConst is set, set the safe flag in |flags|.
@@ -712,7 +710,7 @@ static nscoord OffsetToAlignedStaticPos(
712710void AbsoluteContainingBlock::ResolveSizeDependentOffsets (
713711 ReflowInput& aKidReflowInput, const LogicalSize& aLogicalCBSize,
714712 const LogicalSize& aKidSize, const LogicalMargin& aMargin,
715- const StylePositionArea& aResolvedPositionArea, LogicalMargin& aOffsets) {
713+ LogicalMargin& aOffsets) {
716714 WritingMode wm = aKidReflowInput.GetWritingMode ();
717715 WritingMode outerWM = aKidReflowInput.mParentReflowInput ->GetWritingMode ();
718716
@@ -747,7 +745,7 @@ void AbsoluteContainingBlock::ResolveSizeDependentOffsets(
747745 placeholderContainer = GetPlaceholderContainer (aKidReflowInput.mFrame );
748746 nscoord offset = OffsetToAlignedStaticPos (
749747 aKidReflowInput, aKidSize, logicalCBSizeOuterWM, placeholderContainer,
750- outerWM, LogicalAxis::Inline, Nothing{}, aResolvedPositionArea );
748+ outerWM, LogicalAxis::Inline, Nothing{});
751749 // Shift IStart from its current position (at start corner of the
752750 // alignment container) by the returned offset. And set IEnd to the
753751 // distance between the kid's end edge to containing block's end edge.
@@ -767,7 +765,7 @@ void AbsoluteContainingBlock::ResolveSizeDependentOffsets(
767765 }
768766 nscoord offset = OffsetToAlignedStaticPos (
769767 aKidReflowInput, aKidSize, logicalCBSizeOuterWM, placeholderContainer,
770- outerWM, LogicalAxis::Block, Nothing{}, aResolvedPositionArea );
768+ outerWM, LogicalAxis::Block, Nothing{});
771769 // Shift BStart from its current position (at start corner of the
772770 // alignment container) by the returned offset. And set BEnd to the
773771 // distance between the kid's end edge to containing block's end edge.
@@ -957,14 +955,13 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
957955
958956 do {
959957 AutoFallbackStyleSetter fallback (aKidFrame, currentFallbackStyle);
960- auto positionArea = aKidFrame->StylePosition ()->mPositionArea ;
961- StylePositionArea resolvedPositionArea;
962958 const nsRect usedCb = [&] {
963959 if (isGrid) {
964960 // TODO(emilio): how does position-area interact with grid?
965961 return nsGridContainerFrame::GridItemCB (aKidFrame);
966962 }
967963
964+ auto positionArea = aKidFrame->StylePosition ()->mPositionArea ;
968965 if (currentFallback && currentFallback->IsPositionArea ()) {
969966 MOZ_ASSERT (currentFallback->IsPositionArea ());
970967 positionArea = currentFallback->AsPositionArea ();
@@ -978,8 +975,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
978975 AdjustAbsoluteContainingBlockRectForPositionArea (
979976 *defaultAnchorInfo.mRect , aOriginalContainingBlockRect,
980977 aKidFrame->GetWritingMode (),
981- aDelegatingFrame->GetWritingMode (), positionArea,
982- &resolvedPositionArea);
978+ aDelegatingFrame->GetWritingMode (), positionArea);
983979 }
984980 }
985981
@@ -1100,7 +1096,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
11001096 // If we're solving for start in either inline or block direction,
11011097 // then compute it now that we know the dimensions.
11021098 ResolveSizeDependentOffsets (kidReflowInput, logicalCBSize, kidSize,
1103- margin, resolvedPositionArea, offsets);
1099+ margin, offsets);
11041100
11051101 if (kidReflowInput.mFlags .mDeferAutoMarginComputation ) {
11061102 ResolveAutoMarginsAfterLayout (kidReflowInput, logicalCBSize, kidSize,
@@ -1112,12 +1108,10 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
11121108 // to align the child by its margin box:
11131109 // https://drafts.csswg.org/css-position-3/#abspos-layout
11141110 const auto * stylePos = aKidFrame->StylePosition ();
1115- const LogicalSize logicalCBSizeOuterWM (outerWM, usedCb.Size ());
11161111 const auto anchorResolutionParams =
1117- AnchorPosOffsetResolutionParams::ExplicitCBFrameSize (
1112+ AnchorPosOffsetResolutionParams::UseCBFrameSize (
11181113 AnchorPosResolutionParams::From (aKidFrame,
1119- aAnchorPosReferenceData),
1120- &logicalCBSizeOuterWM);
1114+ aAnchorPosReferenceData));
11211115 const bool iInsetAuto =
11221116 stylePos
11231117 ->GetAnchorResolvedInset (LogicalSide::IStart, outerWM,
@@ -1136,6 +1130,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
11361130 ->GetAnchorResolvedInset (LogicalSide::BEnd, outerWM,
11371131 anchorResolutionParams)
11381132 ->IsAuto ();
1133+ const LogicalSize logicalCBSizeOuterWM (outerWM, usedCb.Size ());
11391134 const LogicalSize kidMarginBox{
11401135 outerWM, margin.IStartEnd (outerWM) + kidSize.ISize (outerWM),
11411136 margin.BStartEnd (outerWM) + kidSize.BSize (outerWM)};
@@ -1153,8 +1148,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
11531148 Some (NonAutoAlignParams{
11541149 offsets.IStart (outerWM),
11551150 offsets.IEnd (outerWM),
1156- }),
1157- resolvedPositionArea);
1151+ }));
11581152
11591153 offsets.IStart (outerWM) += alignOffset;
11601154 offsets.IEnd (outerWM) =
@@ -1171,8 +1165,7 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
11711165 Some (NonAutoAlignParams{
11721166 offsets.BStart (outerWM),
11731167 offsets.BEnd (outerWM),
1174- }),
1175- resolvedPositionArea);
1168+ }));
11761169 offsets.BStart (outerWM) += alignOffset;
11771170 offsets.BEnd (outerWM) =
11781171 logicalCBSizeOuterWM.BSize (outerWM) -
0 commit comments