Open Bug 1247128 Opened 8 years ago Updated 2 years ago

Print-previewing a flex item with page-break-before triggers: "Assertion failure: aFrame1 && aFrame2 (why do we have an anonymous box without any non-anonymous descendants?), at layout/generic/nsFlexContainerFrame.cpp:974

Categories

(Core :: Layout, defect)

defect

Tracking

()

ASSIGNED
Tracking Status
firefox47 --- affected

People

(Reporter: dholbert, Assigned: dholbert)

References

Details

(Keywords: assertion)

Attachments

(1 file)

Attached file testcase 1
STR:
 1. Load the attached testcase in a debug build.
 2. File | Print-preview.

ACTUAL RESULTS:
 - In a debug build: "Assertion failure: aFrame1 && aFrame2 (why do we have an anonymous box without any non-anonymous descendants?), at layout/generic/nsFlexContainerFrame.cpp:974"

This happens *while we're evaluating the NS_ASSERTION condition* in nsFlexContainerFrame::BuildDisplayList (checking "IsFrameListSorted"), because we're not expecting these anonymous frames to be mixed in among our flex items.

Opt builds don't evaluate the NS_ASSERTION in, of course, so they don't hit this.  (But even if they did trigger this codepath via some other way, they'd just crash with a null deref, so nothing too scary should happen.)

Anyway. We should fix this by preventing pagebreak frames in flex containers, like we're doing for grid containers in bug 1144096 part 7.


We could either layer this bug's fix on top of bug 1144096 (as suggested in bug 1144096 comment 26), or we could fix this up-front and having mats rebase bug 1144096 part 7 on top of it.  (If bug 1144096 has more coming, then maybe it'd be good to get this fixed first, though, for robustness against crashes/assertion failures. But if bug 1144096 is landing soon, I'll try to avoid creating rebasing work here.)
Summary: Print-preview a flex item with "page-break-before" triggers "Assertion failure: aFrame1 && aFrame2 (why do we have an anonymous box without any non-anonymous descendants?), at layout/generic/nsFlexContainerFrame.cpp:974 → Print-previewing a flex item with page-break-before triggers: "Assertion failure: aFrame1 && aFrame2 (why do we have an anonymous box without any non-anonymous descendants?), at layout/generic/nsFlexContainerFrame.cpp:974
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: