<!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>[169312] 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/169312">169312</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2014-05-24 13:40:03 -0700 (Sat, 24 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Share some more ScrollingTreeScrollingNode code
https://bugs.webkit.org/show_bug.cgi?id=133248

Reviewed by Sam Weinig.

Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
down to ScrollingTreeFrameScrollingNode.

This requires that scrollPosition() return the right thing for each class, so make
it virtual. Future patches will reduce the confusion between the committed scroll
position and the one derived from layers.

* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
(WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
* page/scrolling/ScrollingTreeFrameScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollPosition):
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeFrameScrollingNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeFrameScrollingNodeh">trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeScrollingNodeh">trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSh">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSmm">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMach">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/ChangeLog        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -1,3 +1,39 @@
</span><ins>+2014-05-23  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Share some more ScrollingTreeScrollingNode code
+        https://bugs.webkit.org/show_bug.cgi?id=133248
+
+        Reviewed by Sam Weinig.
+
+        Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
+        down to ScrollingTreeFrameScrollingNode.
+        
+        This requires that scrollPosition() return the right thing for each class, so make
+        it virtual. Future patches will reduce the confusion between the committed scroll
+        position and the one derived from layers.
+
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
+        (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
+        (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        (WebCore::ScrollingTreeScrollingNode::scrollPosition):
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
+        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.
+
</ins><span class="cx"> 2014-05-24  Chris Fleizach  &lt;cfleizach@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: fix coordinate mapping for iOS accessibility
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeFrameScrollingNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -72,7 +72,26 @@
</span><span class="cx">     if (state.hasChangedProperty(ScrollingStateFrameScrollingNode::TopContentInset))
</span><span class="cx">         m_topContentInset = state.topContentInset();
</span><span class="cx"> }
</span><del>-    
</del><ins>+
+void ScrollingTreeFrameScrollingNode::scrollBy(const FloatSize&amp; offset)
+{
+    setScrollPosition(scrollPosition() + offset);
+}
+
+void ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints(const FloatSize&amp; offset)
+{
+    setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
+}
+
+void ScrollingTreeFrameScrollingNode::setScrollPosition(const FloatPoint&amp; scrollPosition)
+{
+    FloatPoint newScrollPosition = scrollPosition;
+    newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
+    newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
+
+    setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(ASYNC_SCROLLING)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeFrameScrollingNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     virtual void parentScrollPositionDidChange(const FloatRect&amp; /*viewportRect*/, const FloatSize&amp; /*cumulativeDelta*/) override { }
</span><span class="cx"> 
</span><span class="cx">     virtual void handleWheelEvent(const PlatformWheelEvent&amp;) = 0;
</span><del>-    virtual void setScrollPosition(const FloatPoint&amp;) = 0;
</del><ins>+    virtual void setScrollPosition(const FloatPoint&amp;);
</ins><span class="cx">     virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&amp;) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void updateLayersAfterViewportChange(const FloatRect&amp; viewportRect, double scale) = 0;
</span><span class="lines">@@ -58,6 +58,9 @@
</span><span class="cx"> protected:
</span><span class="cx">     ScrollingTreeFrameScrollingNode(ScrollingTree&amp;, ScrollingNodeID);
</span><span class="cx"> 
</span><ins>+    void scrollBy(const FloatSize&amp;);
+    void scrollByWithoutContentEdgeConstraints(const FloatSize&amp;);
+
</ins><span class="cx">     float frameScaleFactor() const { return m_frameScaleFactor; }
</span><span class="cx">     int headerHeight() const { return m_headerHeight; }
</span><span class="cx">     int footerHeight() const { return m_footerHeight; }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeScrollingNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setScrollLayerPosition(const FloatPoint&amp;) = 0;
</span><span class="cx"> 
</span><del>-    const FloatPoint&amp; scrollPosition() const { return m_scrollPosition; }
</del><ins>+    virtual FloatPoint scrollPosition() const { return m_scrollPosition; }
</ins><span class="cx">     const FloatSize&amp; scrollableAreaSize() const { return m_scrollableAreaSize; }
</span><span class="cx">     const FloatSize&amp; totalContentsSize() const { return m_totalContentsSize; }
</span><span class="cx">     const IntPoint&amp; scrollOrigin() const { return m_scrollOrigin; }
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     FloatSize m_scrollableAreaSize;
</span><span class="cx">     FloatSize m_totalContentsSize;
</span><span class="cx">     FloatSize m_totalContentsSizeForRubberBand;
</span><del>-    FloatPoint m_scrollPosition;
</del><ins>+    FloatPoint m_scrollPosition; // FIXME: this is the committed scroll position.
</ins><span class="cx">     IntPoint m_scrollOrigin;
</span><span class="cx">     
</span><span class="cx">     ScrollableAreaParameters m_scrollableAreaParameters;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -48,8 +48,7 @@
</span><span class="cx">     virtual void updateAfterChildren(const ScrollingStateNode&amp;) override;
</span><span class="cx">     virtual void handleWheelEvent(const PlatformWheelEvent&amp;) override { }
</span><span class="cx"> 
</span><del>-    FloatPoint scrollPosition() const;
-    virtual void setScrollPosition(const FloatPoint&amp;) override;
</del><ins>+    virtual FloatPoint scrollPosition() const override;
</ins><span class="cx">     virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&amp;) override;
</span><span class="cx"> 
</span><span class="cx">     virtual void updateLayersAfterViewportChange(const FloatRect&amp; viewportRect, double scale);
</span><span class="lines">@@ -57,12 +56,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setScrollLayerPosition(const FloatPoint&amp;) override;
</span><span class="cx"> 
</span><del>-    FloatPoint minimumScrollPosition() const;
-    FloatPoint maximumScrollPosition() const;
</del><ins>+    virtual FloatPoint minimumScrollPosition() const override;
+    virtual FloatPoint maximumScrollPosition() const override;
</ins><span class="cx"> 
</span><del>-    void scrollBy(const IntSize&amp;);
-    void scrollByWithoutContentEdgeConstraints(const IntSize&amp;);
-
</del><span class="cx"> private:
</span><span class="cx">     void updateChildNodesAfterScroll(const FloatPoint&amp;);
</span><span class="cx">     CALayer *scrollLayer() const { return m_scrollLayer.get(); }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeFrameScrollingNodeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -106,15 +106,6 @@
</span><span class="cx">     return IntPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeFrameScrollingNodeIOS::setScrollPosition(const FloatPoint&amp; scrollPosition)
-{
-    FloatPoint newScrollPosition = scrollPosition;
-    newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
-    newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
-
-    setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
-}
-
</del><span class="cx"> void ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&amp; scrollPosition)
</span><span class="cx"> {
</span><span class="cx">     if (shouldUpdateScrollLayerPositionSynchronously()) {
</span><span class="lines">@@ -211,16 +202,6 @@
</span><span class="cx">     return position;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeFrameScrollingNodeIOS::scrollBy(const IntSize&amp; offset)
-{
-    setScrollPosition(scrollPosition() + offset);
-}
-
-void ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints(const IntSize&amp; offset)
-{
-    setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(ASYNC_SCROLLING)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     virtual void stopSnapRubberbandTimer() override;
</span><span class="cx">     virtual void adjustScrollPositionToBoundsIfNecessary() override;
</span><span class="cx"> 
</span><del>-    FloatPoint scrollPosition() const;
</del><ins>+    virtual FloatPoint scrollPosition() const override;
</ins><span class="cx">     virtual void setScrollPosition(const FloatPoint&amp;) override;
</span><span class="cx">     virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -76,9 +76,6 @@
</span><span class="cx">     virtual FloatPoint minimumScrollPosition() const override;
</span><span class="cx">     virtual FloatPoint maximumScrollPosition() const override;
</span><span class="cx"> 
</span><del>-    void scrollBy(const IntSize&amp;);
-    void scrollByWithoutContentEdgeConstraints(const IntSize&amp;);
-
</del><span class="cx">     void updateMainFramePinState(const FloatPoint&amp; scrollPosition);
</span><span class="cx"> 
</span><span class="cx">     void logExposedUnfilledArea();
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm (169311 => 169312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2014-05-24 20:40:00 UTC (rev 169311)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2014-05-24 20:40:03 UTC (rev 169312)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">                 m_probableMainThreadScrollPosition = scrollingStateNode.requestedScrollPosition();
</span><span class="cx">             else {
</span><span class="cx">                 CGPoint scrollLayerPosition = m_scrollLayer.get().position;
</span><del>-                m_probableMainThreadScrollPosition = IntPoint(-scrollLayerPosition.x, -scrollLayerPosition.y);
</del><ins>+                m_probableMainThreadScrollPosition = FloatPoint(-scrollLayerPosition.x, -scrollLayerPosition.y);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -262,12 +262,12 @@
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTreeFrameScrollingNodeMac::immediateScrollBy(const FloatSize&amp; offset)
</span><span class="cx"> {
</span><del>-    scrollBy(roundedIntSize(offset));
</del><ins>+    scrollBy(offset);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints(const FloatSize&amp; offset)
</span><span class="cx"> {
</span><del>-    scrollByWithoutContentEdgeConstraints(roundedIntSize(offset));
</del><ins>+    scrollByWithoutContentEdgeConstraints(offset);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer()
</span><span class="lines">@@ -315,17 +315,13 @@
</span><span class="cx">         return m_probableMainThreadScrollPosition;
</span><span class="cx"> 
</span><span class="cx">     CGPoint scrollLayerPosition = m_scrollLayer.get().position;
</span><del>-    return IntPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());
</del><ins>+    return FloatPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTreeFrameScrollingNodeMac::setScrollPosition(const FloatPoint&amp; scrollPosition)
</span><span class="cx"> {
</span><del>-    FloatPoint newScrollPosition = scrollPosition;
-    newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
-    newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
</del><ins>+    ScrollingTreeFrameScrollingNode::setScrollPosition(scrollPosition);
</ins><span class="cx"> 
</span><del>-    setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
-
</del><span class="cx">     if (scrollingTree().scrollingPerformanceLoggingEnabled())
</span><span class="cx">         logExposedUnfilledArea();
</span><span class="cx"> }
</span><span class="lines">@@ -443,16 +439,6 @@
</span><span class="cx">     return position;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeFrameScrollingNodeMac::scrollBy(const IntSize&amp; offset)
-{
-    setScrollPosition(scrollPosition() + offset);
-}
-
-void ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints(const IntSize&amp; offset)
-{
-    setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
-}
-
</del><span class="cx"> void ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState(const FloatPoint&amp; scrollPosition)
</span><span class="cx"> {
</span><span class="cx">     bool pinnedToTheLeft = scrollPosition.x() &lt;= minimumScrollPosition().x();
</span></span></pre>
</div>
</div>

</body>
</html>