Changeset 141703 in webkit
- Timestamp:
- Feb 2, 2013 1:03:16 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r141701 r141703 1 2013-02-02 Simon Fraser <simon.fraser@apple.com> 2 3 Fixed and sticky nodes have no nodeID set 4 https://bugs.webkit.org/show_bug.cgi?id=108734 5 6 Reviewed by Sam Weinig. 7 8 Push ScrollingNodeIDs onto scrolling nodes at construction time, and thereafter 9 treat them as readonly. Previously, only the root scrolling node would have a node ID. 10 11 Node IDs aren't actually used by the scrolling tree yet, but are useful for debugging. 12 13 Not testable since we only dump the scrolling state tree, not the scrolling 14 node tree in tests. 15 16 * page/scrolling/ScrollingTree.cpp: 17 (WebCore::ScrollingTree::ScrollingTree): No longer create the root node here; 18 we can only create it when we know what its ID will be. 19 (WebCore::ScrollingTree::updateTreeFromStateNode): Create the root node if 20 necessary. Pass node IDs into create methods. 21 * page/scrolling/ScrollingTreeNode.cpp: 22 (WebCore::ScrollingTreeNode::ScrollingTreeNode): 23 * page/scrolling/ScrollingTreeNode.h: 24 * page/scrolling/ScrollingTreeScrollingNode.cpp: 25 (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode): 26 * page/scrolling/ScrollingTreeScrollingNode.h: 27 * page/scrolling/mac/ScrollingTreeFixedNode.h: 28 * page/scrolling/mac/ScrollingTreeFixedNode.mm: 29 (WebCore::ScrollingTreeFixedNode::create): 30 (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode): 31 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: 32 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: 33 (WebCore::ScrollingTreeScrollingNode::create): 34 (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac): 35 * page/scrolling/mac/ScrollingTreeStickyNode.h: 36 * page/scrolling/mac/ScrollingTreeStickyNode.mm: 37 (WebCore::ScrollingTreeStickyNode::create): 38 (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode): 39 1 40 2013-02-02 Takashi Sakamoto <tasak@google.com> 2 41 -
trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp
r140571 r141703 49 49 ScrollingTree::ScrollingTree(ScrollingCoordinator* scrollingCoordinator) 50 50 : m_scrollingCoordinator(scrollingCoordinator) 51 , m_rootNode(ScrollingTreeScrollingNode::create(this))52 51 , m_hasWheelEventHandlers(false) 53 52 , m_canGoBack(false) … … 158 157 // If the node isn't found, it's either new and needs to be added to the tree, or there is a new ID for our 159 158 // root node. 159 ScrollingNodeID nodeID = stateNode->scrollingNodeID(); 160 160 if (!stateNode->parent()) { 161 161 // This is the root node. 162 m_rootNode->setScrollingNodeID(stateNode->scrollingNodeID()); 163 m_nodeMap.set(stateNode->scrollingNodeID(), m_rootNode.get()); 162 if (!m_rootNode) 163 m_rootNode = ScrollingTreeScrollingNode::create(this, nodeID); 164 165 m_nodeMap.set(nodeID, m_rootNode.get()); 164 166 m_rootNode->update(stateNode); 165 167 } else { 166 168 OwnPtr<ScrollingTreeNode> newNode; 167 169 if (stateNode->isScrollingNode()) 168 newNode = ScrollingTreeScrollingNode::create(this );170 newNode = ScrollingTreeScrollingNode::create(this, nodeID); 169 171 else if (stateNode->isFixedNode()) 170 newNode = ScrollingTreeFixedNode::create(this );172 newNode = ScrollingTreeFixedNode::create(this, nodeID); 171 173 else if (stateNode->isStickyNode()) 172 newNode = ScrollingTreeStickyNode::create(this );174 newNode = ScrollingTreeStickyNode::create(this, nodeID); 173 175 else 174 176 ASSERT_NOT_REACHED(); 175 177 176 178 ScrollingTreeNode* newNodeRawPtr = newNode.get(); 177 m_nodeMap.set( stateNode->scrollingNodeID(), newNodeRawPtr);179 m_nodeMap.set(nodeID, newNodeRawPtr); 178 180 ScrollingTreeNodeMap::const_iterator it = m_nodeMap.find(stateNode->parent()->scrollingNodeID()); 179 181 ASSERT(it != m_nodeMap.end()); -
trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp
r138758 r141703 33 33 namespace WebCore { 34 34 35 ScrollingTreeNode::ScrollingTreeNode(ScrollingTree* scrollingTree )35 ScrollingTreeNode::ScrollingTreeNode(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 36 36 : m_scrollingTree(scrollingTree) 37 , m_nodeID( 0)37 , m_nodeID(nodeID) 38 38 , m_parent(0) 39 39 { -
trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h
r138758 r141703 42 42 class ScrollingTreeNode { 43 43 public: 44 explicit ScrollingTreeNode(ScrollingTree* );44 explicit ScrollingTreeNode(ScrollingTree*, ScrollingNodeID); 45 45 virtual ~ScrollingTreeNode(); 46 46 … … 50 50 51 51 ScrollingNodeID scrollingNodeID() const { return m_nodeID; } 52 void setScrollingNodeID(ScrollingNodeID nodeID) { m_nodeID = nodeID; }53 52 54 53 ScrollingTreeNode* parent() const { return m_parent; } -
trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp
r137957 r141703 33 33 namespace WebCore { 34 34 35 ScrollingTreeScrollingNode::ScrollingTreeScrollingNode(ScrollingTree* scrollingTree )36 : ScrollingTreeNode(scrollingTree )35 ScrollingTreeScrollingNode::ScrollingTreeScrollingNode(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 36 : ScrollingTreeNode(scrollingTree, nodeID) 37 37 , m_frameScaleFactor(1) 38 38 , m_shouldUpdateScrollLayerPositionOnMainThread(0) -
trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
r138758 r141703 43 43 class ScrollingTreeScrollingNode : public ScrollingTreeNode { 44 44 public: 45 static PassOwnPtr<ScrollingTreeScrollingNode> create(ScrollingTree* );45 static PassOwnPtr<ScrollingTreeScrollingNode> create(ScrollingTree*, ScrollingNodeID); 46 46 virtual ~ScrollingTreeScrollingNode(); 47 47 … … 57 57 58 58 protected: 59 explicit ScrollingTreeScrollingNode(ScrollingTree* );59 explicit ScrollingTreeScrollingNode(ScrollingTree*, ScrollingNodeID); 60 60 61 61 const IntRect& viewportRect() const { return m_viewportRect; } -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h
r138758 r141703 41 41 class ScrollingTreeFixedNode : public ScrollingTreeNode { 42 42 public: 43 static PassOwnPtr<ScrollingTreeFixedNode> create(ScrollingTree* );43 static PassOwnPtr<ScrollingTreeFixedNode> create(ScrollingTree*, ScrollingNodeID); 44 44 45 45 virtual ~ScrollingTreeFixedNode(); 46 46 47 47 private: 48 ScrollingTreeFixedNode(ScrollingTree* );48 ScrollingTreeFixedNode(ScrollingTree*, ScrollingNodeID); 49 49 50 50 virtual void update(ScrollingStateNode*) OVERRIDE; -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm
r138758 r141703 34 34 namespace WebCore { 35 35 36 PassOwnPtr<ScrollingTreeFixedNode> ScrollingTreeFixedNode::create(ScrollingTree* scrollingTree )36 PassOwnPtr<ScrollingTreeFixedNode> ScrollingTreeFixedNode::create(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 37 37 { 38 return adoptPtr(new ScrollingTreeFixedNode(scrollingTree ));38 return adoptPtr(new ScrollingTreeFixedNode(scrollingTree, nodeID)); 39 39 } 40 40 41 ScrollingTreeFixedNode::ScrollingTreeFixedNode(ScrollingTree* scrollingTree )42 : ScrollingTreeNode(scrollingTree )41 ScrollingTreeFixedNode::ScrollingTreeFixedNode(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 42 : ScrollingTreeNode(scrollingTree, nodeID) 43 43 { 44 44 } -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h
r140475 r141703 39 39 class ScrollingTreeScrollingNodeMac : public ScrollingTreeScrollingNode, private ScrollElasticityControllerClient { 40 40 public: 41 explicit ScrollingTreeScrollingNodeMac(ScrollingTree* );41 explicit ScrollingTreeScrollingNodeMac(ScrollingTree*, ScrollingNodeID); 42 42 virtual ~ScrollingTreeScrollingNodeMac(); 43 43 -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm
r140617 r141703 48 48 49 49 50 PassOwnPtr<ScrollingTreeScrollingNode> ScrollingTreeScrollingNode::create(ScrollingTree* scrollingTree )51 { 52 return adoptPtr(new ScrollingTreeScrollingNodeMac(scrollingTree ));53 } 54 55 ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac(ScrollingTree* scrollingTree )56 : ScrollingTreeScrollingNode(scrollingTree )50 PassOwnPtr<ScrollingTreeScrollingNode> ScrollingTreeScrollingNode::create(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 51 { 52 return adoptPtr(new ScrollingTreeScrollingNodeMac(scrollingTree, nodeID)); 53 } 54 55 ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 56 : ScrollingTreeScrollingNode(scrollingTree, nodeID) 57 57 , m_scrollElasticityController(this) 58 58 , m_lastScrollHadUnfilledPixels(false) -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h
r138758 r141703 41 41 class ScrollingTreeStickyNode : public ScrollingTreeNode { 42 42 public: 43 static PassOwnPtr<ScrollingTreeStickyNode> create(ScrollingTree* );43 static PassOwnPtr<ScrollingTreeStickyNode> create(ScrollingTree*, ScrollingNodeID); 44 44 45 45 virtual ~ScrollingTreeStickyNode(); 46 46 47 47 private: 48 ScrollingTreeStickyNode(ScrollingTree* );48 ScrollingTreeStickyNode(ScrollingTree*, ScrollingNodeID); 49 49 50 50 virtual void update(ScrollingStateNode*) OVERRIDE; -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.mm
r138758 r141703 34 34 namespace WebCore { 35 35 36 PassOwnPtr<ScrollingTreeStickyNode> ScrollingTreeStickyNode::create(ScrollingTree* scrollingTree )36 PassOwnPtr<ScrollingTreeStickyNode> ScrollingTreeStickyNode::create(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 37 37 { 38 return adoptPtr(new ScrollingTreeStickyNode(scrollingTree ));38 return adoptPtr(new ScrollingTreeStickyNode(scrollingTree, nodeID)); 39 39 } 40 40 41 ScrollingTreeStickyNode::ScrollingTreeStickyNode(ScrollingTree* scrollingTree )42 : ScrollingTreeNode(scrollingTree )41 ScrollingTreeStickyNode::ScrollingTreeStickyNode(ScrollingTree* scrollingTree, ScrollingNodeID nodeID) 42 : ScrollingTreeNode(scrollingTree, nodeID) 43 43 { 44 44 }
Note: See TracChangeset
for help on using the changeset viewer.