Bug 10522

Summary: REGRESSION: Incomplete repaint after table relayout that decreases height
Product: WebKit Reporter: mitz
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: jordan.breeding
Priority: P1 Keywords: HasReduction, InRadar, Regression
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
URL: http://trac.webkit.org/projects/webkit/browser/releases
Attachments:
Description Flags
Screenshot
none
Reduction
none
Reduction without tables
none
[WIP] Let objects know how far off they are from where their last layout took place
none
Let objects know how far off they are from where their last layout took place hyatt: review+

mitz
Reported 2006-08-22 23:25:04 PDT
Under a certain network or server speed, the directory table in the URL is laid out and painted twice, with the first layout being taller than the final layout. The area that doesn't belong to the final layout isn't repainted with the backgroun (see attachment).
Attachments
Screenshot (7.21 KB, image/png)
2006-08-22 23:25 PDT, mitz
no flags
Reduction (559 bytes, text/html)
2006-08-23 08:08 PDT, mitz
no flags
Reduction without tables (373 bytes, text/html)
2007-01-21 02:55 PST, mitz
no flags
[WIP] Let objects know how far off they are from where their last layout took place (7.13 KB, patch)
2007-01-28 11:17 PST, mitz
no flags
Let objects know how far off they are from where their last layout took place (17.58 KB, patch)
2007-01-28 12:42 PST, mitz
hyatt: review+
mitz
Comment 1 2006-08-22 23:25:28 PDT
Created attachment 10176 [details] Screenshot
mitz
Comment 2 2006-08-23 08:08:52 PDT
Created attachment 10179 [details] Reduction
mitz
Comment 3 2006-10-07 09:27:40 PDT
Bug 11205 is possibly a duplicate.
mitz
Comment 4 2006-10-07 10:21:58 PDT
This is essentially the same problem as bug 3509, but in this case the out-of-place repaints include "before layout" painting, so the extra painting added to fix bug 3509 don't help. Tables cheat and do one last "before layout" paint in RenderTableSection::setCellWidths() if cell widths change (needed to fix bug 6278), and that's what you're missing here.
Jordan Breeding
Comment 5 2006-10-22 09:57:43 PDT
So, based on the above statement, will this be fixed anytime soon?
mitz
Comment 6 2007-01-21 02:55:16 PST
Created attachment 12581 [details] Reduction without tables This is not specific to tables.
Stephanie Lewis
Comment 7 2007-01-27 19:59:20 PST
mitz
Comment 8 2007-01-28 11:17:45 PST
Created attachment 12728 [details] [WIP] Let objects know how far off they are from where their last layout took place Work in progress. I think I can refine it so that I could remove some of the current "compensate for intermediate layout/repaint at the wrong coords" code.
mitz
Comment 9 2007-01-28 12:42:50 PST
Created attachment 12730 [details] Let objects know how far off they are from where their last layout took place Added change log and repaint test. > I think I can refine it so that I could remove some of the > current "compensate for intermediate layout/repaint at the wrong > coords" code. I decided not to do it now (because it's too hard). This means that there might still be some excessive painting, however none of it was added by this patch. This patch merely moves some of the current painting to the right place.
Darin Adler
Comment 10 2007-01-28 18:28:15 PST
Comment on attachment 12730 [details] Let objects know how far off they are from where their last layout took place Looks good to me, but I want to hear Hyatt's take on this one.
Dave Hyatt
Comment 11 2007-02-07 02:27:26 PST
Comment on attachment 12730 [details] Let objects know how far off they are from where their last layout took place r=me
Mark Rowe (bdash)
Comment 12 2007-02-07 21:20:10 PST
Landed in r19492.
Jordan Breeding
Comment 13 2007-02-28 10:46:37 PST
*** Bug 11205 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.