https://bugs.webkit.org/show_bug.cgi?id=99204
[WebKit-https.git] / Source / WebCore / page / scrolling / ScrollingStateNode.h
index 5dbc7d9..dc813ac 100644 (file)
@@ -29,6 +29,7 @@
 #if ENABLE(THREADED_SCROLLING)
 
 #include "GraphicsLayer.h"
+#include "ScrollingCoordinator.h"
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
@@ -45,7 +46,7 @@ class ScrollingStateNode {
     WTF_MAKE_NONCOPYABLE(ScrollingStateNode);
 
 public:
-    ScrollingStateNode(ScrollingStateTree*);
+    ScrollingStateNode(ScrollingStateTree*, ScrollingNodeID);
     virtual ~ScrollingStateNode();
 
     virtual bool isScrollingStateScrollingNode() { return false; }
@@ -56,6 +57,7 @@ public:
     virtual bool hasChangedProperties() const = 0;
     virtual unsigned changedProperties() const = 0;
     virtual void resetChangedProperties() = 0;
+    virtual void setHasChangedProperties() { setScrollLayerDidChange(true); }
 
     PlatformLayer* platformScrollLayer() const;
     void setScrollLayer(const GraphicsLayer*);
@@ -67,6 +69,8 @@ public:
     ScrollingStateTree* scrollingStateTree() const { return m_scrollingStateTree; }
     void setScrollingStateTree(ScrollingStateTree* tree) { m_scrollingStateTree = tree; }
 
+    ScrollingNodeID scrollingNodeID() const { return m_nodeID; }
+
     ScrollingStateNode* parent() const { return m_parent; }
     void setParent(ScrollingStateNode* parent) { m_parent = parent; }
 
@@ -80,9 +84,10 @@ protected:
     ScrollingStateTree* m_scrollingStateTree;
 
 private:
-    ScrollingStateNode* m_parent;
+    ScrollingNodeID m_nodeID;
 
-    Vector<OwnPtr<ScrollingStateNode> >* m_children;
+    ScrollingStateNode* m_parent;
+    OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
 
     bool m_scrollLayerDidChange;