{inc}[86947 regression]Table/float overlap on www.linuxgames.com

VERIFIED FIXED in mozilla0.9.6



17 years ago
16 years ago


(Reporter: adam, Assigned: dbaron)


({regression, testcase})

regression, testcase

Firefox Tracking Flags

(Not tracked)




(4 attachments, 1 obsolete attachment)



17 years ago
Go to http://www.linuxgames.com/ -- upon fully loading,
the main news table is pushed leftwards to overlap the
links table on the left side of the page (I enclose a
screenshot of the problem).

Interestingly, adjusting the browser window size in any
direction, ie. causing another document reflow, fixes
the problem.

The page is affected regardless of whether it is coming
over the network or straight out of cache.

This problem only started to occur some time in the last
14 hours (n.b. we've had nsViewManager2 removal and dbaron's
big bug 86947 checkin in this period, as well as a few
less-likely culprits).

Comment 1

17 years ago
Created attachment 55046 [details]
screenshot of bad layout
Assignee: attinasi → dbaron
Summary: Tables overlap → {inc}[86947 regression]Tables overlap
Created attachment 55104 [details]
simplified testcase


17 years ago
Keywords: regression, testcase

Comment 4

17 years ago
*** Bug 106810 has been marked as a duplicate of this bug. ***

Comment 5

17 years ago
the bug is visible in trunk 2001-102421 linux

Comment 6

17 years ago
Resizing after the bad layout brings it back to what it should have been.
Created attachment 55168 [details]
even simpler testcase
Well, I'm a little puzzled by this bug.  The problems seems to be that
nsBlockReflowState::RecoverStateFrom doesn't descend into child blocks to fill
in the space manager state with floaters whose placeholders (I think that's the
criterion for floaters being "in" a line) are in lines *within* child blocks. 
What I don't understand is how this ever worked before.  Did it work because we
always reflowed enough that this wasn't a problem, or did it work because the
space manager got filled in some other way?
Summary: {inc}[86947 regression]Tables overlap → {inc}[86947 regression]Table/float overlap on www.linuxgames.com
Created attachment 55289 [details]
alternative testcase with only floats
Attachment #55104 - Attachment is obsolete: true

Comment 10

17 years ago
/me shrugs. As a quick fix, during state recovery you could _always_ desecend
into each line that has a block frame (which doesn't have a space manager
itself). Longer term, this would be fixed by persisting the space manager's
state across reflows, right?

Comment 11

17 years ago
confirming on win2k using build 2001102708
OS: Linux → All
Priority: -- → P1
Target Milestone: --- → mozilla0.9.6

Comment 12

17 years ago
*** Bug 107592 has been marked as a duplicate of this bug. ***
*** Bug 107968 has been marked as a duplicate of this bug. ***

Comment 14

17 years ago
*** Bug 109168 has been marked as a duplicate of this bug. ***

Comment 15

17 years ago
*** Bug 109850 has been marked as a duplicate of this bug. ***
Created attachment 57740 [details] [diff] [review]

I still need to test the performance effects of this patch, both on typical
pages (jrgm's tests) and on long pages.
Performance effects seem minimal.  No significant change on jrgm's tests.  Added
about 10-15 seconds to a testcase with 100,000 paragraphs (from 4:00 to 4:10 or so).

Comment 19

17 years ago
Comment on attachment 57740 [details] [diff] [review]

Attachment #57740 - Flags: superreview+
Checked in to trunk 2001-11-14 23:28/30 PDT.  Awaiting 0.9.6 branch approval.
Comment on attachment 57740 [details] [diff] [review]

a=blizzard on behalf of drivers for 0.9.6
Attachment #57740 - Flags: approval+
Keywords: mozilla0.9.6+
Checked in to 0.9.6 2001-11-15 15:56 PDT.
Last Resolved: 17 years ago
Resolution: --- → FIXED
I think the reason my patch in bug 86947 caused this was because it partially
disabled the working branch of the duplicated code described in bug 117374 that
I'm now planning to remove.

Comment 24

16 years ago
Verified fixed.
You need to log in before you can comment on or make changes to this bug.