Closed
Bug 389776
Opened 17 years ago
Closed 15 years ago
Dynamic multi-col floats testcase asserts
Categories
(Core :: Layout: Floats, defect)
Core
Layout: Floats
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.
Comment 1•17 years ago
|
||
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.
Comment 3•17 years ago
|
||
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.
Comment 5•17 years ago
|
||
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.
Comment 10•16 years ago
|
||
WFM.
Comment 11•15 years ago
|
||
fantasai, are you still seeing this?
Assignee | ||
Comment 12•15 years ago
|
||
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.
Description
•