Summary: | Elements absolutely positioned to bottom or right may be off by one pixel with sub-pixel layout | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Levi Weintraub <leviw> | ||||||||
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | dglazkov, eae, eric, jamesr, webkit.review.bot | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
Oooh. Excellent catch. Created attachment 148675 [details] Fixes the problem -- not for review This hack fixes all variations of the test case, but is gross. The Length.h change is needed to address the jittering that can be seen here http://jsfiddle.net/YkB7a/1/ I'll continue to think about this. Comment on attachment 148675 [details] Fixes the problem -- not for review Attachment 148675 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/13016071 New failing tests: media/media-document-audio-repaint.html svg/custom/svg-fonts-in-html.html fast/block/positioning/047.html Created attachment 148723 [details]
Archive of layout-test-results from ec2-cr-linux-02
The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-02 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
(In reply to comment #2) > Created an attachment (id=148675) [details] > Fixes the problem -- not for review > > This hack fixes all variations of the test case, but is gross. The Length.h change is needed to address the jittering that can be seen here http://jsfiddle.net/YkB7a/1/ > > I'll continue to think about this. The changes to RenderLayer.cpp are similar to what I've been trying, while it might not be the right place for it the concept seems reasonable in that we want to ensure that the values are aligned based on the bottom/right edges. (In reply to comment #5) > The changes to RenderLayer.cpp are similar to what I've been trying, while it might not be the right place for it the concept seems reasonable in that we want to ensure that the values are aligned based on the bottom/right edges. I was troubled by the change to Length to round the value, but prior to our change to make Lengths floats, this was what occurred anyways. This makes me feel a little more comfortable. The test case attached is fine for the RenderLayer change (which I'm still not very proud of, but I haven't come up with a better solution), but I have no idea how to write a test to ensure we aren't triggering jittering during an animation... Adding Jamesr who may have advice? Either way, this won't work without the patch on 89238 Downstream Chromium bug: http://code.google.com/p/chromium/issues/detail?id=129842 This appears to have been fixed recently, likely by levi's RenderLayer change. Neither the test case attached to this bug nor the one linked from the downstream buh reproduce the problem in recent builds. |
Created attachment 148444 [details] Test case Due to pixel snapping, attempting to align the bottom or right-most edge can lead to the object pixel-snapping past that edge if it has a sub-pixel position.