Closed Bug 389776 Opened 17 years ago Closed 15 years ago

Dynamic multi-col floats testcase asserts

Categories

(Core :: Layout: Floats, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: fantasai.bugs, Assigned: fantasai.bugs)

References

()

Details

Bringing over the asserts problem from bug 379349. The testcase in the URL hits the "bad prev-in-flow ancestor chain" in nsBlockFrame.cpp.
Probably a duplicate of bug 301844.
No, I don't think so. I'm pretty sure I know what's causing this one, and it's due to the changes I checked in (well, roc checked in) for bug 379349. 
He, yeah, I just realized I filed bug 301844 2005-07-23 not 2007-07-23 ;-)
Testcase #1 from bug 389583 is likely the same as this bug though, since
it didn't have this assertion a week ago or so.
No, bug 389583 was filed before my checkin.
Well, what I meant was the second assertion assertion on that testcase
that turned up a few days ago (bug 389583 comment 9), not the first
assertion that that bug is about.
IIRC, roc ran into that second assertion on my testcase as well. So it's a separate issue.
So, what I think is happening here is: The columns are <body> blockFrames. The float's last continuation placeholder has moved up frome #overflow (which has ended) to <body>. Since <body>'s normal content ends in the first column, this means the intervening <body> frames are all empty. When the pull-up-lines code executes in the first <body> column, it pulls the float's placeholder's line up through the next-in-flows into the first column. Since it's a continuation placeholder, it gets put in the first column's overflow list. Then when DrainOverflowLines executes, it runs the IsProperAncestorFrame check, which fails because this continuation is supposed to be several next-in-flows down the line.
So I see two ways of fixing this. One is to modify the pull-up code to put back any placeholder continuations that fail the IsProperAncestorFrame check. The other is to make overflow containers to hold the float's continuations.
Assignee: fantasai.bugs → nobody
I think the latter is the right fix.

Post-1.9 I'm convinced (I think Eli convinced me) that we shouldn't create continuation placeholders for frames. There should just be one placeholder, associated with the float's first-in-flow. We'll still need to create overflow containers to hold float next-in-flows, in some situations like this one.
Assignee: nobody → fantasai.bugs
WFM.
fantasai, are you still seeing this?
Nope. WFM.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.