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+

Description mitz 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).
Comment 1 mitz 2006-08-22 23:25:28 PDT
Created attachment 10176 [details]
Screenshot
Comment 2 mitz 2006-08-23 08:08:52 PDT
Created attachment 10179 [details]
Reduction
Comment 3 mitz 2006-10-07 09:27:40 PDT
Bug 11205 is possibly a duplicate.
Comment 4 mitz 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.
Comment 5 Jordan Breeding 2006-10-22 09:57:43 PDT
So, based on the above statement, will this be fixed anytime soon?
Comment 6 mitz 2007-01-21 02:55:16 PST
Created attachment 12581 [details]
Reduction without tables

This is not specific to tables.
Comment 7 Stephanie Lewis 2007-01-27 19:59:20 PST
Radar <rdar://problem/4959697>
Comment 8 mitz 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.
Comment 9 mitz 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.
Comment 10 Darin Adler 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.
Comment 11 Dave Hyatt 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
Comment 12 Mark Rowe (bdash) 2007-02-07 21:20:10 PST
Landed in r19492.
Comment 13 Jordan Breeding 2007-02-28 10:46:37 PST
*** Bug 11205 has been marked as a duplicate of this bug. ***