Title: [92417] trunk
Revision
92417
Author
fsam...@chromium.org
Date
2011-08-04 15:00:19 -0700 (Thu, 04 Aug 2011)

Log Message

Source/WebCore: Background Does Not Scale Correctly with Page
https://bugs.webkit.org/show_bug.cgi?id=65690

Reviewed by Simon Fraser.

Test: fast/repaint/background-scaling.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintRootBoxFillLayers):
* rendering/RenderView.cpp:
(WebCore::RenderView::unscaledDocumentRect):
(WebCore::RenderView::documentRect):
* rendering/RenderView.h:

LayoutTests: Background Does Not Scale Correctly with Page

Scaling is applied twice to the background (the paint area is doubly scaled).
This patch fixes this issue by passing the unscaled document rect to paintFillLayers
in paintRootBoxFillLayers.

https://bugs.webkit.org/show_bug.cgi?id=65690

Reviewed by Simon Fraser.

* fast/repaint/background-scaling-expected.png: Added.
* fast/repaint/background-scaling-expected.txt: Added.
* fast/repaint/background-scaling.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (92416 => 92417)


--- trunk/LayoutTests/ChangeLog	2011-08-04 21:50:51 UTC (rev 92416)
+++ trunk/LayoutTests/ChangeLog	2011-08-04 22:00:19 UTC (rev 92417)
@@ -1,3 +1,19 @@
+2011-08-04  Fady Samuel  <fsam...@chromium.org>
+
+        Background Does Not Scale Correctly with Page
+
+        Scaling is applied twice to the background (the paint area is doubly scaled).
+        This patch fixes this issue by passing the unscaled document rect to paintFillLayers
+        in paintRootBoxFillLayers.
+
+        https://bugs.webkit.org/show_bug.cgi?id=65690
+
+        Reviewed by Simon Fraser.
+
+        * fast/repaint/background-scaling-expected.png: Added.
+        * fast/repaint/background-scaling-expected.txt: Added.
+        * fast/repaint/background-scaling.html: Added.
+
 2011-08-04  Yael Aharon  <yael.aha...@nokia.com>
 
         [Qt] 69 tests failing after http://trac.webkit.org/changeset/92375

Added: trunk/LayoutTests/fast/repaint/background-scaling-expected.png (0 => 92417)


--- trunk/LayoutTests/fast/repaint/background-scaling-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/background-scaling-expected.png	2011-08-04 22:00:19 UTC (rev 92417)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum9250f617b5236f7db936c57cc622c30a\x8A\x90\x85
+\xB6IDATx\x9C\xED\xD8\xD1	\x800Ac\xE3\xDA\xF9\xB3\x89\x85@\x9C\xA9\xE0>\x97[\xD7{q\xB0yf\xF7\xF8\x9D{\xF7\x80\xD3,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88\xAD\x99ٽ\xE0(,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\xD8\xAC\xA1
+\xA9v\xE8p\x9CIEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/fast/repaint/background-scaling-expected.txt (0 => 92417)


--- trunk/LayoutTests/fast/repaint/background-scaling-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/background-scaling-expected.txt	2011-08-04 22:00:19 UTC (rev 92417)
@@ -0,0 +1,6 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600 [bgcolor=#008000]
+    RenderBody {BODY} at (0,0) size 800x600
+      RenderBlock {DIV} at (0,0) size 800x100 [bgcolor=#008000]

Added: trunk/LayoutTests/fast/repaint/background-scaling.html (0 => 92417)


--- trunk/LayoutTests/fast/repaint/background-scaling.html	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/background-scaling.html	2011-08-04 22:00:19 UTC (rev 92417)
@@ -0,0 +1,15 @@
+<html style="background-color: green;">
+<head> 
+<script src="" type="text/_javascript_" charset="utf-8"></script> 
+<script type="text/_javascript_"> 
+    function repaintTest()
+    {
+        if (window.layoutTestController)
+            eventSender.scalePageBy(0.2,0,0);
+    }
+</script> 
+</head> 
+<body style="margin:0;" _onload_="runRepaintTest();">
+  <div style="background-color: green; width: 100%; height: 100px;"></div>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (92416 => 92417)


--- trunk/Source/WebCore/ChangeLog	2011-08-04 21:50:51 UTC (rev 92416)
+++ trunk/Source/WebCore/ChangeLog	2011-08-04 22:00:19 UTC (rev 92417)
@@ -1,3 +1,19 @@
+2011-08-04  Fady Samuel  <fsam...@chromium.org>
+
+        Background Does Not Scale Correctly with Page
+        https://bugs.webkit.org/show_bug.cgi?id=65690
+
+        Reviewed by Simon Fraser.
+
+        Test: fast/repaint/background-scaling.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::paintRootBoxFillLayers):
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::unscaledDocumentRect):
+        (WebCore::RenderView::documentRect):
+        * rendering/RenderView.h:
+
 2011-08-04  Jochen Eisinger  <joc...@chromium.org>
 
         Introduce a new ResourceRequest::TargetType for XHRs

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (92416 => 92417)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2011-08-04 21:50:51 UTC (rev 92416)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2011-08-04 22:00:19 UTC (rev 92417)
@@ -804,8 +804,8 @@
     }
 
     // The background of the box generated by the root element covers the entire canvas, so just use
-    // the RenderView's documentRect accessor.
-    paintFillLayers(paintInfo, bgColor, bgLayer, view()->documentRect(), BackgroundBleedNone, CompositeSourceOver, bodyObject);
+    // the RenderView's unscaledDocumentRect accessor.
+    paintFillLayers(paintInfo, bgColor, bgLayer, view()->unscaledDocumentRect(), BackgroundBleedNone, CompositeSourceOver, bodyObject);
 }
 
 BackgroundBleedAvoidance RenderBox::determineBackgroundBleedAvoidance(GraphicsContext* context) const

Modified: trunk/Source/WebCore/rendering/RenderView.cpp (92416 => 92417)


--- trunk/Source/WebCore/rendering/RenderView.cpp	2011-08-04 21:50:51 UTC (rev 92416)
+++ trunk/Source/WebCore/rendering/RenderView.cpp	2011-08-04 22:00:19 UTC (rev 92417)
@@ -659,10 +659,17 @@
     return IntRect();
 }
 
-IntRect RenderView::documentRect() const
+
+IntRect RenderView::unscaledDocumentRect() const
 {
     IntRect overflowRect(layoutOverflowRect());
     flipForWritingMode(overflowRect);
+    return overflowRect;
+}
+
+IntRect RenderView::documentRect() const
+{
+    IntRect overflowRect(unscaledDocumentRect());
     if (hasTransform())
         overflowRect = layer()->currentTransform().mapRect(overflowRect);
     return overflowRect;

Modified: trunk/Source/WebCore/rendering/RenderView.h (92416 => 92417)


--- trunk/Source/WebCore/rendering/RenderView.h	2011-08-04 21:50:51 UTC (rev 92416)
+++ trunk/Source/WebCore/rendering/RenderView.h	2011-08-04 22:00:19 UTC (rev 92417)
@@ -165,6 +165,8 @@
     bool usesCompositing() const;
 #endif
 
+    IntRect unscaledDocumentRect() const;
+
     IntRect documentRect() const;
 
 #if ENABLE(CSS_REGIONS)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to