Changeset 239018 in webkit
- Timestamp:
- Dec 9, 2018 12:00:32 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r239016 r239018 1 2018-12-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r239010. 4 https://bugs.webkit.org/show_bug.cgi?id=192537 5 6 Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- 7 scrolling-layers-state.html again (Requested by ap on 8 #webkit). 9 10 Reverted changeset: 11 12 "Allow control over child order when adding nodes to the 13 scrolling tree" 14 https://bugs.webkit.org/show_bug.cgi?id=176914 15 https://trac.webkit.org/changeset/239010 16 1 17 2018-12-08 Eric Carlson <eric.carlson@apple.com> 2 18 -
trunk/LayoutTests/platform/mac-wk2/TestExpectations
r239010 r239018 322 322 webkit.org/b/148408 tiled-drawing/scrolling/root-overflow-with-mousewheel.html [ Pass Failure Timeout ] 323 323 324 webkit.org/b/192529 fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html [ Pass Failure ]325 326 324 webkit.org/b/139820 fast/frames/lots-of-objects.html [ Pass Timeout ] 327 325 webkit.org/b/139820 fast/frames/lots-of-iframes.html [ Pass Timeout ] -
trunk/Source/WebCore/ChangeLog
r239016 r239018 1 2018-12-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r239010. 4 https://bugs.webkit.org/show_bug.cgi?id=192537 5 6 Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- 7 scrolling-layers-state.html again (Requested by ap on 8 #webkit). 9 10 Reverted changeset: 11 12 "Allow control over child order when adding nodes to the 13 scrolling tree" 14 https://bugs.webkit.org/show_bug.cgi?id=176914 15 https://trac.webkit.org/changeset/239010 16 1 17 2018-12-08 Eric Carlson <eric.carlson@apple.com> 2 18 -
trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
r239010 r239018 475 475 } 476 476 477 ScrollingNodeID AsyncScrollingCoordinator::attachToStateTree(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID, size_t childIndex) 478 { 479 LOG_WITH_STREAM(Scrolling, stream << "AsyncScrollingCoordinator::attachToStateTree " << nodeType << " node " << newNodeID << " parent " << parentID << " index " << childIndex); 480 return m_scrollingStateTree->attachNode(nodeType, newNodeID, parentID, childIndex); 477 ScrollingNodeID AsyncScrollingCoordinator::attachToStateTree(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) 478 { 479 return m_scrollingStateTree->attachNode(nodeType, newNodeID, parentID); 481 480 } 482 481 … … 511 510 // RenderLayerCompositor::updateBacking where the node has already been created. 512 511 ASSERT(frameView.frame().isMainFrame()); 513 attachToStateTree(MainFrameScrollingNode, frameView.scrollLayerID(), 0 , 0);512 attachToStateTree(MainFrameScrollingNode, frameView.scrollLayerID(), 0); 514 513 } 515 514 -
trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h
r239010 r239018 98 98 WEBCORE_EXPORT bool requestScrollPositionUpdate(FrameView&, const IntPoint&) override; 99 99 100 WEBCORE_EXPORT ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID , size_t childIndex) override;100 WEBCORE_EXPORT ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) override; 101 101 WEBCORE_EXPORT void detachFromStateTree(ScrollingNodeID) override; 102 102 WEBCORE_EXPORT void clearStateTree() override; -
trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h
r239010 r239018 165 165 virtual bool requestScrollPositionUpdate(FrameView&, const IntPoint&) { return false; } 166 166 virtual bool handleWheelEvent(FrameView&, const PlatformWheelEvent&) { return true; } 167 virtual ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID /*parentID*/, size_t /*childIndex*/ = notFound) { return newNodeID; } 168 167 virtual ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID /*parentID*/) { return newNodeID; } 169 168 virtual void detachFromStateTree(ScrollingNodeID) { } 170 169 virtual void clearStateTree() { } -
trunk/Source/WebCore/page/scrolling/ScrollingStateNode.cpp
r239010 r239018 98 98 } 99 99 100 void ScrollingStateNode::insertChild(Ref<ScrollingStateNode>&& childNode, size_t index)101 {102 childNode->setParent(this);103 104 if (!m_children) {105 ASSERT(!index);106 m_children = std::make_unique<Vector<RefPtr<ScrollingStateNode>>>();107 }108 109 m_children->insert(index, WTFMove(childNode));110 }111 112 size_t ScrollingStateNode::indexOfChild(ScrollingStateNode& childNode) const113 {114 if (!m_children)115 return notFound;116 117 return m_children->find(&childNode);118 }119 120 100 void ScrollingStateNode::reconcileLayerPositionForViewportRect(const LayoutRect& viewportRect, ScrollingLayerPositionAction action) 121 101 { -
trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h
r239010 r239018 237 237 238 238 void appendChild(Ref<ScrollingStateNode>&&); 239 void insertChild(Ref<ScrollingStateNode>&&, size_t index);240 241 size_t indexOfChild(ScrollingStateNode&) const;242 239 243 240 String scrollingStateTreeAsText(ScrollingStateTreeAsTextBehavior = ScrollingStateTreeAsTextBehaviorNormal) const; -
trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp
r239010 r239018 83 83 } 84 84 85 bool ScrollingStateTree::nodeTypeAndParentMatch(ScrollingStateNode& node, ScrollingNodeType nodeType, Scrolling StateNode* parentNode) const85 bool ScrollingStateTree::nodeTypeAndParentMatch(ScrollingStateNode& node, ScrollingNodeType nodeType, ScrollingNodeID parentID) const 86 86 { 87 87 if (node.nodeType() != nodeType) 88 88 return false; 89 89 90 return node.parent() == parentNode; 91 } 92 93 ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID, size_t childIndex) 90 auto* parent = stateNodeForID(parentID); 91 if (!parent) 92 return true; 93 94 return node.parent() == parent; 95 } 96 97 ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) 94 98 { 95 99 ASSERT(newNodeID); 96 100 97 101 if (auto* node = stateNodeForID(newNodeID)) { 98 auto* parent = stateNodeForID(parentID); 99 if (nodeTypeAndParentMatch(*node, nodeType, parent)) { 100 if (!parentID) 101 return newNodeID; 102 103 size_t currentIndex = parent->indexOfChild(*node); 104 if (currentIndex == childIndex) 105 return newNodeID; 106 107 ASSERT(currentIndex != notFound); 108 Ref<ScrollingStateNode> protectedNode(*node); 109 parent->children()->remove(currentIndex); 110 111 if (childIndex == notFound) 112 parent->appendChild(WTFMove(protectedNode)); 113 else 114 parent->insertChild(WTFMove(protectedNode), childIndex); 115 102 if (nodeTypeAndParentMatch(*node, nodeType, parentID)) 116 103 return newNodeID; 117 }118 104 119 105 #if ENABLE(ASYNC_SCROLLING) … … 129 115 ScrollingStateNode* newNode = nullptr; 130 116 if (!parentID) { 131 ASSERT(!childIndex || childIndex == notFound);132 117 // If we're resetting the root node, we should clear the HashMap and destroy the current children. 133 118 clear(); … … 138 123 } else { 139 124 auto* parent = stateNodeForID(parentID); 140 if (!parent) { 141 ASSERT_NOT_REACHED(); 125 if (!parent) 142 126 return 0; 143 }144 127 145 128 if (nodeType == SubframeScrollingNode && parentID) { 146 129 if (auto orphanedNode = m_orphanedSubframeNodes.take(newNodeID)) { 147 130 newNode = orphanedNode.get(); 148 if (childIndex == notFound) 149 parent->appendChild(orphanedNode.releaseNonNull()); 150 else 151 parent->insertChild(orphanedNode.releaseNonNull(), childIndex); 131 parent->appendChild(orphanedNode.releaseNonNull()); 152 132 } 153 133 } … … 156 136 auto stateNode = createNode(nodeType, newNodeID); 157 137 newNode = stateNode.ptr(); 158 if (childIndex == notFound) 159 parent->appendChild(WTFMove(stateNode)); 160 else 161 parent->insertChild(WTFMove(stateNode), childIndex); 138 parent->appendChild(WTFMove(stateNode)); 162 139 } 163 140 } 164 141 165 addNode(*newNode);142 m_stateNodeMap.set(newNodeID, newNode); 166 143 m_nodesRemovedSinceLastCommit.remove(newNodeID); 167 144 return newNodeID; -
trunk/Source/WebCore/page/scrolling/ScrollingStateTree.h
r239010 r239018 52 52 WEBCORE_EXPORT ScrollingStateNode* stateNodeForID(ScrollingNodeID) const; 53 53 54 WEBCORE_EXPORT ScrollingNodeID attachNode(ScrollingNodeType, ScrollingNodeID, ScrollingNodeID parentID , size_t childIndex);54 WEBCORE_EXPORT ScrollingNodeID attachNode(ScrollingNodeType, ScrollingNodeID, ScrollingNodeID parentID); 55 55 void detachNode(ScrollingNodeID); 56 56 void clear(); … … 82 82 Ref<ScrollingStateNode> createNode(ScrollingNodeType, ScrollingNodeID); 83 83 84 bool nodeTypeAndParentMatch(ScrollingStateNode&, ScrollingNodeType, Scrolling StateNode* parentNode) const;84 bool nodeTypeAndParentMatch(ScrollingStateNode&, ScrollingNodeType, ScrollingNodeID parentID) const; 85 85 86 86 enum class SubframeNodeRemoval { Delete, Orphan }; -
trunk/Source/WebKit/ChangeLog
r239015 r239018 1 2018-12-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r239010. 4 https://bugs.webkit.org/show_bug.cgi?id=192537 5 6 Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- 7 scrolling-layers-state.html again (Requested by ap on 8 #webkit). 9 10 Reverted changeset: 11 12 "Allow control over child order when adding nodes to the 13 scrolling tree" 14 https://bugs.webkit.org/show_bug.cgi?id=176914 15 https://trac.webkit.org/changeset/239010 16 1 17 2018-12-08 Alex Christensen <achristensen@webkit.org> 2 18 -
trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp
r239010 r239018 414 414 return false; 415 415 416 m_scrollingStateTree->attachNode(nodeType, nodeID, parentNodeID , notFound); // Append new node.416 m_scrollingStateTree->attachNode(nodeType, nodeID, parentNodeID); 417 417 ScrollingStateNode* newNode = m_scrollingStateTree->stateNodeForID(nodeID); 418 418 ASSERT(newNode);
Note: See TracChangeset
for help on using the changeset viewer.