Closed
Bug 406568
Opened 16 years ago
Closed 16 years ago
{inc} ElPais.com incorrect positioned link boxes after nested floats
Categories
(Core :: Layout: Floats, defect, P1)
Core
Layout: Floats
Tracking
()
RESOLVED
FIXED
People
(Reporter: phiw2, Assigned: roc)
References
()
Details
(Keywords: regression, testcase)
Attachments
(4 files)
284.16 KB,
image/png
|
Details | |
785 bytes,
text/html
|
Details | |
443 bytes,
text/html
|
Details | |
8.19 KB,
patch
|
dbaron
:
review+
dbaron
:
superreview+
|
Details | Diff | Splinter Review |
Midway down the page, an horizontal block contains multiple (nested) floats and some small blocks of links 'Ver más vídeos', 'Anterior', 'siguiente', and a larger list of 'sports' links on the right. The boxes have a blue background. Those small links are place on top of the main box where they should be placed at the bottom (with position:absolute; bottom:xxpx) regression: (hourly builds, test with OS X) 20071129_1803 build fails 20071129_1431 build works http://bonsai.mozilla.org/cvsquery.cgi?module=PhoenixTinderbox&date=explicit&mindate=1196375460&maxdate=1196388179 --> Bug 320378.
Comment 1•16 years ago
|
||
Updated•16 years ago
|
Keywords: testcase
OS: Mac OS X → All
Hardware: Macintosh → All
Summary: ElPais.com incorrect positioned link boxes after nested floats → {inc} ElPais.com incorrect positioned link boxes after nested floats
Assignee | ||
Comment 2•16 years ago
|
||
So I guess here we're reflowing everything assuming no clearance and positioning the abs-pos element based on that, then we're reflowing again with clearance but skipping reflow of the abs-pos element because it's not dirty. I'm not quite sure how this worked before or 320378 regressed it though...
Assignee | ||
Comment 3•16 years ago
|
||
Assignee: nobody → roc
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•16 years ago
|
||
Basically the problem is that we reflow abs-pos children when the computed block size may be bogus because we're going to reflow again so we skipped a bunch of lines. This shouldn't be a problem --- the children should be reflowed again when the size changes back to the real size on the second reflow pass. But it turns out that when we're bailing out due to a clearance change we never get around to doing FinishReflowChild on the blocks that will be reflowed again, so we never set the block's frame size to the bogus value. So in this testcase the block has height 200px, then it computes bogus height 0 and reflows abs-pos kids assuming that height, *then* it computes the correct size of 200px again but it still thinks the old size is 200px so it doesn't reflow the abs-pos kids again. Calling FinishReflowChild on blocks that will be reflowed again doesn't seem like a great idea, and it also seems tricky and possibly risky, so I'm taking the easy way out and just avoiding reflow of abs-pos kids when the block will be reflowed again and the block height can't be trusted. This now depends on *not* setting the block frame size until the real reflow has finished.
Attachment #291369 -
Flags: superreview?(dbaron)
Attachment #291369 -
Flags: review?(dbaron)
Assignee | ||
Comment 5•16 years ago
|
||
This should be a P1 blocker since it's a very visible layout regression on at least one big site.
Flags: blocking1.9?
Priority: -- → P1
Assignee | ||
Updated•16 years ago
|
Whiteboard: [needs review]
Comment 7•16 years ago
|
||
Comment on attachment 291369 [details] [diff] [review] fix So if WillReflowAgainForClearance is true, that means we'll reflow again without setting the size? It might be worth adding a comment saying so. r+sr=dbaron
Attachment #291369 -
Flags: superreview?(dbaron)
Attachment #291369 -
Flags: superreview+
Attachment #291369 -
Flags: review?(dbaron)
Attachment #291369 -
Flags: review+
Assignee | ||
Comment 8•16 years ago
|
||
Checked in
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Updated•16 years ago
|
Flags: in-testsuite+
Updated•15 years ago
|
Whiteboard: [needs review]
You need to log in
before you can comment on or make changes to this bug.
Description
•