tor-browser

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

commit 7b20ce3fa33b12ad9625b0e232aa447294c90761
parent 8cdcc8296e7e243555779297728a29376c1f7816
Author: David Shin <dshin@mozilla.com>
Date:   Mon, 10 Nov 2025 23:41:08 +0000

Bug 1998445: Relax assertion that implying fixed or abspos elements are NS_FRAME_OUT_OF_FLOW. r=layout-reviewers,dholbert

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

Diffstat:
Mlayout/base/AnchorPositioningUtils.cpp | 9++++++---
Atesting/web-platform/tests/css/css-anchor-position/anchor-mathml-crash.html | 11+++++++++++
2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/layout/base/AnchorPositioningUtils.cpp b/layout/base/AnchorPositioningUtils.cpp @@ -496,13 +496,16 @@ Maybe<AnchorPosInfo> AnchorPositioningUtils::ResolveAnchorPosRect( const nsIFrame* aPositioned, const nsIFrame* aAbsoluteContainingBlock, const nsAtom* aAnchorName, bool aCBRectIsvalid, AnchorPosResolutionCache* aResolutionCache) { - MOZ_ASSERT(aPositioned->HasAnyStateBits(NS_FRAME_OUT_OF_FLOW)); - MOZ_ASSERT(aPositioned->GetParent() == aAbsoluteContainingBlock); - if (!aPositioned) { return Nothing{}; } + if (!aPositioned->HasAnyStateBits(NS_FRAME_OUT_OF_FLOW)) { + return Nothing{}; + } + + MOZ_ASSERT(aPositioned->GetParent() == aAbsoluteContainingBlock); + const auto* anchorName = GetUsedAnchorName(aPositioned, aAnchorName); if (!anchorName) { return Nothing{}; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-mathml-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-mathml-crash.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<style> +semantics { + position: fixed; + top: anchor(start); +} +</style> +<script> +const semantics = document.createElementNS("http://www.w3.org/1998/Math/MathML", "semantics"); +document.documentElement.appendChild(semantics); +</script>