Open Bug 675552 Opened 13 years ago Updated 2 years ago

"ASSERTION: unexpected block frame" with MathML, text-overflow

Categories

(Core :: Layout: Text and Fonts, defect)

defect

Tracking

()

People

(Reporter: jruderman, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(5 files, 1 obsolete file)

Attached file testcase
###!!! ASSERTION: unexpected block frame: '!nsLayoutUtils::GetAsBlock(aFrame) || !aFrame->GetStyleDisplay()->IsBlockOutside()', file layout/generic/TextOverflow.cpp
There's a couple of assertions leading up to that: ###!!! ASSERTION: How'd we get a floated inline frame? The frame ctor should've dealt with this.: 'aReflowState.mStyleDisplay->mFloats == NS_STYLE_FLOAT_NONE', file layout/generic/nsLineLayout.cpp, line 1092 ###!!! ASSERTION: How'd we get a floated inline frame? The frame ctor should've dealt with this.: 'isText || reflowStateHolder.ref().mStyleDisplay->mFloats == NS_STYLE_FLOAT_NONE', file layout/generic/nsLineLayout.cpp, line 1019
OS: Mac OS X → All
Hardware: x86 → All
Attached file Testcase #2
<math><div/></math> triggers just the "unexpected block frame" assertion and not the float related ones in comment 1.
The float assertions there are bogus when MathML is involved, as things stand....
Hmm, this frame tree looks weird to me, why does the line have "state=inline" and why is there no -moz-mathml-anonymous-block frame?
Attached file Testcase #3
Summary: "ASSERTION: unexpected block frame" with MathML, text-overflow, float → "ASSERTION: unexpected block frame" with MathML, text-overflow
Attached patch fix (obsolete) — Splinter Review
Is the attached frame trees what we want them to be? If so, then we need to ignore block child frames.
Assignee: nobody → matspal
Attachment #549849 - Flags: review?(roc)
The inline math frames containing blocks look wrong to me. Why aren't they being converted to anonymous blocks?
Because 'wrapFrame' is false for the block, so it's added as is to 'newItems': http://mxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp#3779
Yeah, but it seems to me that it would make more sense for inline <math> elements to participate in IB-splitting like other inline elements do.
We could try to do that; would the math frame be able to deal?
Attachment #549849 - Attachment is obsolete: true
Attachment #549849 - Flags: review?(roc)
Testcases #1 & #2 still assert on trunk. Testcase #3 no longer does (at least on linux64).

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: MatsPalmgren_bugz → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: