diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp
index 412a70b46749..e7ea5557235f 100644
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -8437,6 +8437,12 @@ static bool ShouldRecreateContainerForNativeAnonymousContentRoot(
return false;
}
if (auto* el = Element::FromNode(aContent)) {
+ if (el->GetPseudoElementType() ==
+ PseudoStyleType::mozSnapshotContainingBlock) {
+ // Much like above, all abspos and on its own top layer so insertion order
+ // wouldn't really matter anyways.
+ return false;
+ }
if (auto* classes = el->GetClasses()) {
if (classes->Contains(nsGkAtoms::mozCustomContentContainer,
eCaseMatters)) {
diff --git a/testing/web-platform/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html b/testing/web-platform/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html
new file mode 100644
index 000000000000..bff9a1629a1c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html
@@ -0,0 +1,14 @@
+
+
+
+
+