<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[162732] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/162732">162732</a></dd>
<dt>Author</dt> <dd>zalan@apple.com</dd>
<dt>Date</dt> <dd>2014-01-24 15:35:07 -0800 (Fri, 24 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Subpixel rendering: Make PaintInfo layout unit aware.
https://bugs.webkit.org/show_bug.cgi?id=127562

Reviewed by Simon Fraser.

Replace PaintInfo's IntRect with LayoutRect to be able to render to
subpixel positions.

No functional changes.

* platform/graphics/LayoutRect.h:
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::applyTransform):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderLayer.cpp:
(WebCore::cornerRect):
(WebCore::RenderLayer::scrollCornerRect):
(WebCore::resizerCornerRect):
(WebCore::RenderLayer::scrollCornerAndResizerRect):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::drawPlatformResizerImage):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::hitTestOverflowControls):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintScrollbar):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paintContents):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
* rendering/svg/SVGRenderingContext.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformLayoutUnith">trunk/Source/WebCore/platform/LayoutUnit.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsLayoutRecth">trunk/Source/WebCore/platform/graphics/LayoutRect.h</a></li>
<li><a href="#trunkSourceWebCorerenderingPaintInfoh">trunk/Source/WebCore/rendering/PaintInfo.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerh">trunk/Source/WebCore/rendering/RenderLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderWidgetcpp">trunk/Source/WebCore/rendering/RenderWidget.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGRenderingContexth">trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/ChangeLog        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -1,3 +1,43 @@
</span><ins>+2014-01-24  Zalan Bujtas  &lt;zalan@apple.com&gt;
+
+        Subpixel rendering: Make PaintInfo layout unit aware.
+        https://bugs.webkit.org/show_bug.cgi?id=127562
+
+        Reviewed by Simon Fraser.
+
+        Replace PaintInfo's IntRect with LayoutRect to be able to render to
+        subpixel positions.
+
+        No functional changes.
+
+        * platform/graphics/LayoutRect.h:
+        * rendering/PaintInfo.h:
+        (WebCore::PaintInfo::PaintInfo):
+        (WebCore::PaintInfo::applyTransform):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::paint):
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+        * rendering/RenderLayer.cpp:
+        (WebCore::cornerRect):
+        (WebCore::RenderLayer::scrollCornerRect):
+        (WebCore::resizerCornerRect):
+        (WebCore::RenderLayer::scrollCornerAndResizerRect):
+        (WebCore::RenderLayer::horizontalScrollbarStart):
+        (WebCore::RenderLayer::drawPlatformResizerImage):
+        (WebCore::RenderLayer::paintResizer):
+        (WebCore::RenderLayer::hitTestOverflowControls):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::paintContents):
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::paintScrollbar):
+        * rendering/RenderWidget.cpp:
+        (WebCore::RenderWidget::paintContents):
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
+        * rendering/svg/SVGRenderingContext.h:
+
</ins><span class="cx"> 2014-01-24  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         #ifdef out handleWheelEventPhase for iOS
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLayoutUnith"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LayoutUnit.h (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LayoutUnit.h        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/platform/LayoutUnit.h        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -118,6 +118,11 @@
</span><span class="cx">     LayoutUnit(double value) { REPORT_OVERFLOW(isInBounds(value)); m_value = clampTo&lt;int&gt;(value); }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    static LayoutUnit fromPixel(int value)
+    {
+        return LayoutUnit(value);
+    }
+
</ins><span class="cx">     static LayoutUnit fromFloatCeil(float value)
</span><span class="cx">     {
</span><span class="cx">         LayoutUnit v;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsLayoutRecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/LayoutRect.h (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/LayoutRect.h        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/platform/graphics/LayoutRect.h        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -39,8 +39,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class FloatRect;
-
</del><span class="cx"> class LayoutRect {
</span><span class="cx"> public:
</span><span class="cx">     LayoutRect() { }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingPaintInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/PaintInfo.h (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/PaintInfo.h        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/PaintInfo.h        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">  * (tx|ty) is the calculated position of the parent
</span><span class="cx">  */
</span><span class="cx"> struct PaintInfo {
</span><del>-    PaintInfo(GraphicsContext* newContext, const IntRect&amp; newRect, PaintPhase newPhase, PaintBehavior newPaintBehavior,
</del><ins>+    PaintInfo(GraphicsContext* newContext, const LayoutRect&amp; newRect, PaintPhase newPhase, PaintBehavior newPaintBehavior,
</ins><span class="cx">         RenderObject* newSubtreePaintRoot = nullptr, RenderRegion* region = nullptr, ListHashSet&lt;RenderInline*&gt;* newOutlineObjects = nullptr,
</span><span class="cx">         OverlapTestRequestMap* overlapTestRequests = nullptr, const RenderLayerModelObject* newPaintContainer = nullptr)
</span><span class="cx">         : context(newContext)
</span><span class="lines">@@ -98,15 +98,17 @@
</span><span class="cx"> 
</span><span class="cx">         context-&gt;concatCTM(localToAncestorTransform);
</span><span class="cx"> 
</span><del>-        if (rect.isInfinite())
</del><ins>+        if (rect == LayoutRect::infiniteRect())
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        rect = localToAncestorTransform.inverse().mapRect(rect);
</del><ins>+        FloatRect tranformedRect(localToAncestorTransform.inverse().mapRect(rect));
+        rect.setLocation(LayoutPoint(tranformedRect.location()));
+        rect.setSize(LayoutSize(tranformedRect.size()));
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     GraphicsContext* context;
</span><del>-    IntRect rect;
</del><ins>+    LayoutRect rect;
</ins><span class="cx">     PaintPhase phase;
</span><span class="cx">     PaintBehavior paintBehavior;
</span><span class="cx">     RenderObject* subtreePaintRoot; // used to draw just one element and its visual children
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -2187,7 +2187,7 @@
</span><span class="cx">     // z-index.  We paint after we painted the background/border, so that the scrollbars will
</span><span class="cx">     // sit above the background/border.
</span><span class="cx">     if (hasOverflowClip() &amp;&amp; style().visibility() == VISIBLE &amp;&amp; (phase == PaintPhaseBlockBackground || phase == PaintPhaseChildBlockBackground) &amp;&amp; paintInfo.shouldPaintWithinRoot(*this) &amp;&amp; !paintInfo.paintRootBackgroundOnly())
</span><del>-        layer()-&gt;paintOverflowControls(paintInfo.context, roundedIntPoint(adjustedPaintOffset), paintInfo.rect);
</del><ins>+        layer()-&gt;paintOverflowControls(paintInfo.context, roundedIntPoint(adjustedPaintOffset), pixelSnappedIntRect(paintInfo.rect));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderBlock::paintColumnRules(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -720,7 +720,7 @@
</span><span class="cx">         // First figure out how big the mask has to be.  It should be no bigger than what we need
</span><span class="cx">         // to actually render, so we should intersect the dirty rect with the border box of the background.
</span><span class="cx">         maskRect = pixelSnappedIntRect(rect);
</span><del>-        maskRect.intersect(paintInfo.rect);
</del><ins>+        maskRect.intersect(pixelSnappedIntRect(paintInfo.rect));
</ins><span class="cx"> 
</span><span class="cx">         // Now create the mask.
</span><span class="cx">         maskImage = context-&gt;createCompatibleBuffer(maskRect.size());
</span><span class="lines">@@ -773,7 +773,7 @@
</span><span class="cx">         bool boxShadowShouldBeAppliedToBackground = this-&gt;boxShadowShouldBeAppliedToBackground(bleedAvoidance, box);
</span><span class="cx">         if (boxShadowShouldBeAppliedToBackground || !shouldPaintBackgroundImage || !bgLayer-&gt;hasOpaqueImage(this) || !bgLayer-&gt;hasRepeatXY()) {
</span><span class="cx">             if (!boxShadowShouldBeAppliedToBackground)
</span><del>-                backgroundRect.intersect(paintInfo.rect);
</del><ins>+                backgroundRect.intersect(pixelSnappedIntRect(paintInfo.rect));
</ins><span class="cx"> 
</span><span class="cx">             // If we have an alpha and we are painting the root element, go ahead and blend with the base background color.
</span><span class="cx">             Color baseColor;
</span><span class="lines">@@ -805,7 +805,7 @@
</span><span class="cx">     if (shouldPaintBackgroundImage) {
</span><span class="cx">         BackgroundImageGeometry geometry;
</span><span class="cx">         calculateBackgroundImageGeometry(paintInfo.paintContainer, bgLayer, scrolledPaintRect, geometry, backgroundObject);
</span><del>-        geometry.clip(paintInfo.rect);
</del><ins>+        geometry.clip(pixelSnappedIntRect(paintInfo.rect));
</ins><span class="cx">         if (!geometry.destRect().isEmpty()) {
</span><span class="cx">             CompositeOperator compositeOp = op == CompositeSourceOver ? bgLayer-&gt;composite() : op;
</span><span class="cx">             auto clientForBackgroundImage = backgroundObject ? backgroundObject : this;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -2726,7 +2726,7 @@
</span><span class="cx">     return maxX - thickness - layer-&gt;renderer().style().borderRightWidth();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static IntRect cornerRect(const RenderLayer* layer, const IntRect&amp; bounds)
</del><ins>+static LayoutRect cornerRect(const RenderLayer* layer, const LayoutRect&amp; bounds)
</ins><span class="cx"> {
</span><span class="cx">     int horizontalThickness;
</span><span class="cx">     int verticalThickness;
</span><span class="lines">@@ -2745,7 +2745,7 @@
</span><span class="cx">         horizontalThickness = layer-&gt;verticalScrollbar()-&gt;width();
</span><span class="cx">         verticalThickness = layer-&gt;horizontalScrollbar()-&gt;height();
</span><span class="cx">     }
</span><del>-    return IntRect(cornerStart(layer, bounds.x(), bounds.maxX(), horizontalThickness),
</del><ins>+    return LayoutRect(cornerStart(layer, bounds.x(), bounds.maxX(), horizontalThickness),
</ins><span class="cx">         bounds.maxY() - verticalThickness - layer-&gt;renderer().style().borderBottomWidth(),
</span><span class="cx">         horizontalThickness, verticalThickness);
</span><span class="cx"> }
</span><span class="lines">@@ -2760,26 +2760,26 @@
</span><span class="cx">     bool hasVerticalBar = verticalScrollbar();
</span><span class="cx">     bool hasResizer = renderer().style().resize() != RESIZE_NONE;
</span><span class="cx">     if ((hasHorizontalBar &amp;&amp; hasVerticalBar) || (hasResizer &amp;&amp; (hasHorizontalBar || hasVerticalBar)))
</span><del>-        return cornerRect(this, renderBox()-&gt;pixelSnappedBorderBoxRect());
</del><ins>+        return pixelSnappedIntRect(cornerRect(this, renderBox()-&gt;borderBoxRect()));
</ins><span class="cx">     return IntRect();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static IntRect resizerCornerRect(const RenderLayer* layer, const IntRect&amp; bounds)
</del><ins>+static LayoutRect resizerCornerRect(const RenderLayer* layer, const LayoutRect&amp; bounds)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(layer-&gt;renderer().isBox());
</span><span class="cx">     if (layer-&gt;renderer().style().resize() == RESIZE_NONE)
</span><del>-        return IntRect();
</del><ins>+        return LayoutRect();
</ins><span class="cx">     return cornerRect(layer, bounds);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntRect RenderLayer::scrollCornerAndResizerRect() const
</del><ins>+LayoutRect RenderLayer::scrollCornerAndResizerRect() const
</ins><span class="cx"> {
</span><span class="cx">     RenderBox* box = renderBox();
</span><span class="cx">     if (!box)
</span><span class="cx">         return IntRect();
</span><del>-    IntRect scrollCornerAndResizer = scrollCornerRect();
</del><ins>+    LayoutRect scrollCornerAndResizer = scrollCornerRect();
</ins><span class="cx">     if (scrollCornerAndResizer.isEmpty())
</span><del>-        scrollCornerAndResizer = resizerCornerRect(this, box-&gt;pixelSnappedBorderBoxRect());
</del><ins>+        scrollCornerAndResizer = resizerCornerRect(this, box-&gt;borderBoxRect());
</ins><span class="cx">     return scrollCornerAndResizer;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2900,7 +2900,7 @@
</span><span class="cx">     const RenderBox* box = renderBox();
</span><span class="cx">     int x = minX + box-&gt;borderLeft();
</span><span class="cx">     if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</span><del>-        x += m_vBar ? m_vBar-&gt;width() : resizerCornerRect(this, box-&gt;pixelSnappedBorderBoxRect()).width();
</del><ins>+        x += m_vBar ? m_vBar-&gt;width() : roundToInt(resizerCornerRect(this, box-&gt;borderBoxRect()).width());
</ins><span class="cx">     return x;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3483,7 +3483,7 @@
</span><span class="cx">         context-&gt;fillRect(absRect, Color::white, box-&gt;style().colorSpace());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, IntRect resizerCornerRect)
</del><ins>+void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, const LayoutRect&amp; resizerCornerRect)
</ins><span class="cx"> {
</span><span class="cx">     float deviceScaleFactor = WebCore::deviceScaleFactor(&amp;renderer().frame());
</span><span class="cx"> 
</span><span class="lines">@@ -3508,11 +3508,11 @@
</span><span class="cx">         context-&gt;restore();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    IntRect imageRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, cornerResizerSize);
-    context-&gt;drawImage(resizeCornerImage.get(), renderer().style().colorSpace(), imageRect);
</del><ins>+    LayoutRect imageRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, cornerResizerSize);
+    context-&gt;drawImage(resizeCornerImage.get(), renderer().style().colorSpace(), pixelSnappedIntRect(imageRect));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderLayer::paintResizer(GraphicsContext* context, const IntPoint&amp; paintOffset, const IntRect&amp; damageRect)
</del><ins>+void RenderLayer::paintResizer(GraphicsContext* context, const LayoutPoint&amp; paintOffset, const LayoutRect&amp; damageRect)
</ins><span class="cx"> {
</span><span class="cx">     if (renderer().style().resize() == RESIZE_NONE)
</span><span class="cx">         return;
</span><span class="lines">@@ -3520,7 +3520,7 @@
</span><span class="cx">     RenderBox* box = renderBox();
</span><span class="cx">     ASSERT(box);
</span><span class="cx"> 
</span><del>-    IntRect absRect = resizerCornerRect(this, box-&gt;pixelSnappedBorderBoxRect());
</del><ins>+    LayoutRect absRect = resizerCornerRect(this, box-&gt;borderBoxRect());
</ins><span class="cx">     absRect.moveBy(paintOffset);
</span><span class="cx">     if (!absRect.intersects(damageRect))
</span><span class="cx">         return;
</span><span class="lines">@@ -3542,12 +3542,12 @@
</span><span class="cx">     if (!hasOverlayScrollbars() &amp;&amp; (m_vBar || m_hBar)) {
</span><span class="cx">         GraphicsContextStateSaver stateSaver(*context);
</span><span class="cx">         context-&gt;clip(absRect);
</span><del>-        IntRect largerCorner = absRect;
-        largerCorner.setSize(IntSize(largerCorner.width() + 1, largerCorner.height() + 1));
</del><ins>+        LayoutRect largerCorner = absRect;
+        largerCorner.setSize(LayoutSize(largerCorner.width() + LayoutUnit::fromPixel(1), largerCorner.height() + LayoutUnit::fromPixel(1)));
</ins><span class="cx">         context-&gt;setStrokeColor(Color(makeRGB(217, 217, 217)), ColorSpaceDeviceRGB);
</span><span class="cx">         context-&gt;setStrokeThickness(1.0f);
</span><span class="cx">         context-&gt;setFillColor(Color::transparent, ColorSpaceDeviceRGB);
</span><del>-        context-&gt;drawRect(largerCorner);
</del><ins>+        context-&gt;drawRect(pixelSnappedIntRect(largerCorner));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3575,7 +3575,7 @@
</span><span class="cx">     
</span><span class="cx">     IntRect resizeControlRect;
</span><span class="cx">     if (renderer().style().resize() != RESIZE_NONE) {
</span><del>-        resizeControlRect = resizerCornerRect(this, box-&gt;pixelSnappedBorderBoxRect());
</del><ins>+        resizeControlRect = pixelSnappedIntRect(resizerCornerRect(this, box-&gt;borderBoxRect()));
</ins><span class="cx">         if (resizeControlRect.contains(localPoint))
</span><span class="cx">             return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -459,7 +459,7 @@
</span><span class="cx"> 
</span><span class="cx">     void paintOverflowControls(GraphicsContext*, const IntPoint&amp;, const IntRect&amp; damageRect, bool paintingOverlayControls = false);
</span><span class="cx">     void paintScrollCorner(GraphicsContext*, const IntPoint&amp;, const IntRect&amp; damageRect);
</span><del>-    void paintResizer(GraphicsContext*, const IntPoint&amp;, const IntRect&amp; damageRect);
</del><ins>+    void paintResizer(GraphicsContext*, const LayoutPoint&amp;, const LayoutRect&amp; damageRect);
</ins><span class="cx"> 
</span><span class="cx">     void updateScrollInfoAfterLayout();
</span><span class="cx"> 
</span><span class="lines">@@ -1078,7 +1078,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Rectangle encompassing the scroll corner and resizer rect.
</span><del>-    IntRect scrollCornerAndResizerRect() const;
</del><ins>+    LayoutRect scrollCornerAndResizerRect() const;
</ins><span class="cx"> 
</span><span class="cx">     // NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
</span><span class="cx">     void scrollTo(int, int);
</span><span class="lines">@@ -1130,7 +1130,7 @@
</span><span class="cx">     void updateScrollCornerStyle();
</span><span class="cx">     void updateResizerStyle();
</span><span class="cx"> 
</span><del>-    void drawPlatformResizerImage(GraphicsContext*, IntRect resizerCornerRect);
</del><ins>+    void drawPlatformResizerImage(GraphicsContext*, const LayoutRect&amp; resizerCornerRect);
</ins><span class="cx"> 
</span><span class="cx">     void updatePagination();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -2253,12 +2253,12 @@
</span><span class="cx">     } else if (graphicsLayer == layerForVerticalScrollbar()) {
</span><span class="cx">         paintScrollbar(m_owningLayer.verticalScrollbar(), context, clip);
</span><span class="cx">     } else if (graphicsLayer == layerForScrollCorner()) {
</span><del>-        const IntRect&amp; scrollCornerAndResizer = m_owningLayer.scrollCornerAndResizerRect();
</del><ins>+        const LayoutRect&amp; scrollCornerAndResizer = m_owningLayer.scrollCornerAndResizerRect();
</ins><span class="cx">         context.save();
</span><span class="cx">         context.translate(-scrollCornerAndResizer.x(), -scrollCornerAndResizer.y());
</span><del>-        IntRect transformedClip = clip;
</del><ins>+        LayoutRect transformedClip = clip;
</ins><span class="cx">         transformedClip.moveBy(scrollCornerAndResizer.location());
</span><del>-        m_owningLayer.paintScrollCorner(&amp;context, IntPoint(), transformedClip);
</del><ins>+        m_owningLayer.paintScrollCorner(&amp;context, IntPoint(), pixelSnappedIntRect(transformedClip));
</ins><span class="cx">         m_owningLayer.paintResizer(&amp;context, IntPoint(), transformedClip);
</span><span class="cx">         context.restore();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx">             m_vBar-&gt;width(),
</span><span class="cx">             height() - (borderTop() + borderBottom()));
</span><span class="cx">         m_vBar-&gt;setFrameRect(scrollRect);
</span><del>-        m_vBar-&gt;paint(paintInfo.context, paintInfo.rect);
</del><ins>+        m_vBar-&gt;paint(paintInfo.context, pixelSnappedIntRect(paintInfo.rect));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderWidgetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderWidget.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderWidget.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/RenderWidget.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -227,16 +227,16 @@
</span><span class="cx">     IntPoint widgetLocation = m_widget-&gt;frameRect().location();
</span><span class="cx">     IntPoint paintLocation(roundToInt(adjustedPaintOffset.x() + borderLeft() + paddingLeft()),
</span><span class="cx">         roundToInt(adjustedPaintOffset.y() + borderTop() + paddingTop()));
</span><del>-    IntRect paintRect = paintInfo.rect;
</del><ins>+    LayoutRect paintRect = paintInfo.rect;
</ins><span class="cx"> 
</span><del>-    IntSize widgetPaintOffset = paintLocation - widgetLocation;
</del><ins>+    LayoutSize widgetPaintOffset = paintLocation - widgetLocation;
</ins><span class="cx">     // When painting widgets into compositing layers, tx and ty are relative to the enclosing compositing layer,
</span><span class="cx">     // not the root. In this case, shift the CTM and adjust the paintRect to be root-relative to fix plug-in drawing.
</span><span class="cx">     if (!widgetPaintOffset.isZero()) {
</span><span class="cx">         paintInfo.context-&gt;translate(widgetPaintOffset);
</span><span class="cx">         paintRect.move(-widgetPaintOffset);
</span><span class="cx">     }
</span><del>-    m_widget-&gt;paint(paintInfo.context, paintRect);
</del><ins>+    m_widget-&gt;paint(paintInfo.context, pixelSnappedIntRect(paintRect));
</ins><span class="cx"> 
</span><span class="cx">     if (!widgetPaintOffset.isZero())
</span><span class="cx">         paintInfo.context-&gt;translate(-widgetPaintOffset);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Clipping the extender region here allows us to draw the bottom extender glyph into the
</span><span class="cx">     // regions of the bottom glyph without worrying about overdraw (hairy pixels) and simplifies later clipping.
</span><del>-    IntRect clipBounds = info.rect;
</del><ins>+    LayoutRect clipBounds = info.rect;
</ins><span class="cx">     clipBounds.shiftYEdgeTo(from.y());
</span><span class="cx">     clipBounds.shiftMaxYEdgeTo(to.y());
</span><span class="cx">     info.context-&gt;clip(clipBounds);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGRenderingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h (162731 => 162732)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h        2014-01-24 23:29:29 UTC (rev 162731)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h        2014-01-24 23:35:07 UTC (rev 162732)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     RenderElement* m_renderer;
</span><span class="cx">     PaintInfo* m_paintInfo;
</span><span class="cx">     GraphicsContext* m_savedContext;
</span><del>-    IntRect m_savedPaintRect;
</del><ins>+    LayoutRect m_savedPaintRect;
</ins><span class="cx"> #if ENABLE(FILTERS)
</span><span class="cx">     RenderSVGResourceFilter* m_filter;
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>

</body>
</html>