Bug 5699 - REGRESSION: incomplete repaint
Summary: REGRESSION: incomplete repaint
Status: VERIFIED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P1 Normal
Assignee: Dave Hyatt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-10 07:23 PST by mitz
Modified: 2005-12-27 22:33 PST (History)
1 user (show)

See Also:


Attachments
Testcase (299 bytes, text/html)
2005-11-10 07:24 PST, mitz
no flags Details
Possible fix (795 bytes, patch)
2005-12-25 11:36 PST, mitz
hyatt: review+
Details | Formatted Diff | Diff
Complete patch w/ChangeLog entry and manual test (2.76 KB, patch)
2005-12-26 10:14 PST, mitz
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mitz 2005-11-10 07:23:09 PST
Repaint following layout changes is incomplete.

To reproduce: open the testcase. Click "Test!". A copy of "Lorem ipsum" is left behind as it moves down. 
Selecting all text or otherwise triggering repaint of that area clears it.
Comment 1 mitz 2005-11-10 07:24:37 PST
Created attachment 4658 [details]
Testcase
Comment 2 mitz 2005-12-25 11:36:26 PST
Created attachment 5279 [details]
Possible fix
Comment 3 mitz 2005-12-25 11:37:50 PST
Comment on attachment 5279 [details]
Possible fix

RenderObject::repaintAfterLayoutIfNeeded was lying about whether it did a full
repaint. This patch makes it return the truth. The return value is only used in
RenderBlock::layoutBlock.

An alternative approach (perhaps better performance-wise) is to let
repaintAfterLayoutIfNeeded take an extra "must repaint" rect as an argument and
assure that it was repainted as well (if it returned true).

If/when the code change is approved, I'll submit a more commit-friendly patch.
I don't think there can be an automatic test for such a rendering bug.
Comment 4 Maciej Stachowiak 2005-12-25 16:40:29 PST
I think a pixel test could catch this. You'd have to defer dumping, and programmatically do the equivalent 
of the button click from a timer or something. Would that work?
Comment 5 Dave Hyatt 2005-12-25 22:42:55 PST
Comment on attachment 5279 [details]
Possible fix

Nice one.  I do not feel bad missing this one at all heh.
Comment 6 mitz 2005-12-26 10:14:41 PST
Created attachment 5283 [details]
Complete patch w/ChangeLog entry and manual test