The invalidate rect is not being computed correctly.
I have a patch for this, but I'm having difficulty getting it to reproduce in the test runner (seems like it is invalidating the entire screen when run in test runner, so the issue is not being reproduced)
Created attachment 193010 [details] Patch
In a follow up patch, I plan to remove GapRects completely since it seems like the left/center/right components are not used anywhere. It's always used in its united form.
Comment on attachment 193010 [details] Patch Attachment 193010 [details] did not pass chromium-ews (chromium-xvfb): Output: http://webkit-commit-queue.appspot.com/results/17137216 New failing tests: fast/repaint/block-selection-gap-in-composited-layer.html fast/repaint/japanese-rl-selection-repaint.html fast/repaint/japanese-rl-selection-repaint-in-regions.html fast/repaint/selection-gap-transform.html
Comment on attachment 193010 [details] Patch Attachment 193010 [details] did not pass chromium-ews (chromium-xvfb): Output: http://webkit-commit-queue.appspot.com/results/17208124 New failing tests: fast/repaint/block-selection-gap-in-composited-layer.html fast/repaint/japanese-rl-selection-repaint.html fast/repaint/japanese-rl-selection-repaint-in-regions.html fast/repaint/selection-gap-transform.html
Created attachment 193060 [details] Patch
Created attachment 193063 [details] Patch Add expected results for cr-linux
Comment on attachment 193063 [details] Patch Attachment 193063 [details] did not pass chromium-ews (chromium-xvfb): Output: http://webkit-commit-queue.appspot.com/results/17197176 New failing tests: fast/repaint/japanese-rl-selection-repaint.html
Looks like it is invalidating one extra line than necessary in the japanese-rl-selection-repaint.html. Might be due to pixel snapping in computeRectForRepaint, I need to investigate some more
Created attachment 193179 [details] Patch This is a much simpler patch, I removed a lot of the "cleanup" code. I will make another bug to perform this cleanup, along with the removal of GapRects, which doesn't seem useful because the left/center/right components are always united. I also simplified the test significantly and made it text-based instead of pixel based.
Added bug 112379 for the cleanup work
Comment on attachment 193179 [details] Patch Attachment 193179 [details] did not pass mac-ews (mac): Output: http://webkit-commit-queue.appspot.com/results/17209124 New failing tests: fast/repaint/selection-gap-transform.html
Comment on attachment 193179 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=193179&action=review > LayoutTests/fast/repaint/selection-gap-transform.html:1 > +<head> Missing DOCTYPE.
Hmm, not sure why the test is failing on mac. I can't build on this platform, is there a way to get the actual DumpRenderTree output from the mac ews?
Comment on attachment 193179 [details] Patch Attachment 193179 [details] did not pass mac-ews (mac): Output: http://webkit-commit-queue.appspot.com/results/17187225 New failing tests: fast/repaint/selection-gap-transform.html
Created attachment 193218 [details] Patch
Comment on attachment 193218 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=193218&action=review > Source/WebCore/rendering/RenderBlock.cpp:3367 > + mapLocalToContainer(repaintContainer, transformState, ApplyContainerFlip | UseTransforms); I would be supportive of testing the ApplyContainerFlip as part of this change if it's not covered. Your change is correct from this perspective. > LayoutTests/fast/repaint/selection-gap-transform.html:4 > + <script src="resources/text-based-repaint.js" type="text/javascript" charset="utf-8"></script> > + <script type="text/javascript" charset="utf-8"> Please remove the unneeded attributes (type, charset). > LayoutTests/fast/repaint/selection-gap-transform.html:21 > + <div style="-webkit-transform: translate(50px, 50px);"> > + <div id="target" style="background-color: red; width: 100px; height: 100px; position: absolute;"><br/></div><br/> I would add: * a fixed positioned case * a container is transformed and fixed positioned case (in different tests though) as boxes with transforms act as containing block for fixed elements too.
I will work on this bug under the blink repo using this crbug: https://code.google.com/p/chromium/issues/detail?id=229887 Once it has landed in Blink, I'll post a patch here.
Created attachment 197708 [details] Patch (from blink checkin) This is the patch that was committed into Blink. Uploading it here in case WebKit folks want to pick it up too.
Comment on attachment 197708 [details] Patch (from blink checkin) Clearing flags on attachment: 197708 Committed r148258: <http://trac.webkit.org/changeset/148258>
All reviewed patches have been landed. Closing bug.
The tests are failing sometimes: http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r148331%20(8829)/results.html
(In reply to comment #22) > The tests are failing sometimes: http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r148331%20(8829)/results.html They're always failing :( http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Frepaint%2Fselection-gap-fixed-child.html%2Cfast%2Frepaint%2Fselection-gap-flipped-fixed-child.html