Bug 25282 - RenderBox::outlineBoundsForRepaint should use the repaintContainer
Summary: RenderBox::outlineBoundsForRepaint should use the repaintContainer
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-17 17:35 PDT by Simon Fraser (smfr)
Modified: 2009-04-20 11:12 PDT (History)
1 user (show)

See Also:


Attachments
Patch, testcases, changelog (12.08 KB, patch)
2009-04-17 23:33 PDT, Simon Fraser (smfr)
eric: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2009-04-17 17:35:02 PDT
RenderBox::outlineBoundsForRepaint does:

    FloatQuad absOutlineQuad = localToAbsoluteQuad(FloatRect(box));
    box = absOutlineQuad.enclosingBoundingBox();

ignoring the repaintContainer. Bad RenderBox!
Comment 1 Simon Fraser (smfr) 2009-04-17 23:33:14 PDT
Created attachment 29599 [details]
Patch, testcases, changelog
Comment 2 Eric Seidel (no email) 2009-04-18 01:29:39 PDT
I need more context to understand your test cases.  Could you please provide more description in the ChangeLogs or, better yet, in the tests themselves?  What was the old behavior? what is the next behavior?  How is this testing with repaint containers?
Comment 3 Simon Fraser (smfr) 2009-04-18 09:54:17 PDT
In the changelog, I refer to bug 12885, which is the fix that added the original version of outlineBoundsForRepaint() (then called absoluteOutlineBox()). That changelog says:

+        Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
+        rect, the unclipped border box plus outline, and to repaint any areas that
+        were added or removed from that box, in addition to any areas added or removed
+        from the clipped overflow rect.

The testcases I added here clone two of the testcases that were added for that fix, and wrap the content in a div with a 3d-transform. That will force that div into a compositing layer, and hence test the need to compute the repaint rects relative to the container.
Comment 4 Eric Seidel (no email) 2009-04-20 11:03:33 PDT
Comment on attachment 29599 [details]
Patch, testcases, changelog

Verbage saying "this only fails on accellerated_compositing builds" would be useful I think.  r=me
Comment 5 Simon Fraser (smfr) 2009-04-20 11:12:31 PDT
http://trac.webkit.org/changeset/42675