Last Comment Bug 667010 - "ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>
: "ASSERTION: unexpected block frame" with text-overflow: ellipsis, <fieldset>
Status: RESOLVED FIXED
[inbound]
: assertion, regression, testcase
Product: Core
Classification: Components
Component: Layout (show other bugs)
: Trunk
: All All
: -- normal (vote)
: mozilla7
Assigned To: Mats Palmgren (:mats)
:
: Jet Villegas (:jet)
Mentors:
Depends on:
Blocks: randomstyles 312156
  Show dependency treegraph
 
Reported: 2011-06-24 12:09 PDT by Jesse Ruderman
Modified: 2011-07-04 14:20 PDT (History)
8 users (show)
mats: in‑testsuite+
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
testcase (151 bytes, text/html)
2011-06-24 12:09 PDT, Jesse Ruderman
no flags Details
stack trace (5.75 KB, text/plain)
2011-06-24 12:12 PDT, Jesse Ruderman
no flags Details
Frame dump (6.08 KB, text/html)
2011-06-24 13:02 PDT, Mats Palmgren (:mats)
no flags Details
fix (1.28 KB, patch)
2011-06-24 13:27 PDT, Mats Palmgren (:mats)
no flags Details | Diff | Splinter Review
regression test (1.30 KB, patch)
2011-06-24 13:36 PDT, Mats Palmgren (:mats)
no flags Details | Diff | Splinter Review
fix + reftest, rev. 2 (9.97 KB, patch)
2011-07-03 11:36 PDT, Mats Palmgren (:mats)
roc: review+
Details | Diff | Splinter Review

Description Jesse Ruderman 2011-06-24 12:09:19 PDT
Created attachment 541751 [details]
testcase
Comment 1 Jesse Ruderman 2011-06-24 12:12:46 PDT
Created attachment 541755 [details]
stack trace
Comment 2 Jesse Ruderman 2011-06-24 12:13:16 PDT
###!!! ASSERTION: unexpected block frame: '!aFrame->GetStyleDisplay()->IsBlockOutside()', file layout/generic/TextOverflow.cpp, line 88
Comment 3 Mats Palmgren (:mats) 2011-06-24 13:02:18 PDT
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...
Comment 4 Mats Palmgren (:mats) 2011-06-24 13:27:41 PDT
Created attachment 541775 [details] [diff] [review]
fix
Comment 5 Mats Palmgren (:mats) 2011-06-24 13:36:08 PDT
Created attachment 541777 [details] [diff] [review]
regression test
Comment 6 Robert O'Callahan (:roc) (email my personal email if necessary) 2011-06-25 02:53:50 PDT
Hang on, so the line containing the fieldset returns true for IsInline(), but the fieldset returns true for IsBlockOutside? That seems ... wrong.
Comment 7 Robert O'Callahan (:roc) (email my personal email if necessary) 2011-06-25 03:02:41 PDT
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.
Comment 8 Boris Zbarsky [:bz] (still a bit busy) 2011-06-30 14:55:20 PDT
Would it make sense to check it for being a line participant?
Comment 9 Robert O'Callahan (:roc) (email my personal email if necessary) 2011-06-30 21:55:18 PDT
Yes!
Comment 10 Mats Palmgren (:mats) 2011-07-03 11:36:00 PDT
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)
Comment 11 Robert O'Callahan (:roc) (email my personal email if necessary) 2011-07-03 17:56:45 PDT
Comment on attachment 543682 [details] [diff] [review]
fix + reftest, rev. 2

Review of attachment 543682 [details] [diff] [review]:
-----------------------------------------------------------------
Comment 13 Mats Palmgren (:mats) 2011-07-04 01:37:12 PDT
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

Note You need to log in before you can comment on or make changes to this bug.