tor-browser

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

commit a038c8d2a8355610aa4de7daf2af98d77a4fecd2
parent 968a602d3cf2ee54f5b564c53694139d07693789
Author: Cristina Horotan <chorotan@mozilla.com>
Date:   Fri,  9 Jan 2026 19:14:09 +0200

Revert "Bug 2009424 - Make containing block adjustment work for default anchored frames. r=layout-anchor-positioning-reviewers,layout-reviewers,dshin" for causing wpt failures on anchor-scroll-position-try-006.html

This reverts commit d8bd94aa646aa77a24a487be85480a479341d8eb.

Diffstat:
Mlayout/generic/AbsoluteContainingBlock.cpp | 29++++++++++++++---------------
Atesting/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-007.html.ini | 5+++++
2 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/layout/generic/AbsoluteContainingBlock.cpp b/layout/generic/AbsoluteContainingBlock.cpp @@ -1326,7 +1326,6 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( // The current containing block, with ongoing modifications. // Starts as a local containing block. nsRect containingBlock = aOriginalContainingBlockRect; - nsRect scrollableContainingBlock = aOriginalScrollableContainingBlockRect; const auto defaultAnchorInfo = [&]() -> Maybe<AnchorPosInfo> { if (!aAnchorPosResolutionCache) { return Nothing{}; @@ -1342,18 +1341,6 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( containingBlock = aOriginalScrollableContainingBlockRect; } - if (ViewportFrame* viewport = do_QueryFrame(aDelegatingFrame)) { - if (IsSnapshotContainingBlock(aKidFrame)) { - return ContainingBlockRect{ - dom::ViewTransition::SnapshotContainingBlockRect( - viewport->PresContext())}; - } - MOZ_ASSERT(aOriginalScrollableContainingBlockRect == - aOriginalContainingBlockRect); - containingBlock = scrollableContainingBlock = - viewport->GetContainingBlockAdjustedForScrollbars(aReflowInput); - } - // https://drafts.csswg.org/css-position/#original-cb // Handle grid-based adjustment first... if (isGrid) { @@ -1395,12 +1382,24 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( aAnchorPosResolutionCache->mReferenceData->mScrollCompensatedSides = GetScrollCompensatedSidesFor(resolvedPositionArea); return ContainingBlockRect{ - offset, resolvedPositionArea, scrollableContainingBlock, + offset, resolvedPositionArea, + aOriginalScrollableContainingBlockRect, // Unscroll the CB by canceling out the previously applied // scroll offset (See above), the offset will be applied later. scrolledAnchorCb + offset}; } - return ContainingBlockRect{scrollableContainingBlock, containingBlock}; + return ContainingBlockRect{aOriginalScrollableContainingBlockRect, + containingBlock}; + } + + if (ViewportFrame* viewport = do_QueryFrame(aDelegatingFrame)) { + if (!IsSnapshotContainingBlock(aKidFrame)) { + return ContainingBlockRect{ + viewport->GetContainingBlockAdjustedForScrollbars(aReflowInput)}; + } + return ContainingBlockRect{ + dom::ViewTransition::SnapshotContainingBlockRect( + viewport->PresContext())}; } return ContainingBlockRect{containingBlock}; }(); diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-007.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-007.html.ini @@ -0,0 +1,5 @@ +[anchor-scroll-position-try-007.html] + [Should use the third position option with enough space left] + expected: + if os == "android": PASS + FAIL