Closed Bug 492163 Opened 16 years ago Closed 16 years ago

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

Categories

(Core :: Layout: Tables, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: bzbarsky)

References

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase
###!!! ASSERTION: no pseudo elements in undisplayed map: 'Not Reached', file /Users/jruderman/central/layout/base/nsFrameManager.cpp, line 1303
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
Flags: blocking1.9.2?
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.
Patch coming up that also fixes bug 492112 and bug 483604.
Blocks: 492112, 483604
Attached patch Proposed fixSplinter Review
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?
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.
Attachment #377319 - Flags: superreview?(dbaron)
Attachment #377319 - Flags: superreview+
Attachment #377319 - Flags: review?(dbaron)
Attachment #377319 - Flags: review+
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: