"ASSERTION: no pseudo elements in undisplayed map" with colgroup:before

RESOLVED FIXED

Status

()

RESOLVED FIXED
10 years ago
10 years ago

People

(Reporter: jruderman, Assigned: bzbarsky)

Tracking

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

Trunk
x86
Mac OS X
assertion, testcase
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

10 years ago
Created attachment 376521 [details]
testcase

###!!! ASSERTION: no pseudo elements in undisplayed map: 'Not Reached', file /Users/jruderman/central/layout/base/nsFrameManager.cpp, line 1303
(Assignee)

Comment 1

10 years ago
Hmm.  This is similar to bug 492112, but the assertion here seems a lot more reasonable...  I'll think about how to fix.
Blocks: 490173
(Assignee)

Updated

10 years ago
Flags: blocking1.9.2?
(Assignee)

Comment 2

10 years ago
Most simply would be to not put the content for items with mIsGeneratedContent true into the undisplayed map.  Or to not do so for cases when the style context of the item has a pseudo, maybe.
(Assignee)

Comment 3

10 years ago
Patch coming up that also fixes bug 492112 and bug 483604.
Blocks: 492112, 483604
(Assignee)

Comment 4

10 years ago
Created attachment 377319 [details] [diff] [review]
Proposed fix
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #377319 - Flags: superreview?(dbaron)
Attachment #377319 - Flags: review?(dbaron)
Did you look up the CVS history for why there was the mozNonElement check there?
(Assignee)

Comment 6

10 years ago
The relevant CVS checkin comment is:

Fix 2 cases where ReResolveStyleContext was broken, causing serious problems with dynamic style reresolution. Change nsIFrame::GetStyleContextProvider to GetParentStyleContextFrame, always use its result rather than using the parent frame in some cases, and move a bit of the complexity into the GetParentStyleContextFrame implementations. Fix block-within-inline case (bug 129350) using a special-previous-sibling frame property and ensuring that NS_FRAME_IS_SPECIAL is copied when frames are split. Fix out-of-flow frame case (bug 88154) by going to the placeholder map and by parenting the placeholder frame style contexts to the style context from their frame parent rather than the out-of-flow frame. b=129350 r=attinasi sr=hyatt a=asa

This is rev 1.110 of nsFrameManager.cpp.

But fundamentally, as long as the non-element styles can't be display:none while the parent content is not display:none, we just can't end up with non-elements in the undisplayed content map...  I think the code was there by analogy with the other place in ReResolveStyleContext, where we look at child frames and reresolve them; there of course we do need to deal with the non-element case.
(Assignee)

Comment 8

10 years ago
Pushed http://hg.mozilla.org/mozilla-central/rev/ae03e9085759 with a crashtest.
Status: ASSIGNED → RESOLVED
Last Resolved: 10 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Flags: blocking1.9.2?
You need to log in before you can comment on or make changes to this bug.