Allow different types of ScrollingTrees to have different types of ScrollingTreeNode...
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Jan 2014 20:05:48 +0000 (20:05 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Jan 2014 20:05:48 +0000 (20:05 +0000)
commit02343641aa01e73243cadc2619478f26ce042c81
tree025939a7eb3cfbea01aebb5de2a9bf39eb2d6839
parentf473bd6c37a133163d475f7d0fd7e735cf150512
Allow different types of ScrollingTrees to have different types of ScrollingTreeNode subclasses
https://bugs.webkit.org/show_bug.cgi?id=126445

Reviewed by Tim Horton.

Make it possible to have ScrollingTree subclasses with different subclasses of ScrollingTreeNodes,
by giving ScrollingTree a pure virtual createNode() function. ThreadedScrollingTree implements
this, and then delegates node creation to its AsyncScrollingCoordinator (since we have
a ScrollingCoordinatorMac but no real need for a ThreadedScrollingTreeMac).

Also made ThreadedScrollingTree's m_scrollingCoordinator an AsyncScrollingCoordinator,
since by definition a threaded scrolling tree uses an async coordinator.

* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::createNode):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::create):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@161276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h
Source/WebCore/page/scrolling/ScrollingTree.cpp
Source/WebCore/page/scrolling/ScrollingTree.h
Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
Source/WebCore/page/scrolling/ThreadedScrollingTree.h
Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h
Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm
Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h
Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm