Prepare scrolling tree to handle > 1 scrolling node
[WebKit-https.git] / Source / WebCore / ChangeLog
index e8bb946..5b7c8e7 100644 (file)
@@ -1,3 +1,47 @@
+2014-01-24  Simon Fraser  <simon.fraser@apple.com>
+
+        Prepare scrolling tree to handle > 1 scrolling node
+        https://bugs.webkit.org/show_bug.cgi?id=127590
+
+        Reviewed by Tim Horton.
+
+        Clean up the code path called after the ScrollingTree has scrolled a node,
+        to prepare for multiple scrolling nodes.
+        
+        Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
+        and pass along the ScrollingNodeID that scrolled.
+        
+        Move updateMainFrameScrollPosition-related code from ScrollingCoordinator to
+        AsyncScrollingCoordinator, since this sync-up is only necessary when doing
+        async scrolling.
+
+        * WebCore.exp.in:
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
+        (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
+        (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
+        * page/scrolling/AsyncScrollingCoordinator.h:
+        (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
+        (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType):
+        Package up the data related to a scheduled scroll into a ScheduledScrollUpdate struct,
+        for easier comparison and cleaner code.
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
+        * page/scrolling/ScrollingCoordinator.h:
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
+        * page/scrolling/ThreadedScrollingTree.h:
+        * page/scrolling/ios/ScrollingTreeIOS.cpp:
+        (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
+        * page/scrolling/ios/ScrollingTreeIOS.h:
+        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
+        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
+        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
+
 2014-01-24  Mark Lam  <mark.lam@apple.com>
 
         ASSERT(!m_markedSpace.m_currentDelayedReleaseScope) reloading page in inspector.