<!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>[166293] trunk/Source</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/166293">166293</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2014-03-26 08:09:03 -0700 (Wed, 26 Mar 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add a new type of scrolling tree node for overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=130763

Reviewed by Tim Horton.

Prepare for overflow scrolling via the scrolling tree by adding
a new scrolling node type for overflow:scroll nodes. Mostly
this is a new ScrollingNodeType that gets mapped to the same
scrolling state nodes and scrolling nodes, but iOS creates
state and scrolling nodes specific to overflow:scroll.

Change the type checking on nodes to use virtual functions instead
of just checking the node type, to allow the macros to work with
the new scrolling node type.

Source/WebCore:

* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::isFixedNode):
(WebCore::ScrollingStateNode::isStickyNode):
(WebCore::ScrollingStateNode::isScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::create):
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::isFixedNode):
(WebCore::ScrollingTreeNode::isStickyNode):
(WebCore::ScrollingTreeNode::isScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingCoordinatorIOS.mm:
(WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::create):
(WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::create):
(WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

Source/WebKit2:

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::encodeNodeAndDescendants):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::createNode):
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* WebKit2.xcodeproj/project.pbxproj:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorcpp">trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingCoordinatorh">trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateFixedNodeh">trunk/Source/WebCore/page/scrolling/ScrollingStateFixedNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateNodeh">trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateScrollingNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateScrollingNodeh">trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateStickyNodeh">trunk/Source/WebCore/page/scrolling/ScrollingStateStickyNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateTreecpp">trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeNodeh">trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeScrollingNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeScrollingNodeh">trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingCoordinatorIOSmm">trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeScrollingNodeIOSh">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeScrollingNodeIOSmm">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingCoordinatorMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeFixedNodeh">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMach">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeStickyNodeh">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedScrollingRemoteScrollingCoordinatorTransactioncpp">trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosRemoteScrollingCoordinatorProxyIOSmm">trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/WebKit2/UIProcess/Scrolling/ios/</li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOSh">trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOSmm">trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/ChangeLog        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2014-03-25  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Add a new type of scrolling tree node for overflow scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=130763
+
+        Reviewed by Tim Horton.
+
+        Prepare for overflow scrolling via the scrolling tree by adding
+        a new scrolling node type for overflow:scroll nodes. Mostly
+        this is a new ScrollingNodeType that gets mapped to the same
+        scrolling state nodes and scrolling nodes, but iOS creates
+        state and scrolling nodes specific to overflow:scroll.
+        
+        Change the type checking on nodes to use virtual functions instead
+        of just checking the node type, to allow the macros to work with
+        the new scrolling node type.
+
+        * WebCore.exp.in:
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
+        * page/scrolling/ScrollingCoordinator.h:
+        * page/scrolling/ScrollingStateFixedNode.h:
+        * page/scrolling/ScrollingStateNode.h:
+        (WebCore::ScrollingStateNode::isFixedNode):
+        (WebCore::ScrollingStateNode::isStickyNode):
+        (WebCore::ScrollingStateNode::isScrollingNode):
+        * page/scrolling/ScrollingStateScrollingNode.cpp:
+        (WebCore::ScrollingStateScrollingNode::create):
+        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
+        * page/scrolling/ScrollingStateScrollingNode.h:
+        * page/scrolling/ScrollingStateStickyNode.h:
+        * page/scrolling/ScrollingStateTree.cpp:
+        (WebCore::ScrollingStateTree::attachNode):
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
+        (WebCore::ScrollingTree::updateTreeFromStateNode):
+        * page/scrolling/ScrollingTreeNode.h:
+        (WebCore::ScrollingTreeNode::isFixedNode):
+        (WebCore::ScrollingTreeNode::isStickyNode):
+        (WebCore::ScrollingTreeNode::isScrollingNode):
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
+        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
+        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
+        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
+        (WebCore::ScrollingTreeScrollingNodeIOS::create):
+        (WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
+        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
+        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
+        * page/scrolling/mac/ScrollingTreeFixedNode.h:
+        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeScrollingNodeMac::create):
+        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
+        * page/scrolling/mac/ScrollingTreeStickyNode.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
+
</ins><span class="cx"> 2014-03-26  Krzysztof Czech  &lt;k.czech@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [ATK] Utilize new AtkValue interface coming in ATK 2.11.92
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -2559,7 +2559,6 @@
</span><span class="cx"> __ZN7WebCore27createDragImageForSelectionERNS_5FrameEb
</span><span class="cx"> __ZN7WebCore27tileControllerMemoryHandlerEv
</span><span class="cx"> __ZN7WebCore27withinTextUnitOfGranularityERKNS_15VisiblePositionENS_15TextGranularityENS_18SelectionDirectionE
</span><del>-__ZN7WebCore29ScrollingTreeScrollingNodeIOS6createERNS_13ScrollingTreeEy
</del><span class="cx"> __ZN7WebCore30closestWordBoundaryForPositionERKNS_15VisiblePositionE
</span><span class="cx"> __ZN7WebCore30enclosingTextUnitOfGranularityERKNS_15VisiblePositionENS_15TextGranularityENS_18SelectionDirectionE
</span><span class="cx"> __ZN7WebCore31NonSharedCharacterBreakIteratorC1EN3WTF10StringViewE
</span><span class="lines">@@ -2788,9 +2787,18 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(ASYNC_SCROLLING) &amp;&amp; PLATFORM(MAC)
</span><del>-__ZN7WebCore29ScrollingTreeScrollingNodeMac6createERNS_13ScrollingTreeEy
</del><ins>+__ZN7WebCore29ScrollingTreeScrollingNodeMac6createERNS_13ScrollingTreeENS_17ScrollingNodeTypeEy
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if ENABLE(ASYNC_SCROLLING) &amp;&amp; PLATFORM(IOS)
+__ZN7WebCore29ScrollingTreeScrollingNodeIOS20updateBeforeChildrenERKNS_18ScrollingStateNodeE
+__ZN7WebCore29ScrollingTreeScrollingNodeIOS19updateAfterChildrenERKNS_18ScrollingStateNodeE
+__ZN7WebCore29ScrollingTreeScrollingNodeIOS17setScrollPositionERKNS_10FloatPointE
+__ZN7WebCore29ScrollingTreeScrollingNodeIOSC2ERNS_13ScrollingTreeENS_17ScrollingNodeTypeEy
+__ZN7WebCore29ScrollingTreeScrollingNodeIOSD2Ev
+__ZN7WebCore29ScrollingTreeScrollingNodeIOS6createERNS_13ScrollingTreeENS_17ScrollingNodeTypeEy
+#endif
+
</ins><span class="cx"> #if USE(AVFOUNDATION)
</span><span class="cx"> __ZN7WebCore8Settings20gAVFoundationEnabledE
</span><span class="cx"> __ZN7WebCore8Settings22setAVFoundationEnabledEb
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx"> void AsyncScrollingCoordinator::ensureRootStateNodeForFrameView(FrameView* frameView)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(frameView-&gt;scrollLayerID());
</span><del>-    attachToStateTree(ScrollingNode, frameView-&gt;scrollLayerID(), 0);
</del><ins>+    attachToStateTree(FrameScrollingNode, frameView-&gt;scrollLayerID(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AsyncScrollingCoordinator::updateScrollingNode(ScrollingNodeID nodeID, GraphicsLayer* layer, GraphicsLayer* scrolledContentsLayer, GraphicsLayer* counterScrollingLayer)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> typedef unsigned SynchronousScrollingReasons;
</span><span class="cx"> typedef uint64_t ScrollingNodeID;
</span><span class="cx"> 
</span><del>-enum ScrollingNodeType { ScrollingNode, FixedNode, StickyNode };
</del><ins>+enum ScrollingNodeType { FrameScrollingNode, OverflowScrollingNode, FixedNode, StickyNode };
</ins><span class="cx"> 
</span><span class="cx"> class Document;
</span><span class="cx"> class Frame;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateFixedNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateFixedNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateFixedNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateFixedNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     FixedPositionViewportConstraints m_constraints;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateFixedNode, nodeType() == FixedNode);
</del><ins>+SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateFixedNode, isFixedNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -152,6 +152,10 @@
</span><span class="cx">     
</span><span class="cx">     ScrollingNodeType nodeType() const { return m_nodeType; }
</span><span class="cx"> 
</span><ins>+    bool isFixedNode() const { return m_nodeType == FixedNode; }
+    bool isStickyNode() const { return m_nodeType == StickyNode; }
+    bool isScrollingNode() const { return m_nodeType == FrameScrollingNode || m_nodeType == OverflowScrollingNode; }
+
</ins><span class="cx">     virtual PassOwnPtr&lt;ScrollingStateNode&gt; clone(ScrollingStateTree&amp; adoptiveTree) = 0;
</span><span class="cx">     PassOwnPtr&lt;ScrollingStateNode&gt; cloneAndReset(ScrollingStateTree&amp; adoptiveTree);
</span><span class="cx">     void cloneAndResetChildren(ScrollingStateNode&amp;, ScrollingStateTree&amp; adoptiveTree);
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateScrollingNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -34,13 +34,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-PassOwnPtr&lt;ScrollingStateScrollingNode&gt; ScrollingStateScrollingNode::create(ScrollingStateTree&amp; stateTree, ScrollingNodeID nodeID)
</del><ins>+PassOwnPtr&lt;ScrollingStateScrollingNode&gt; ScrollingStateScrollingNode::create(ScrollingStateTree&amp; stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><del>-    return adoptPtr(new ScrollingStateScrollingNode(stateTree, nodeID));
</del><ins>+    return adoptPtr(new ScrollingStateScrollingNode(stateTree, nodeType, nodeID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingStateScrollingNode::ScrollingStateScrollingNode(ScrollingStateTree&amp; stateTree, ScrollingNodeID nodeID)
-    : ScrollingStateNode(ScrollingNode, stateTree, nodeID)
</del><ins>+ScrollingStateScrollingNode::ScrollingStateScrollingNode(ScrollingStateTree&amp; stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
+    : ScrollingStateNode(nodeType, stateTree, nodeID)
</ins><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     , m_verticalScrollbarPainter(0)
</span><span class="cx">     , m_horizontalScrollbarPainter(0)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateScrollingNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ScrollingStateScrollingNode final : public ScrollingStateNode {
</span><span class="cx"> public:
</span><del>-    static PassOwnPtr&lt;ScrollingStateScrollingNode&gt; create(ScrollingStateTree&amp;, ScrollingNodeID);
</del><ins>+    static PassOwnPtr&lt;ScrollingStateScrollingNode&gt; create(ScrollingStateTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx"> 
</span><span class="cx">     virtual PassOwnPtr&lt;ScrollingStateNode&gt; clone(ScrollingStateTree&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     virtual void dumpProperties(TextStream&amp;, int indent) const override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ScrollingStateScrollingNode(ScrollingStateTree&amp;, ScrollingNodeID);
</del><ins>+    ScrollingStateScrollingNode(ScrollingStateTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx">     ScrollingStateScrollingNode(const ScrollingStateScrollingNode&amp;, ScrollingStateTree&amp;);
</span><span class="cx"> 
</span><span class="cx">     LayerRepresentation m_scrolledContentsLayer;
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">     bool m_requestedScrollPositionRepresentsProgrammaticScroll;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateScrollingNode, nodeType() == ScrollingNode);
</del><ins>+SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateScrollingNode, isScrollingNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateStickyNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateStickyNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateStickyNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateStickyNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     StickyPositionViewportConstraints m_constraints;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateStickyNode, nodeType() == StickyNode);
</del><ins>+SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateStickyNode, isStickyNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">         // If we're resetting the root node, we should clear the HashMap and destroy the current children.
</span><span class="cx">         clear();
</span><span class="cx"> 
</span><del>-        setRootStateNode(ScrollingStateScrollingNode::create(*this, newNodeID));
</del><ins>+        setRootStateNode(ScrollingStateScrollingNode::create(*this, FrameScrollingNode, newNodeID));
</ins><span class="cx">         newNode = rootStateNode();
</span><span class="cx">         m_hasNewRootStateNode = true;
</span><span class="cx">     } else {
</span><span class="lines">@@ -107,8 +107,9 @@
</span><span class="cx">             parent-&gt;appendChild(stickyNode.release());
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-        case ScrollingNode: {
-            OwnPtr&lt;ScrollingStateScrollingNode&gt; scrollingNode = ScrollingStateScrollingNode::create(*this, newNodeID);
</del><ins>+        case FrameScrollingNode:
+        case OverflowScrollingNode: {
+            OwnPtr&lt;ScrollingStateScrollingNode&gt; scrollingNode = ScrollingStateScrollingNode::create(*this, nodeType, newNodeID);
</ins><span class="cx">             newNode = scrollingNode.get();
</span><span class="cx">             parent-&gt;appendChild(scrollingNode.release());
</span><span class="cx">             break;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     if (!node)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (node-&gt;nodeType() != ScrollingNode)
</del><ins>+    if (node-&gt;nodeType() != FrameScrollingNode &amp;&amp; node-&gt;nodeType() != OverflowScrollingNode)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     toScrollingTreeScrollingNode(node)-&gt;updateForViewport(viewportRect, scale);
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">             // This is the root node. Nuke the node map.
</span><span class="cx">             m_nodeMap.clear();
</span><span class="cx"> 
</span><del>-            m_rootNode = static_pointer_cast&lt;ScrollingTreeScrollingNode&gt;(createNode(ScrollingNode, nodeID));
</del><ins>+            m_rootNode = static_pointer_cast&lt;ScrollingTreeScrollingNode&gt;(createNode(FrameScrollingNode, nodeID));
</ins><span class="cx">             m_nodeMap.set(nodeID, m_rootNode.get());
</span><span class="cx">             m_rootNode-&gt;updateBeforeChildren(*stateNode);
</span><span class="cx">             node = m_rootNode.get();
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -45,6 +45,10 @@
</span><span class="cx"> 
</span><span class="cx">     ScrollingNodeType nodeType() const { return m_nodeType; }
</span><span class="cx">     ScrollingNodeID scrollingNodeID() const { return m_nodeID; }
</span><ins>+    
+    bool isFixedNode() const { return nodeType() == FixedNode; }
+    bool isStickyNode() const { return nodeType() == StickyNode; }
+    bool isScrollingNode() const { return nodeType() == FrameScrollingNode || nodeType() == OverflowScrollingNode; }
</ins><span class="cx"> 
</span><span class="cx">     virtual void updateBeforeChildren(const ScrollingStateNode&amp;) = 0;
</span><span class="cx">     virtual void updateAfterChildren(const ScrollingStateNode&amp;) { }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeScrollingNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollingTreeScrollingNode::ScrollingTreeScrollingNode(ScrollingTree&amp; scrollingTree, ScrollingNodeID nodeID)
-    : ScrollingTreeNode(scrollingTree, ScrollingNode, nodeID)
</del><ins>+ScrollingTreeScrollingNode::ScrollingTreeScrollingNode(ScrollingTree&amp; scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
+    : ScrollingTreeNode(scrollingTree, nodeType, nodeID)
</ins><span class="cx">     , m_frameScaleFactor(1)
</span><span class="cx">     , m_headerHeight(0)
</span><span class="cx">     , m_footerHeight(0)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeScrollingNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     bool shouldUpdateScrollLayerPositionSynchronously() const { return m_synchronousScrollingReasons; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    ScrollingTreeScrollingNode(ScrollingTree&amp;, ScrollingNodeID);
</del><ins>+    ScrollingTreeScrollingNode(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx"> 
</span><span class="cx">     const FloatPoint&amp; scrollPosition() const { return m_scrollPosition; }
</span><span class="cx">     const FloatSize&amp; viewportSize() const { return m_viewportSize; }
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     ScrollBehaviorForFixedElements m_behaviorForFixed;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_NODE_TYPE_CASTS(ScrollingTreeScrollingNode, nodeType() == ScrollingNode);
</del><ins>+SCROLLING_NODE_TYPE_CASTS(ScrollingTreeScrollingNode, isScrollingNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingCoordinatorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -109,8 +109,9 @@
</span><span class="cx">     ASSERT(scrollingTree());
</span><span class="cx"> 
</span><span class="cx">     switch (nodeType) {
</span><del>-    case ScrollingNode:
-        return ScrollingTreeScrollingNodeIOS::create(*scrollingTree(), nodeID);
</del><ins>+    case FrameScrollingNode:
+    case OverflowScrollingNode:
+        return ScrollingTreeScrollingNodeIOS::create(*scrollingTree(), nodeType, nodeID);
</ins><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*scrollingTree(), nodeID);
</span><span class="cx">     case StickyNode:
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeScrollingNodeIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -37,12 +37,13 @@
</span><span class="cx"> 
</span><span class="cx"> class ScrollingTreeScrollingNodeIOS : public ScrollingTreeScrollingNode {
</span><span class="cx"> public:
</span><del>-    static PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; create(ScrollingTree&amp;, ScrollingNodeID);
</del><ins>+    static PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; create(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx">     virtual ~ScrollingTreeScrollingNodeIOS();
</span><span class="cx"> 
</span><ins>+protected:
+    ScrollingTreeScrollingNodeIOS(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
+
</ins><span class="cx"> private:
</span><del>-    ScrollingTreeScrollingNodeIOS(ScrollingTree&amp;, ScrollingNodeID);
-
</del><span class="cx">     // ScrollingTreeNode member functions.
</span><span class="cx">     virtual void updateBeforeChildren(const ScrollingStateNode&amp;) override;
</span><span class="cx">     virtual void updateAfterChildren(const ScrollingStateNode&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeScrollingNodeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -40,13 +40,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; ScrollingTreeScrollingNodeIOS::create(ScrollingTree&amp; scrollingTree, ScrollingNodeID nodeID)
</del><ins>+PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; ScrollingTreeScrollingNodeIOS::create(ScrollingTree&amp; scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><del>-    return adoptPtr(new ScrollingTreeScrollingNodeIOS(scrollingTree, nodeID));
</del><ins>+    return adoptPtr(new ScrollingTreeScrollingNodeIOS(scrollingTree, nodeType, nodeID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS(ScrollingTree&amp; scrollingTree, ScrollingNodeID nodeID)
-    : ScrollingTreeScrollingNode(scrollingTree, nodeID)
</del><ins>+ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS(ScrollingTree&amp; scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
+    : ScrollingTreeScrollingNode(scrollingTree, nodeType, nodeID)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingCoordinatorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -147,8 +147,11 @@
</span><span class="cx">     ASSERT(scrollingTree());
</span><span class="cx"> 
</span><span class="cx">     switch (nodeType) {
</span><del>-    case ScrollingNode:
-        return ScrollingTreeScrollingNodeMac::create(*scrollingTree(), nodeID);
</del><ins>+    case FrameScrollingNode:
+        return ScrollingTreeScrollingNodeMac::create(*scrollingTree(), nodeType, nodeID);
+    case OverflowScrollingNode:
+        ASSERT_NOT_REACHED();
+        return nullptr;
</ins><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*scrollingTree(), nodeID);
</span><span class="cx">     case StickyNode:
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeFixedNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     RetainPtr&lt;CALayer&gt; m_layer;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_NODE_TYPE_CASTS(ScrollingTreeFixedNode, nodeType() == FixedNode);
</del><ins>+SCROLLING_NODE_TYPE_CASTS(ScrollingTreeFixedNode, isFixedNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -39,11 +39,11 @@
</span><span class="cx"> 
</span><span class="cx"> class ScrollingTreeScrollingNodeMac : public ScrollingTreeScrollingNode, private ScrollElasticityControllerClient {
</span><span class="cx"> public:
</span><del>-    static PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; create(ScrollingTree&amp;, ScrollingNodeID);
</del><ins>+    static PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; create(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx">     virtual ~ScrollingTreeScrollingNodeMac();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ScrollingTreeScrollingNodeMac(ScrollingTree&amp;, ScrollingNodeID);
</del><ins>+    ScrollingTreeScrollingNodeMac(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx"> 
</span><span class="cx">     // ScrollingTreeNode member functions.
</span><span class="cx">     virtual void updateBeforeChildren(const ScrollingStateNode&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -50,13 +50,13 @@
</span><span class="cx"> static void logWheelEventHandlerCountChanged(unsigned);
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; ScrollingTreeScrollingNodeMac::create(ScrollingTree&amp; scrollingTree, ScrollingNodeID nodeID)
</del><ins>+PassOwnPtr&lt;ScrollingTreeScrollingNode&gt; ScrollingTreeScrollingNodeMac::create(ScrollingTree&amp; scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><del>-    return adoptPtr(new ScrollingTreeScrollingNodeMac(scrollingTree, nodeID));
</del><ins>+    return adoptPtr(new ScrollingTreeScrollingNodeMac(scrollingTree, nodeType, nodeID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac(ScrollingTree&amp; scrollingTree, ScrollingNodeID nodeID)
-    : ScrollingTreeScrollingNode(scrollingTree, nodeID)
</del><ins>+ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac(ScrollingTree&amp; scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
+    : ScrollingTreeScrollingNode(scrollingTree, nodeType, nodeID)
</ins><span class="cx">     , m_scrollElasticityController(this)
</span><span class="cx">     , m_verticalScrollbarPainter(0)
</span><span class="cx">     , m_horizontalScrollbarPainter(0)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeStickyNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     RetainPtr&lt;CALayer&gt; m_layer;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SCROLLING_NODE_TYPE_CASTS(ScrollingTreeStickyNode, nodeType() == StickyNode);
</del><ins>+SCROLLING_NODE_TYPE_CASTS(ScrollingTreeStickyNode, isStickyNode());
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -3482,7 +3482,7 @@
</span><span class="cx">         if (!nodeID)
</span><span class="cx">             nodeID = scrollingCoordinator-&gt;uniqueScrollLayerID();
</span><span class="cx"> 
</span><del>-        ScrollingNodeType nodeType = ScrollingNode;
</del><ins>+        ScrollingNodeType nodeType = FrameScrollingNode;
</ins><span class="cx">         if (layer.renderer().style().position() == FixedPosition)
</span><span class="cx">             nodeType = FixedNode;
</span><span class="cx">         else if (layer.renderer().style().position() == StickyPosition)
</span><span class="lines">@@ -3500,7 +3500,8 @@
</span><span class="cx">         case StickyNode:
</span><span class="cx">             scrollingCoordinator-&gt;updateViewportConstrainedNode(nodeID, computeStickyViewportConstraints(layer), backing-&gt;graphicsLayer());
</span><span class="cx">             break;
</span><del>-        case ScrollingNode:
</del><ins>+        case FrameScrollingNode:
+        case OverflowScrollingNode:
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="lines">@@ -3512,14 +3513,14 @@
</span><span class="cx">         if (!nodeID)
</span><span class="cx">             nodeID = scrollingCoordinator-&gt;uniqueScrollLayerID();
</span><span class="cx"> 
</span><del>-        nodeID = scrollingCoordinator-&gt;attachToStateTree(ScrollingNode, nodeID, parentNodeID);
</del><ins>+        nodeID = scrollingCoordinator-&gt;attachToStateTree(isRootLayer ? FrameScrollingNode : OverflowScrollingNode, nodeID, parentNodeID);
</ins><span class="cx">         backing-&gt;setScrollingNodeID(nodeID);
</span><span class="cx"> 
</span><span class="cx">         GraphicsLayer* scrollingLayer = backing-&gt;scrollingLayer();
</span><span class="cx">         GraphicsLayer* scrolledContentsLayer = backing-&gt;scrollingContentsLayer();
</span><span class="cx">         GraphicsLayer* counterScrollingLayer = nullptr;
</span><span class="cx"> 
</span><del>-        if (&amp;layer == m_renderView.layer()) {
</del><ins>+        if (isRootLayer) {
</ins><span class="cx">             scrollingLayer = m_scrollLayer.get();
</span><span class="cx">             scrolledContentsLayer = nullptr;
</span><span class="cx">             counterScrollingLayer = fixedRootBackgroundLayer();
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/ChangeLog        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2014-03-25  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Add a new type of scrolling tree node for overflow scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=130763
+
+        Reviewed by Tim Horton.
+
+        Prepare for overflow scrolling via the scrolling tree by adding
+        a new scrolling node type for overflow:scroll nodes. Mostly
+        this is a new ScrollingNodeType that gets mapped to the same
+        scrolling state nodes and scrolling nodes, but iOS creates
+        state and scrolling nodes specific to overflow:scroll.
+        
+        Change the type checking on nodes to use virtual functions instead
+        of just checking the node type, to allow the macros to work with
+        the new scrolling node type.
+
+        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
+        (WebKit::encodeNodeAndDescendants):
+        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
+        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
+        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
+        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
+        (WebKit::RemoteScrollingTree::createNode):
+        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
+        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
+        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
+        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
+        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
+        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
+        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
+        * WebKit2.xcodeproj/project.pbxproj:
+
</ins><span class="cx"> 2014-03-26  Zan Dobersek  &lt;zdobersek@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed. Removing the remaining Automake cruft.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedScrollingRemoteScrollingCoordinatorTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -245,7 +245,8 @@
</span><span class="cx"> static void encodeNodeAndDescendants(IPC::ArgumentEncoder&amp; encoder, const ScrollingStateNode&amp; stateNode)
</span><span class="cx"> {
</span><span class="cx">     switch (stateNode.nodeType()) {
</span><del>-    case ScrollingNode:
</del><ins>+    case FrameScrollingNode:
+    case OverflowScrollingNode:
</ins><span class="cx">         encoder &lt;&lt; toScrollingStateScrollingNode(stateNode);
</span><span class="cx">         break;
</span><span class="cx">     case FixedNode:
</span><span class="lines">@@ -318,7 +319,8 @@
</span><span class="cx">         ASSERT(!parentNodeID || newNode-&gt;parent());
</span><span class="cx">         
</span><span class="cx">         switch (nodeType) {
</span><del>-        case ScrollingNode:
</del><ins>+        case FrameScrollingNode:
+        case OverflowScrollingNode:
</ins><span class="cx">             if (!decoder.decode(*toScrollingStateScrollingNode(newNode)))
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -94,7 +94,8 @@
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; currNode : stateTree.nodeMap().values()) {
</span><span class="cx">         switch (currNode-&gt;nodeType()) {
</span><del>-        case ScrollingNode: {
</del><ins>+        case FrameScrollingNode:
+        case OverflowScrollingNode: {
</ins><span class="cx">             ScrollingStateScrollingNode* scrollingStateNode = toScrollingStateScrollingNode(currNode);
</span><span class="cx">             
</span><span class="cx">             if (scrollingStateNode-&gt;hasChangedProperty(ScrollingStateNode::ScrollLayer))
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &lt;WebCore/ScrollingTreeStickyNode.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+#include &quot;ScrollingTreeOverflowScrollingNodeIOS.h&quot;
</ins><span class="cx"> #include &lt;WebCore/ScrollingTreeScrollingNodeIOS.h&gt;
</span><span class="cx"> #else
</span><span class="cx"> #include &lt;WebCore/ScrollingTreeScrollingNodeMac.h&gt;
</span><span class="lines">@@ -84,12 +85,18 @@
</span><span class="cx"> PassOwnPtr&lt;ScrollingTreeNode&gt; RemoteScrollingTree::createNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</span><span class="cx"> {
</span><span class="cx">     switch (nodeType) {
</span><del>-    case ScrollingNode:
</del><ins>+    case FrameScrollingNode:
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-        return ScrollingTreeScrollingNodeIOS::create(*this, nodeID);
</del><ins>+        return ScrollingTreeScrollingNodeIOS::create(*this, nodeType, nodeID);
</ins><span class="cx"> #else
</span><del>-        return ScrollingTreeScrollingNodeMac::create(*this, nodeID);
</del><ins>+        return ScrollingTreeScrollingNodeMac::create(*this, nodeType, nodeID);
</ins><span class="cx"> #endif
</span><ins>+    case OverflowScrollingNode:
+#if PLATFORM(IOS)
+        return ScrollingTreeOverflowScrollingNodeIOS::create(*this, nodeID);
+#else
+        return ScrollingTreeScrollingNodeMac::create(*this, nodeType, nodeID);
+#endif
</ins><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*this, nodeID);
</span><span class="cx">     case StickyNode:
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOShfromrev166292trunkSourceWebCorepagescrollingmacScrollingTreeFixedNodeh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h (from rev 166292, trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h) (0 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ScrollingTreeOverflowScrollingNodeIOS_h
+#define ScrollingTreeOverflowScrollingNodeIOS_h
+
+#if PLATFORM(IOS)
+#if ENABLE(ASYNC_SCROLLING)
+
+#include &lt;WebCore/ScrollingCoordinator.h&gt;
+#include &lt;WebCore/ScrollingTreeScrollingNodeIOS.h&gt;
+
+namespace WebKit {
+
+class ScrollingTreeOverflowScrollingNodeIOS : public WebCore::ScrollingTreeScrollingNodeIOS {
+public:
+    static PassOwnPtr&lt;ScrollingTreeOverflowScrollingNodeIOS&gt; create(WebCore::ScrollingTree&amp;, WebCore::ScrollingNodeID);
+    virtual ~ScrollingTreeOverflowScrollingNodeIOS();
+
+private:
+    ScrollingTreeOverflowScrollingNodeIOS(WebCore::ScrollingTree&amp;, WebCore::ScrollingNodeID);
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(ASYNC_SCROLLING)
+#endif // PLATFORM(IOS)
+
+#endif // ScrollingTreeOverflowScrollingNodeIOS_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOSmmfromrev166292trunkSourceWebCorepagescrollingmacScrollingTreeFixedNodeh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm (from rev 166292, trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h) (0 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import &quot;config.h&quot;
+#import &quot;ScrollingTreeOverflowScrollingNodeIOS.h&quot;
+
+#if PLATFORM(IOS)
+#if ENABLE(ASYNC_SCROLLING)
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PassOwnPtr&lt;ScrollingTreeOverflowScrollingNodeIOS&gt; ScrollingTreeOverflowScrollingNodeIOS::create(WebCore::ScrollingTree&amp; scrollingTree, WebCore::ScrollingNodeID nodeID)
+{
+    return adoptPtr(new ScrollingTreeOverflowScrollingNodeIOS(scrollingTree, nodeID));
+}
+
+ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS(WebCore::ScrollingTree&amp; scrollingTree, WebCore::ScrollingNodeID nodeID)
+    : ScrollingTreeScrollingNodeIOS(scrollingTree, OverflowScrollingNode, nodeID)
+{
+}
+
+ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS()
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(ASYNC_SCROLLING)
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosRemoteScrollingCoordinatorProxyIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -47,7 +47,8 @@
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; currNode : stateTree.nodeMap().values()) {
</span><span class="cx">         switch (currNode-&gt;nodeType()) {
</span><del>-        case ScrollingNode: {
</del><ins>+        case FrameScrollingNode:
+        case OverflowScrollingNode: {
</ins><span class="cx">             ScrollingStateScrollingNode* scrollingStateNode = toScrollingStateScrollingNode(currNode);
</span><span class="cx">             
</span><span class="cx">             if (scrollingStateNode-&gt;hasChangedProperty(ScrollingStateNode::ScrollLayer))
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (166292 => 166293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-03-26 15:08:12 UTC (rev 166292)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-03-26 15:09:03 UTC (rev 166293)
</span><span class="lines">@@ -63,6 +63,8 @@
</span><span class="cx">                 0F5947A4187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5947A2187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h */; };
</span><span class="cx">                 0F5947A7187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */; };
</span><span class="cx">                 0F5947A8187B517600437857 /* RemoteScrollingCoordinatorMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */; };
</span><ins>+                0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F931C1A18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h */; };
+                0F931C1D18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F931C1B18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm */; };
</ins><span class="cx">                 0FB659231208B4DB0044816C /* DrawingAreaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB659221208B4DB0044816C /* DrawingAreaInfo.h */; };
</span><span class="cx">                 0FC08572187CE0B100780D86 /* __init__.py in Copy Message Generation Scripts */ = {isa = PBXBuildFile; fileRef = 0FC0856E187CE0A900780D86 /* __init__.py */; };
</span><span class="cx">                 0FC08573187CE0B300780D86 /* messages.py in Copy Message Generation Scripts */ = {isa = PBXBuildFile; fileRef = 0FC0856F187CE0A900780D86 /* messages.py */; };
</span><span class="lines">@@ -1787,6 +1789,8 @@
</span><span class="cx">                 0F5947A2187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteScrollingCoordinatorTransaction.h; path = Scrolling/RemoteScrollingCoordinatorTransaction.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteScrollingCoordinatorMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteScrollingCoordinatorMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                0F931C1A18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScrollingTreeOverflowScrollingNodeIOS.h; path = Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                0F931C1B18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ScrollingTreeOverflowScrollingNodeIOS.mm; path = Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 0FB659221208B4DB0044816C /* DrawingAreaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingAreaInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FC0856E187CE0A900780D86 /* __init__.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = __init__.py; path = webkit2/__init__.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0FC0856F187CE0A900780D86 /* messages.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = messages.py; path = webkit2/messages.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3644,6 +3648,7 @@
</span><span class="cx">                 0F594793187B3B4C00437857 /* Scrolling */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                0F931C1918C5711100DBA7C3 /* ios */,
</ins><span class="cx">                                 0F594794187B3B6000437857 /* RemoteScrollingCoordinatorProxy.cpp */,
</span><span class="cx">                                 0F594795187B3B6000437857 /* RemoteScrollingCoordinatorProxy.h */,
</span><span class="cx">                                 0F594796187B3B6000437857 /* RemoteScrollingTree.cpp */,
</span><span class="lines">@@ -3661,6 +3666,15 @@
</span><span class="cx">                         name = Scrolling;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                0F931C1918C5711100DBA7C3 /* ios */ = {
+                        isa = PBXGroup;
+                        children = (
+                                0F931C1A18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h */,
+                                0F931C1B18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm */,
+                        );
+                        name = ios;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -7013,6 +7027,7 @@
</span><span class="cx">                                 2DA944A41884E4F000ED86DB /* WKGestureTypes.h in Headers */,
</span><span class="cx">                                 33367636130C99B2006C9DE2 /* WebResourceCacheManagerProxy.h in Headers */,
</span><span class="cx">                                 33367658130C9ECB006C9DE2 /* WebResourceCacheManagerProxyMessages.h in Headers */,
</span><ins>+                                0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */,
</ins><span class="cx">                                 510AFFBA16542048001BA05E /* WebResourceLoader.h in Headers */,
</span><span class="cx">                                 51F060E01654317F00F3281B /* WebResourceLoaderMessages.h in Headers */,
</span><span class="cx">                                 D3B9484911FF4B6500032B39 /* WebSearchPopupMenu.h in Headers */,
</span><span class="lines">@@ -8424,6 +8439,7 @@
</span><span class="cx">                                 1AE00D5C182DADE100087DD7 /* KeyedEncoder.cpp in Sources */,
</span><span class="cx">                                 1AC8702E130B49A2002C1257 /* WebPluginSiteDataManager.cpp in Sources */,
</span><span class="cx">                                 BC5744EF12638FB3006F0F12 /* WebPopupItem.cpp in Sources */,
</span><ins>+                                0F931C1D18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.mm in Sources */,
</ins><span class="cx">                                 D3B9484611FF4B6500032B39 /* WebPopupMenu.cpp in Sources */,
</span><span class="cx">                                 BCC43AC7127B99DE00317F16 /* WebPopupMenuMac.mm in Sources */,
</span><span class="cx">                                 BC5750981268F3C6006F0F12 /* WebPopupMenuProxyMac.mm in Sources */,
</span></span></pre>
</div>
</div>

</body>
</html>