Bug 100968 - [subixel] FrameView's converTo/FromRenderer methods should not pixel snap transforms
Summary: [subixel] FrameView's converTo/FromRenderer methods should not pixel snap tra...
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Levi Weintraub
URL: http://code.google.com/p/chromium/iss...
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-01 10:03 PDT by Levi Weintraub
Modified: 2012-11-09 11:26 PST (History)
3 users (show)

See Also:


Attachments
Patch (3.18 KB, patch)
2012-11-01 10:14 PDT, Levi Weintraub
eae: review+
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Levi Weintraub 2012-11-01 10:03:16 PDT
Pixel snapping these methods can lead to repaint issues, as the resulting values are sent through repaint code that's aware of pixel snapping. Unfortunately, there doesn't seem to be a way to repeat this without a plugin redrawing itself. http://news.nana10.co.il/Article/?ArticleID=930551 demonstrates the issue (see http://code.google.com/p/chromium/issues/detail?id=156528 for details).

This is a regression introduced by me in http://trac.webkit.org/changeset/131111
Comment 1 Levi Weintraub 2012-11-01 10:14:51 PDT
Created attachment 171887 [details]
Patch
Comment 2 Emil A Eklund 2012-11-01 10:16:55 PDT
Comment on attachment 171887 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171887&action=review

> Source/WebCore/page/FrameView.cpp:-3488
> -    IntRect rect = renderer->localToAbsoluteQuad(FloatRect(rendererRect), SnapOffsetForTransforms).enclosingBoundingBox();

This change restores the logic we had prior to r131111 for these methods, correct?
Comment 3 Levi Weintraub 2012-11-01 10:18:59 PDT
Comment on attachment 171887 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171887&action=review

>> Source/WebCore/page/FrameView.cpp:-3488
>> -    IntRect rect = renderer->localToAbsoluteQuad(FloatRect(rendererRect), SnapOffsetForTransforms).enclosingBoundingBox();
> 
> This change restores the logic we had prior to r131111 for these methods, correct?

That's correct.
Comment 4 Darin Adler 2012-11-01 10:20:31 PDT
Comment on attachment 171887 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171887&action=review

The comments make it sound like these fixes are specific to plug-ins, yet the code changes are in non-plug-in-specific functions.

Are these code paths really unused outside of the plug-in world?

We have test plug-ins and tests that use those plug-ins. Is it really impossible to cover this with a regression test?

If so, can you check in some test cases to be run manually?

> Source/WebCore/ChangeLog:3
> +        [subixel] FrameView's converTo/FromRenderer methods should not pixel snap transforms

Missing p in subpixel?
Comment 5 WebKit Review Bot 2012-11-01 11:38:46 PDT
Comment on attachment 171887 [details]
Patch

Attachment 171887 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14686591

New failing tests:
fast/repaint/repaint-during-scroll-with-zoom.html
fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
Comment 6 Levi Weintraub 2012-11-09 11:26:53 PST
I found a better fix for this.