commit 2be2225c3a51a3220829b6401a654a0b23b2d971
parent 26f80e88b6a2f8578f1f42f18b44233e9e1bfd6a
Author: Botond Ballo <botond@mozilla.com>
Date: Thu, 13 Nov 2025 04:59:05 +0000
Bug 1730749 - Share a sticky ASR between continuations of a sticky element. r=layout-reviewers,emilio
This is needed to avoid upsetting the assumptions made by the code to
track container ASRs. Without this, layout/base/crashtests/1464641.html
triggers the assertion in the PickAncestor() call in
SetCurrentActiveScrolledRoot().
Differential Revision: https://phabricator.services.mozilla.com/D264157
Diffstat:
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/layout/painting/nsDisplayList.cpp b/layout/painting/nsDisplayList.cpp
@@ -192,6 +192,8 @@ already_AddRefed<ActiveScrolledRoot> ActiveScrolledRoot::CreateASRForFrame(
already_AddRefed<ActiveScrolledRoot>
ActiveScrolledRoot::CreateASRForStickyFrame(const ActiveScrolledRoot* aParent,
nsIFrame* aStickyFrame) {
+ aStickyFrame = aStickyFrame->FirstContinuation();
+
RefPtr<ActiveScrolledRoot> asr =
aStickyFrame->GetProperty(StickyActiveScrolledRootCache());