<!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>[200671] 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/200671">200671</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2016-05-10 21:48:08 -0700 (Tue, 10 May 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Remove scrolledContentOffset() from rendering code
https://bugs.webkit.org/show_bug.cgi?id=157552
Reviewed by Zalan Bujtas.
scrolledContentOffset() is misleading because it returns a scrollPosition().
Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
and fix callers that need to convert to layout size.
* editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollPosition):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
(WebCore::RenderBox::scrolledContentOffset): Deleted.
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::offsetFromContainer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::hitInnerTextElement):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleUnitscpp">trunk/Source/WebCore/editing/VisibleUnits.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingLayoutStatecpp">trunk/Source/WebCore/rendering/LayoutState.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxh">trunk/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlinecpp">trunk/Source/WebCore/rendering/RenderInline.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="#trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp">trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderNamedFlowThreadcpp">trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/ChangeLog        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -1,5 +1,59 @@
</span><span class="cx"> 2016-05-10 Simon Fraser <simon.fraser@apple.com>
</span><span class="cx">
</span><ins>+ Remove scrolledContentOffset() from rendering code
+ https://bugs.webkit.org/show_bug.cgi?id=157552
+
+ Reviewed by Zalan Bujtas.
+
+ scrolledContentOffset() is misleading because it returns a scrollPosition().
+ Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
+ and fix callers that need to convert to layout size.
+
+ * editing/VisibleUnits.cpp:
+ (WebCore::absoluteLineDirectionPointToLocalPointInBlock):
+ * rendering/LayoutState.cpp:
+ (WebCore::LayoutState::LayoutState):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paintObject):
+ (WebCore::RenderBlock::selectionGapRectsForRepaint):
+ (WebCore::RenderBlock::paintSelection):
+ (WebCore::RenderBlock::nodeAtPoint):
+ (WebCore::RenderBlock::offsetForContents):
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::layoutBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::scrollPosition):
+ (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
+ (WebCore::isCandidateForOpaquenessTest):
+ (WebCore::RenderBox::offsetFromContainer):
+ (WebCore::RenderBox::layoutOverflowRectForPropagation):
+ (WebCore::RenderBox::scrolledContentOffset): Deleted.
+ * rendering/RenderBox.h:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::offsetFromContainer):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPosition):
+ (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGeometry):
+ * rendering/RenderMultiColumnFlowThread.cpp:
+ (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
+ * rendering/RenderNamedFlowThread.cpp:
+ (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::mapLocalToContainer):
+ (WebCore::RenderObject::pushMappingToContainer):
+ (WebCore::RenderObject::mapAbsoluteToLocalPoint):
+ (WebCore::RenderObject::offsetFromContainer):
+ * rendering/RenderTextControl.cpp:
+ (WebCore::RenderTextControl::hitInnerTextElement):
+
+2016-05-10 Simon Fraser <simon.fraser@apple.com>
+
</ins><span class="cx"> Horizontally-scrollable items with a 3d transform are rendered incorrectly in RTL when container has -webkit-overflow-scroll: touch
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=157482
</span><span class="cx"> rdar://problem/26204794
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleUnitscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleUnits.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleUnits.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/editing/VisibleUnits.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -972,7 +972,7 @@
</span><span class="cx"> static inline IntPoint absoluteLineDirectionPointToLocalPointInBlock(RootInlineBox& root, int lineDirectionPoint)
</span><span class="cx"> {
</span><span class="cx"> RenderBlockFlow& containingBlock = root.blockFlow();
</span><del>- FloatPoint absoluteBlockPoint = containingBlock.localToAbsolute(FloatPoint()) - containingBlock.scrolledContentOffset();
</del><ins>+ FloatPoint absoluteBlockPoint = containingBlock.localToAbsolute(FloatPoint()) - toFloatSize(containingBlock.scrollPosition());
</ins><span class="cx">
</span><span class="cx"> if (containingBlock.isHorizontalWritingMode())
</span><span class="cx"> return IntPoint(lineDirectionPoint - absoluteBlockPoint.x(), root.blockDirectionPointInLine());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingLayoutStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/LayoutState.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/LayoutState.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/LayoutState.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> m_clipped = true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_paintOffset -= renderer->scrolledContentOffset();
</del><ins>+ m_paintOffset -= toLayoutSize(renderer->scrollPosition());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // If we establish a new page height, then cache the offset to the top of the first page.
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> m_clipped = true;
</span><span class="cx"> auto& containerBox = downcast<RenderBox>(*container);
</span><span class="cx"> m_clipRect = LayoutRect(toLayoutPoint(m_paintOffset), containerBox.cachedSizeForOverflowClip());
</span><del>- m_paintOffset -= containerBox.scrolledContentOffset();
</del><ins>+ m_paintOffset -= toLayoutSize(containerBox.scrollPosition());
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -1571,7 +1571,7 @@
</span><span class="cx">
</span><span class="cx"> // Adjust our painting position if we're inside a scrolled layer (e.g., an overflow:auto div).
</span><span class="cx"> LayoutPoint scrolledOffset = paintOffset;
</span><del>- scrolledOffset.move(-scrolledContentOffset());
</del><ins>+ scrolledOffset.moveBy(-scrollPosition());
</ins><span class="cx">
</span><span class="cx"> // Column rules need to account for scrolling and clipping.
</span><span class="cx"> // FIXME: Clipping of column rules does not work. We will need a separate paint phase for column rules I suspect in order to get
</span><span class="lines">@@ -1754,7 +1754,7 @@
</span><span class="cx"> return GapRects();
</span><span class="cx">
</span><span class="cx"> FloatPoint containerPoint = localToContainerPoint(FloatPoint(), repaintContainer, UseTransforms);
</span><del>- LayoutPoint offsetFromRepaintContainer(containerPoint - scrolledContentOffset());
</del><ins>+ LayoutPoint offsetFromRepaintContainer(containerPoint - toFloatSize(scrollPosition()));
</ins><span class="cx">
</span><span class="cx"> LogicalSelectionOffsetCaches cache(*this);
</span><span class="cx"> LayoutUnit lastTop = 0;
</span><span class="lines">@@ -1783,7 +1783,7 @@
</span><span class="cx"> flipForWritingMode(localBounds);
</span><span class="cx"> gapRectsBounds = localToContainerQuad(FloatRect(localBounds), &layer->renderer()).enclosingBoundingBox();
</span><span class="cx"> if (layer->renderer().isBox())
</span><del>- gapRectsBounds.move(layer->renderBox()->scrolledContentOffset());
</del><ins>+ gapRectsBounds.moveBy(layer->renderBox()->scrollPosition());
</ins><span class="cx"> }
</span><span class="cx"> layer->addBlockSelectionGapsBounds(gapRectsBounds);
</span><span class="cx"> }
</span><span class="lines">@@ -2487,7 +2487,7 @@
</span><span class="cx"> bool checkChildren = !useClip || (hasControlClip() ? locationInContainer.intersects(controlClipRect(adjustedLocation)) : locationInContainer.intersects(overflowClipRect(adjustedLocation, namedFlowFragment, IncludeOverlayScrollbarSize)));
</span><span class="cx"> if (checkChildren) {
</span><span class="cx"> // Hit test descendants first.
</span><del>- LayoutSize scrolledOffset(localOffset - scrolledContentOffset());
</del><ins>+ LayoutSize scrolledOffset(localOffset - toLayoutSize(scrollPosition()));
</ins><span class="cx">
</span><span class="cx"> if (hitTestAction == HitTestFloat && hitTestFloats(request, result, locationInContainer, toLayoutPoint(scrolledOffset)))
</span><span class="cx"> return true;
</span><span class="lines">@@ -2659,7 +2659,7 @@
</span><span class="cx"> void RenderBlock::offsetForContents(LayoutPoint& offset) const
</span><span class="cx"> {
</span><span class="cx"> offset = flipForWritingMode(offset);
</span><del>- offset += scrolledContentOffset();
</del><ins>+ offset += toLayoutSize(scrollPosition());
</ins><span class="cx"> offset = flipForWritingMode(offset);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -564,7 +564,7 @@
</span><span class="cx">
</span><span class="cx"> if (hasOverflowClip()) {
</span><span class="cx"> // Adjust repaint rect for scroll offset
</span><del>- repaintRect.move(-scrolledContentOffset());
</del><ins>+ repaintRect.moveBy(-scrollPosition());
</ins><span class="cx">
</span><span class="cx"> // Don't allow this rect to spill out of our overflow box.
</span><span class="cx"> repaintRect.intersect(LayoutRect(LayoutPoint(), size()));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -990,14 +990,13 @@
</span><span class="cx"> return style().paddingStart().isPercentOrCalculated() || style().paddingEnd().isPercentOrCalculated();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-IntSize RenderBox::scrolledContentOffset() const
</del><ins>+ScrollPosition RenderBox::scrollPosition() const
</ins><span class="cx"> {
</span><span class="cx"> if (!hasOverflowClip())
</span><del>- return IntSize();
</del><ins>+ return { 0, 0 };
</ins><span class="cx">
</span><span class="cx"> ASSERT(hasLayer());
</span><del>- // FIXME: Renderer code needs scrollOffset/scrollPosition disambiguation.
- return layer()->scrolledContentOffset();
</del><ins>+ return layer()->scrollPosition();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutSize RenderBox::cachedSizeForOverflowClip() const
</span><span class="lines">@@ -1010,7 +1009,7 @@
</span><span class="cx"> void RenderBox::applyCachedClipAndScrollOffsetForRepaint(LayoutRect& paintRect) const
</span><span class="cx"> {
</span><span class="cx"> flipForWritingMode(paintRect);
</span><del>- paintRect.move(-scrolledContentOffset()); // For overflow:auto/scroll/hidden.
</del><ins>+ paintRect.moveBy(-scrollPosition()); // For overflow:auto/scroll/hidden.
</ins><span class="cx">
</span><span class="cx"> // Do not clip scroll layer contents to reduce the number of repaints while scrolling.
</span><span class="cx"> if (usesCompositedScrolling()) {
</span><span class="lines">@@ -1476,7 +1475,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> if (childLayer->hasTransform() || childLayer->isTransparent() || childLayer->hasFilter())
</span><span class="cx"> return false;
</span><del>- if (!childBox.scrolledContentOffset().isZero())
</del><ins>+ if (!childBox.scrollPosition().isZero())
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx"> return true;
</span><span class="lines">@@ -2108,7 +2107,7 @@
</span><span class="cx"> offset += topLeftLocationOffset();
</span><span class="cx">
</span><span class="cx"> if (is<RenderBox>(renderer))
</span><del>- offset -= downcast<RenderBox>(renderer).scrolledContentOffset();
</del><ins>+ offset -= toLayoutSize(downcast<RenderBox>(renderer).scrollPosition());
</ins><span class="cx">
</span><span class="cx"> if (style().position() == AbsolutePosition && renderer.isInFlowPositioned() && is<RenderInline>(renderer))
</span><span class="cx"> offset += downcast<RenderInline>(renderer).offsetForInFlowPositionedInline(this);
</span><span class="lines">@@ -4938,7 +4937,7 @@
</span><span class="cx"> return overflowRect;
</span><span class="cx">
</span><span class="cx"> overflowRect.unite(layoutOverflowRect());
</span><del>- overflowRect.move(-scrolledContentOffset());
</del><ins>+ overflowRect.moveBy(-scrollPosition());
</ins><span class="cx"> return overflowRect;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.h (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.h        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderBox.h        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -574,7 +574,7 @@
</span><span class="cx"> virtual bool needsPreferredWidthsRecalculation() const;
</span><span class="cx"> virtual void computeIntrinsicRatioInformation(FloatSize& /* intrinsicSize */, double& /* intrinsicRatio */) const { }
</span><span class="cx">
</span><del>- IntSize scrolledContentOffset() const;
</del><ins>+ ScrollPosition scrollPosition() const;
</ins><span class="cx"> LayoutSize cachedSizeForOverflowClip() const;
</span><span class="cx"> void applyCachedClipAndScrollOffsetForRepaint(LayoutRect& paintRect) const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -727,8 +727,7 @@
</span><span class="cx"> context.clip(thisBox.overflowClipRect(rect.location(), currentRenderNamedFlowFragment()));
</span><span class="cx">
</span><span class="cx"> // Adjust the paint rect to reflect a scrolled content box with borders at the ends.
</span><del>- IntSize offset = thisBox.scrolledContentOffset();
- scrolledPaintRect.move(-offset);
</del><ins>+ scrolledPaintRect.moveBy(-thisBox.scrollPosition());
</ins><span class="cx"> scrolledPaintRect.setWidth(bLeft + layer()->scrollWidth() + bRight);
</span><span class="cx"> scrolledPaintRect.setHeight(borderTop() + layer()->scrollHeight() + borderBottom());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -1318,7 +1318,7 @@
</span><span class="cx"> offset += offsetForInFlowPosition();
</span><span class="cx">
</span><span class="cx"> if (is<RenderBox>(container))
</span><del>- offset -= downcast<RenderBox>(container).scrolledContentOffset();
</del><ins>+ offset -= toLayoutSize(downcast<RenderBox>(container).scrollPosition());
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><span class="cx"> *offsetDependsOnPoint = (is<RenderBox>(container) && container.style().isFlippedBlocksWritingMode()) || is<RenderFlowThread>(container);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -1346,20 +1346,16 @@
</span><span class="cx"> RenderLayer* positionedParent;
</span><span class="cx"> if (renderer().isOutOfFlowPositioned() && (positionedParent = enclosingAncestorForPosition(renderer().style().position()))) {
</span><span class="cx"> // For positioned layers, we subtract out the enclosing positioned layer's scroll offset.
</span><del>- if (positionedParent->renderer().hasOverflowClip()) {
- LayoutSize offset = positionedParent->scrolledContentOffset();
- localPoint -= offset;
- }
</del><ins>+ if (positionedParent->renderer().hasOverflowClip())
+ localPoint -= toLayoutSize(positionedParent->scrollPosition());
</ins><span class="cx">
</span><span class="cx"> if (renderer().isOutOfFlowPositioned() && positionedParent->renderer().isInFlowPositioned() && is<RenderInline>(positionedParent->renderer())) {
</span><span class="cx"> LayoutSize offset = downcast<RenderInline>(positionedParent->renderer()).offsetForInFlowPositionedInline(&downcast<RenderBox>(renderer()));
</span><span class="cx"> localPoint += offset;
</span><span class="cx"> }
</span><span class="cx"> } else if (parent()) {
</span><del>- if (parent()->renderer().hasOverflowClip()) {
- IntSize scrollOffset = parent()->scrolledContentOffset();
- localPoint -= scrollOffset;
- }
</del><ins>+ if (parent()->renderer().hasOverflowClip())
+ localPoint -= toLayoutSize(parent()->scrollPosition());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool positionOrOffsetChanged = false;
</span><span class="lines">@@ -5444,7 +5440,7 @@
</span><span class="cx">
</span><span class="cx"> LayoutPoint portionLocation = flowThreadPortionRect.location();
</span><span class="cx"> LayoutRect regionContentBox = namedFlowFragment->fragmentContainer().contentBoxRect();
</span><del>- LayoutSize moveOffset = portionLocation - regionContentBox.location() + namedFlowFragment->fragmentContainer().scrolledContentOffset();
</del><ins>+ LayoutSize moveOffset = portionLocation - regionContentBox.location() + toLayoutSize(namedFlowFragment->fragmentContainer().scrollPosition());
</ins><span class="cx">
</span><span class="cx"> ClipRect newOverflowClipRect = clipRects.overflowClipRect();
</span><span class="cx"> newOverflowClipRect.move(moveOffset);
</span><span class="lines">@@ -5762,7 +5758,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutRect rect = m_blockSelectionGapsBounds;
</span><del>- rect.move(-scrolledContentOffset());
</del><ins>+ rect.moveBy(-scrollPosition());
</ins><span class="cx"> if (renderer().hasOverflowClip() && !usesCompositedScrolling())
</span><span class="cx"> rect.intersect(downcast<RenderBox>(renderer()).overflowClipRect(LayoutPoint(), nullptr)); // FIXME: Regions not accounted for.
</span><span class="cx"> if (renderer().hasClip())
</span><span class="lines">@@ -6958,7 +6954,7 @@
</span><span class="cx"> CurrentRenderRegionMaintainer regionMaintainer(*region);
</span><span class="cx"> region->setRegionObjectsRegionStyle();
</span><span class="cx">
</span><del>- LayoutSize moveOffset = region->flowThreadPortionLocation() - (paintOffset + regionContentBox.location()) + region->fragmentContainer().scrolledContentOffset();
</del><ins>+ LayoutSize moveOffset = region->flowThreadPortionLocation() - (paintOffset + regionContentBox.location()) + toLayoutSize(region->fragmentContainer().scrollPosition());
</ins><span class="cx"> FloatPoint adjustedPaintOffset = roundPointToDevicePixels(toLayoutPoint(moveOffset), renderer().document().deviceScaleFactor());
</span><span class="cx"> context.save();
</span><span class="cx"> context.translate(-adjustedPaintOffset.x(), -adjustedPaintOffset.y());
</span><span class="lines">@@ -7046,7 +7042,7 @@
</span><span class="cx"> if (!fragment.backgroundRect.intersects(hitTestLocation))
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- LayoutSize hitTestOffset = portionLocation - (fragment.layerBounds.location() + regionContentBox.location()) + region.fragmentContainer().scrolledContentOffset();
</del><ins>+ LayoutSize hitTestOffset = portionLocation - (fragment.layerBounds.location() + regionContentBox.location()) + toLayoutSize(region.fragmentContainer().scrollPosition());
</ins><span class="cx">
</span><span class="cx"> // Always ignore clipping, since the RenderFlowThread has nothing to do with the bounds of the FrameView.
</span><span class="cx"> HitTestRequest newRequest(request.type() | HitTestRequest::IgnoreClipping | HitTestRequest::DisallowUserAgentShadowContent);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -758,10 +758,6 @@
</span><span class="cx"> typedef unsigned UpdateLayerPositionsAfterScrollFlags;
</span><span class="cx"> void updateLayerPositionsAfterScroll(RenderGeometryMap*, UpdateLayerPositionsAfterScrollFlags = NoFlag);
</span><span class="cx">
</span><del>- friend IntSize RenderBox::scrolledContentOffset() const;
- // FIXME: rename this toscrolledContentPosition(), or remove it.
- IntSize scrolledContentOffset() const { return toIntSize(m_scrollPosition); }
-
</del><span class="cx"> ScrollOffset clampScrollOffset(const ScrollOffset&) const;
</span><span class="cx">
</span><span class="cx"> RenderLayer* enclosingPaginationLayerInSubtree(const RenderLayer* rootLayer, PaginationInclusionMode) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -822,9 +822,8 @@
</span><span class="cx"> #else
</span><span class="cx"> if (compAncestor && compAncestor->needsCompositedScrolling()) {
</span><span class="cx"> auto& renderBox = downcast<RenderBox>(compAncestor->renderer());
</span><del>- LayoutSize scrollOffset = compAncestor->scrolledContentOffset();
</del><span class="cx"> LayoutPoint scrollOrigin(renderBox.borderLeft(), renderBox.borderTop());
</span><del>- graphicsLayerParentLocation = scrollOrigin - scrollOffset;
</del><ins>+ graphicsLayerParentLocation = scrollOrigin - toLayoutSize(compAncestor->scrollOffset());
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -610,7 +610,7 @@
</span><span class="cx">
</span><span class="cx"> LayoutSize offset(translatedPhysicalPoint.x(), translatedPhysicalPoint.y());
</span><span class="cx"> if (is<RenderBox>(enclosingContainer))
</span><del>- offset -= downcast<RenderBox>(enclosingContainer).scrolledContentOffset();
</del><ins>+ offset -= toLayoutSize(downcast<RenderBox>(enclosingContainer).scrollPosition());
</ins><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderNamedFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -296,26 +296,26 @@
</span><span class="cx"> flipForWritingModeLocalCoordinates(visualOverflowRect);
</span><span class="cx">
</span><span class="cx"> // Take the scrolled offset of this object's parents into consideration.
</span><del>- IntSize scrolledContentOffset;
</del><ins>+ ScrollPosition scrollPosition;
</ins><span class="cx"> RenderBlock* containingBlock = box.containingBlock();
</span><span class="cx"> while (containingBlock && !is<RenderView>(*containingBlock)) {
</span><span class="cx"> if (containingBlock->isRenderNamedFlowThread()) {
</span><span class="cx"> // We've reached the flow thread, take the scrolled offset of the region into consideration.
</span><span class="cx"> ASSERT(containingBlock == this);
</span><del>- scrolledContentOffset += fragment.fragmentContainer().scrolledContentOffset();
</del><ins>+ scrollPosition += toIntSize(fragment.fragmentContainer().scrollPosition());
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- scrolledContentOffset += containingBlock->scrolledContentOffset();
</del><ins>+ scrollPosition += toIntSize(containingBlock->scrollPosition());
</ins><span class="cx"> containingBlock = containingBlock->containingBlock();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (!scrolledContentOffset.isZero()) {
</del><ins>+ if (!scrollPosition.isZero()) {
</ins><span class="cx"> if (style().isFlippedBlocksWritingMode())
</span><del>- scrolledContentOffset = -scrolledContentOffset;
</del><ins>+ scrollPosition = -scrollPosition;
</ins><span class="cx">
</span><del>- visualOverflowRect.inflateX(scrolledContentOffset.width());
- visualOverflowRect.inflateY(scrolledContentOffset.height());
</del><ins>+ visualOverflowRect.inflateX(scrollPosition.x());
+ visualOverflowRect.inflateY(scrollPosition.y());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Layers are in physical coordinates so the origin must be moved to the physical top-left of the flowthread.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -1248,7 +1248,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (is<RenderBox>(*parent))
</span><del>- transformState.move(-downcast<RenderBox>(*parent).scrolledContentOffset());
</del><ins>+ transformState.move(-toLayoutSize(downcast<RenderBox>(*parent).scrollPosition()));
</ins><span class="cx">
</span><span class="cx"> parent->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
</span><span class="cx"> }
</span><span class="lines">@@ -1264,7 +1264,7 @@
</span><span class="cx"> // FIXME: this should call offsetFromContainer to share code, but I'm not sure it's ever called.
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> if (is<RenderBox>(*container))
</span><del>- offset = -downcast<RenderBox>(*container).scrolledContentOffset();
</del><ins>+ offset = -toLayoutSize(downcast<RenderBox>(*container).scrollPosition());
</ins><span class="cx">
</span><span class="cx"> geometryMap.push(this, offset, false);
</span><span class="cx">
</span><span class="lines">@@ -1276,7 +1276,7 @@
</span><span class="cx"> if (auto* parent = this->parent()) {
</span><span class="cx"> parent->mapAbsoluteToLocalPoint(mode, transformState);
</span><span class="cx"> if (is<RenderBox>(*parent))
</span><del>- transformState.move(downcast<RenderBox>(*parent).scrolledContentOffset());
</del><ins>+ transformState.move(toLayoutSize(downcast<RenderBox>(*parent).scrollPosition()));
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1342,7 +1342,7 @@
</span><span class="cx">
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> if (is<RenderBox>(container))
</span><del>- offset -= downcast<RenderBox>(container).scrolledContentOffset();
</del><ins>+ offset -= toLayoutSize(downcast<RenderBox>(container).scrollPosition());
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><span class="cx"> *offsetDependsOnPoint = is<RenderFlowThread>(container);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (200670 => 200671)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-05-11 04:26:04 UTC (rev 200670)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-05-11 04:48:08 UTC (rev 200671)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutPoint adjustedLocation = accumulatedOffset + location();
</span><del>- LayoutPoint localPoint = pointInContainer - toLayoutSize(adjustedLocation + innerText->renderBox()->location()) + scrolledContentOffset();
</del><ins>+ LayoutPoint localPoint = pointInContainer - toLayoutSize(adjustedLocation + innerText->renderBox()->location()) + toLayoutSize(scrollPosition());
</ins><span class="cx"> result.setInnerNode(innerText);
</span><span class="cx"> result.setInnerNonSharedNode(innerText);
</span><span class="cx"> result.setLocalPoint(localPoint);
</span></span></pre>
</div>
</div>
</body>
</html>