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.
Created attachment 4658 [details] Testcase
Created attachment 5279 [details] Possible fix
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.
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 on attachment 5279 [details] Possible fix Nice one. I do not feel bad missing this one at all heh.
Created attachment 5283 [details] Complete patch w/ChangeLog entry and manual test