"ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>

RESOLVED FIXED in mozilla7

Status

()

Core
Layout
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: Jesse Ruderman, Assigned: Mats Palmgren (vacation - back in August))

Tracking

(Blocks: 1 bug, {assertion, regression, testcase})

Trunk
mozilla7
assertion, regression, testcase
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [inbound])

Attachments

(4 attachments, 2 obsolete attachments)

(Reporter)

Description

6 years ago
Created attachment 541751 [details]
testcase
(Reporter)

Comment 1

6 years ago
Created attachment 541755 [details]
stack trace
(Reporter)

Comment 2

6 years ago
###!!! ASSERTION: unexpected block frame: '!aFrame->GetStyleDisplay()->IsBlockOutside()', file layout/generic/TextOverflow.cpp, line 88
Assignee: nobody → matspal
OS: Mac OS X → All
Hardware: x86 → All
Created attachment 541770 [details]
Frame dump

When text-overflow style on BODY we shouldn't traverse this frame,
so I guess we need to check for blocks after all...
Created attachment 541775 [details] [diff] [review]
fix
Attachment #541775 - Flags: review?(roc)
Created attachment 541777 [details] [diff] [review]
regression test
Hang on, so the line containing the fieldset returns true for IsInline(), but the fieldset returns true for IsBlockOutside? That seems ... wrong.
I see, the fieldset is display:inline, but its anonymous block child is returning true for IsBlockOutside.

I think we should make IsAtomicElement return true for an inline fieldset. I think probably instead of checking mDisplay != NS_STYLE_DISPLAY_INLINE, we should check whether the frame is a subclass of nsInlineFrame.
Would it make sense to check it for being a line participant?
Yes!
Created attachment 543682 [details] [diff] [review]
fix + reftest, rev. 2

Also fixed an unrelated bug:  when a line has overflow (say from a float)
but no inline overflow we shouldn't create a marker... this works fine,
except if there's a placeholder frame outside the block content rect
it would count as overflow and trigger a marker.
(regression from starting to include zero-sized frames in the analysis)
Attachment #541775 - Attachment is obsolete: true
Attachment #541777 - Attachment is obsolete: true
Attachment #543682 - Flags: review?(roc)
Attachment #541775 - Flags: review?(roc)
Comment on attachment 543682 [details] [diff] [review]
fix + reftest, rev. 2

Review of attachment 543682 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #543682 - Flags: review?(roc) → review+
http://hg.mozilla.org/integration/mozilla-inbound/rev/dfdbd34cdad4
Flags: in-testsuite+
Whiteboard: [inbound]
I disabled the test on Android because of R1 orange.  Seems to work fine on
other platforms so I'm not going to worry about it for now.
http://hg.mozilla.org/integration/mozilla-inbound/rev/c8c8aa5f9870
http://hg.mozilla.org/mozilla-central/rev/dfdbd34cdad4
http://hg.mozilla.org/mozilla-central/rev/c8c8aa5f9870
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla7
You need to log in before you can comment on or make changes to this bug.