diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 0082c4f2e97d..e4327eeb6520 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -3554,7 +3554,8 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder, } nsIFrame* child = aChild; - if (child->GetStateBits() & NS_FRAME_TOO_DEEP_IN_FRAME_TREE) + if (child->HasAnyStateBits( + NS_FRAME_TOO_DEEP_IN_FRAME_TREE | NS_FRAME_IS_NONDISPLAY)) return; aBuilder->ClearWillChangeBudget(child); diff --git a/layout/svg/crashtests/1422226.html b/layout/svg/crashtests/1422226.html new file mode 100644 index 000000000000..5826e60b697e --- /dev/null +++ b/layout/svg/crashtests/1422226.html @@ -0,0 +1,39 @@ + + + + + + + + + + + + + diff --git a/layout/svg/crashtests/crashtests.list b/layout/svg/crashtests/crashtests.list index 3d9e7fa1daaf..04489f2dd3cd 100644 --- a/layout/svg/crashtests/crashtests.list +++ b/layout/svg/crashtests/crashtests.list @@ -204,6 +204,7 @@ load 1348564.svg load 1402109.html load 1402124.html load 1402486.html +load 1422226.html load conditional-outer-svg-nondirty-reflow-assert.xhtml load extref-test-1.xhtml load blob-merging-and-retained-display-list.html