https://bugs.webkit.org/show_bug.cgi?id=139596
authorzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Dec 2014 23:35:43 +0000 (23:35 +0000)
committerzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Dec 2014 23:35:43 +0000 (23:35 +0000)
Subpixel rendering: REGRESSION (r163272): Fixed positioned pseudo content leaves trails while scrolling.
rdar://problem/18697851

Reviewed by Simon Fraser.

Final repaint rect at FrameView::scrollContentsFastPath needs to be pixel aligned (as opposed to snap to int).
However we can't pixelsnap it until after ScrollView finished transitioning to Float/LayoutRect.
Use enclosing int rect for now to ensure scrolling does not leave trails.

Unable to test. Apparently scrolling clears trails in dumprendertree. (repaint rects are not useful either with scrolling)

* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@177243 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp

index 194d4d1..3fe5aeb 100644 (file)
@@ -1,3 +1,20 @@
+2014-12-12  Zalan Bujtas  <zalan@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=139596
+        Subpixel rendering: REGRESSION (r163272): Fixed positioned pseudo content leaves trails while scrolling.
+        rdar://problem/18697851
+
+        Reviewed by Simon Fraser.
+
+        Final repaint rect at FrameView::scrollContentsFastPath needs to be pixel aligned (as opposed to snap to int).
+        However we can't pixelsnap it until after ScrollView finished transitioning to Float/LayoutRect.
+        Use enclosing int rect for now to ensure scrolling does not leave trails.
+
+        Unable to test. Apparently scrolling clears trails in dumprendertree. (repaint rects are not useful either with scrolling)
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::scrollContentsFastPath):
+
 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
 
         REGRESSION (r168217): Images are cropped out during animation at jetblue.com
index ff84585..f747057 100644 (file)
@@ -1803,7 +1803,8 @@ bool FrameView::scrollContentsFastPath(const IntSize& scrollDelta, const IntRect
             return false;
         }
 
-        IntRect updateRect = snappedIntRect(layer->repaintRectIncludingNonCompositingDescendants());
+        // FIXME: use pixel snapping instead of enclosing when ScrollView has finished transitioning from IntRect to Float/LayoutRect.
+        IntRect updateRect = enclosingIntRect(layer->repaintRectIncludingNonCompositingDescendants());
         updateRect = contentsToRootView(updateRect);
         if (!isCompositedContentLayer && clipsRepaints())
             updateRect.intersect(rectToScroll);