Changeset 228264 in webkit
- Timestamp:
- Feb 8, 2018 2:01:43 AM (6 years ago)
- Location:
- trunk/Source
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r228263 r228264 1 2018-02-08 Frederic Wang <fwang@igalia.com> 2 3 Add scrolling node types to distinguish main frames and subframes. 4 https://bugs.webkit.org/show_bug.cgi?id=182533 5 6 Reviewed by Simon Fraser. 7 8 This patch splits FrameScrollingNode type into two types: MainFrameScrollingNode and 9 SubframeScrollingNode. This is needed because new places in the code are likely to 10 distinguish them e.g. in ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll 11 or when iOS frame scrolling is introduced (see bug 173833). 12 13 No new tests, behavior unchanged. 14 15 * page/scrolling/AsyncScrollingCoordinator.cpp: 16 (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView): This is only called 17 for main frames, so pass MainFrameScrollingNode. 18 * page/scrolling/ScrollingCoordinator.cpp: 19 (WebCore::operator<<): Distinguish subframe and main frame when dumping. 20 * page/scrolling/ScrollingCoordinator.h: Split FrameScrollingNode into two cases. 21 * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Add node type to constructor and 22 ASSERT it remains of type FrameScrollingNode. 23 (WebCore::ScrollingStateFrameScrollingNode::create): 24 (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode): 25 * page/scrolling/ScrollingStateFrameScrollingNode.h: Add node type to constructor. 26 * page/scrolling/ScrollingStateNode.h: 27 (WebCore::ScrollingStateNode::isFrameScrollingNode const): Includes the two cases. 28 * page/scrolling/ScrollingStateTree.cpp: 29 (WebCore::ScrollingStateTree::createNode): Split FrameScrollingNode into two cases and pass 30 the node type. 31 (WebCore::ScrollingStateTree::attachNode): The first case only happens for main frames while 32 the second case only happens with subframes. Use the appriate node type. 33 * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: Add node type to constructor and 34 ASSERT it remains of type FrameScrollingNode. 35 (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode): 36 * page/scrolling/ScrollingTreeFrameScrollingNode.h: Add node type to constructor. 37 * page/scrolling/ScrollingTreeNode.h: Includes the two cases. 38 (WebCore::ScrollingTreeNode::isFrameScrollingNode const): 39 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Add node type to constructor. 40 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Ditto. 41 (WebCore::ScrollingTreeFrameScrollingNodeIOS::create): 42 (WebCore::ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS): 43 * page/scrolling/ios/ScrollingTreeIOS.cpp: Split FrameScrollingNode into two cases. 44 (WebCore::ScrollingTreeIOS::createScrollingTreeNode): 45 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Add node type to constructor. 46 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: Ditto. 47 (WebCore::ScrollingTreeFrameScrollingNodeMac::create): 48 (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): 49 * page/scrolling/mac/ScrollingTreeMac.cpp: Split FrameScrollingNode into two cases. 50 (ScrollingTreeMac::createScrollingTreeNode): 51 * rendering/RenderLayerCompositor.cpp: 52 (WebCore::RenderLayerCompositor::reattachSubframeScrollLayers): Distinguish the cases of 53 main frames and subframes. 54 (WebCore::scrollCoordinationRoleForNodeType): Split FrameScrollingNode into two cases. 55 (WebCore::RenderLayerCompositor::updateScrollCoordinationForThisFrame): Distinguish the cases 56 of main frames and subframes. 57 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Split FrameScrollingNode into 58 two cases. 59 1 60 2018-02-07 Darin Adler <darin@apple.com> 2 61 -
trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
r227596 r228264 506 506 // RenderLayerCompositor::updateBacking where the node has already been created. 507 507 ASSERT(frameView.frame().isMainFrame()); 508 attachToStateTree( FrameScrollingNode, frameView.scrollLayerID(), 0);508 attachToStateTree(MainFrameScrollingNode, frameView.scrollLayerID(), 0); 509 509 } 510 510 -
trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
r223339 r228264 426 426 { 427 427 switch (nodeType) { 428 case FrameScrollingNode: 429 ts << "frame-scrolling"; 428 case MainFrameScrollingNode: 429 ts << "main-frame-scrolling"; 430 break; 431 case SubframeScrollingNode: 432 ts << "subframe-scrolling"; 430 433 break; 431 434 case OverflowScrollingNode: -
trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h
r220503 r228264 55 55 typedef uint64_t ScrollingNodeID; 56 56 57 enum ScrollingNodeType { FrameScrollingNode, OverflowScrollingNode, FixedNode, StickyNode };57 enum ScrollingNodeType { MainFrameScrollingNode, SubframeScrollingNode, OverflowScrollingNode, FixedNode, StickyNode }; 58 58 59 59 enum ScrollingStateTreeAsTextBehaviorFlags { -
trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp
r225227 r228264 34 34 namespace WebCore { 35 35 36 Ref<ScrollingStateFrameScrollingNode> ScrollingStateFrameScrollingNode::create(ScrollingStateTree& stateTree, ScrollingNodeID nodeID) 37 { 38 return adoptRef(*new ScrollingStateFrameScrollingNode(stateTree, nodeID)); 39 } 40 41 ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode(ScrollingStateTree& stateTree, ScrollingNodeID nodeID) 42 : ScrollingStateScrollingNode(stateTree, FrameScrollingNode, nodeID) 43 { 36 Ref<ScrollingStateFrameScrollingNode> ScrollingStateFrameScrollingNode::create(ScrollingStateTree& stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 37 { 38 return adoptRef(*new ScrollingStateFrameScrollingNode(stateTree, nodeType, nodeID)); 39 } 40 41 ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode(ScrollingStateTree& stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 42 : ScrollingStateScrollingNode(stateTree, nodeType, nodeID) 43 { 44 ASSERT(isFrameScrollingNode()); 44 45 } 45 46 -
trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.h
r220503 r228264 40 40 class ScrollingStateFrameScrollingNode final : public ScrollingStateScrollingNode { 41 41 public: 42 static Ref<ScrollingStateFrameScrollingNode> create(ScrollingStateTree&, ScrollingNode ID);42 static Ref<ScrollingStateFrameScrollingNode> create(ScrollingStateTree&, ScrollingNodeType, ScrollingNodeID); 43 43 44 44 Ref<ScrollingStateNode> clone(ScrollingStateTree&) override; … … 135 135 136 136 private: 137 ScrollingStateFrameScrollingNode(ScrollingStateTree&, ScrollingNode ID);137 ScrollingStateFrameScrollingNode(ScrollingStateTree&, ScrollingNodeType, ScrollingNodeID); 138 138 ScrollingStateFrameScrollingNode(const ScrollingStateFrameScrollingNode&, ScrollingStateTree&); 139 139 -
trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h
r227596 r228264 198 198 bool isStickyNode() const { return m_nodeType == StickyNode; } 199 199 bool isScrollingNode() const { return isFrameScrollingNode() || isOverflowScrollingNode(); } 200 bool isFrameScrollingNode() const { return m_nodeType == FrameScrollingNode; }200 bool isFrameScrollingNode() const { return m_nodeType == MainFrameScrollingNode || m_nodeType == SubframeScrollingNode; } 201 201 bool isOverflowScrollingNode() const { return m_nodeType == OverflowScrollingNode; } 202 202 -
trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp
r223728 r228264 73 73 case StickyNode: 74 74 return ScrollingStateStickyNode::create(*this, nodeID); 75 case FrameScrollingNode: 76 return ScrollingStateFrameScrollingNode::create(*this, nodeID); 75 case MainFrameScrollingNode: 76 case SubframeScrollingNode: 77 return ScrollingStateFrameScrollingNode::create(*this, nodeType, nodeID); 77 78 case OverflowScrollingNode: 78 79 return ScrollingStateOverflowScrollingNode::create(*this, nodeID); … … 117 118 clear(); 118 119 119 setRootStateNode(ScrollingStateFrameScrollingNode::create(*this, newNodeID));120 setRootStateNode(ScrollingStateFrameScrollingNode::create(*this, MainFrameScrollingNode, newNodeID)); 120 121 newNode = rootStateNode(); 121 122 m_hasNewRootStateNode = true; … … 125 126 return 0; 126 127 127 if (nodeType == FrameScrollingNode && parentID) {128 if (nodeType == SubframeScrollingNode && parentID) { 128 129 if (auto orphanedNode = m_orphanedSubframeNodes.take(newNodeID)) { 129 130 newNode = orphanedNode.get(); -
trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp
r223728 r228264 37 37 namespace WebCore { 38 38 39 ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode(ScrollingTree& scrollingTree, ScrollingNode ID nodeID)40 : ScrollingTreeScrollingNode(scrollingTree, FrameScrollingNode, nodeID)39 ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 40 : ScrollingTreeScrollingNode(scrollingTree, nodeType, nodeID) 41 41 { 42 ASSERT(isFrameScrollingNode()); 42 43 } 43 44 -
trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h
r220503 r228264 62 62 63 63 protected: 64 ScrollingTreeFrameScrollingNode(ScrollingTree&, ScrollingNode ID);64 ScrollingTreeFrameScrollingNode(ScrollingTree&, ScrollingNodeType, ScrollingNodeID); 65 65 66 66 void scrollBy(const FloatSize&); -
trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h
r225480 r228264 51 51 bool isStickyNode() const { return nodeType() == StickyNode; } 52 52 bool isScrollingNode() const { return isFrameScrollingNode() || isOverflowScrollingNode(); } 53 bool isFrameScrollingNode() const { return nodeType() == FrameScrollingNode; }53 bool isFrameScrollingNode() const { return nodeType() == MainFrameScrollingNode || nodeType() == SubframeScrollingNode; } 54 54 bool isOverflowScrollingNode() const { return nodeType() == OverflowScrollingNode; } 55 55 -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h
r208503 r228264 37 37 class ScrollingTreeFrameScrollingNodeIOS : public ScrollingTreeFrameScrollingNode { 38 38 public: 39 WEBCORE_EXPORT static Ref<ScrollingTreeFrameScrollingNodeIOS> create(ScrollingTree&, ScrollingNode ID);39 WEBCORE_EXPORT static Ref<ScrollingTreeFrameScrollingNodeIOS> create(ScrollingTree&, ScrollingNodeType, ScrollingNodeID); 40 40 virtual ~ScrollingTreeFrameScrollingNodeIOS(); 41 41 42 42 protected: 43 ScrollingTreeFrameScrollingNodeIOS(ScrollingTree&, ScrollingNode ID);43 ScrollingTreeFrameScrollingNodeIOS(ScrollingTree&, ScrollingNodeType, ScrollingNodeID); 44 44 45 45 // ScrollingTreeNode member functions. -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm
r210828 r228264 39 39 namespace WebCore { 40 40 41 Ref<ScrollingTreeFrameScrollingNodeIOS> ScrollingTreeFrameScrollingNodeIOS::create(ScrollingTree& scrollingTree, ScrollingNode ID nodeID)42 { 43 return adoptRef(*new ScrollingTreeFrameScrollingNodeIOS(scrollingTree, node ID));44 } 45 46 ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS(ScrollingTree& scrollingTree, ScrollingNode ID nodeID)47 : ScrollingTreeFrameScrollingNode(scrollingTree, node ID)41 Ref<ScrollingTreeFrameScrollingNodeIOS> ScrollingTreeFrameScrollingNodeIOS::create(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 42 { 43 return adoptRef(*new ScrollingTreeFrameScrollingNodeIOS(scrollingTree, nodeType, nodeID)); 44 } 45 46 ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 47 : ScrollingTreeFrameScrollingNode(scrollingTree, nodeType, nodeID) 48 48 { 49 49 } -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp
r223476 r228264 87 87 { 88 88 switch (nodeType) { 89 case FrameScrollingNode: 90 return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeID); 89 case MainFrameScrollingNode: 90 case SubframeScrollingNode: 91 return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeType, nodeID); 91 92 case OverflowScrollingNode: 92 93 ASSERT_NOT_REACHED(); -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h
r217737 r228264 39 39 class ScrollingTreeFrameScrollingNodeMac : public ScrollingTreeFrameScrollingNode, private ScrollControllerClient { 40 40 public: 41 WEBCORE_EXPORT static Ref<ScrollingTreeFrameScrollingNode> create(ScrollingTree&, ScrollingNode ID);41 WEBCORE_EXPORT static Ref<ScrollingTreeFrameScrollingNode> create(ScrollingTree&, ScrollingNodeType, ScrollingNodeID); 42 42 virtual ~ScrollingTreeFrameScrollingNodeMac(); 43 43 44 44 private: 45 ScrollingTreeFrameScrollingNodeMac(ScrollingTree&, ScrollingNode ID);45 ScrollingTreeFrameScrollingNodeMac(ScrollingTree&, ScrollingNodeType, ScrollingNodeID); 46 46 47 47 void releaseReferencesToScrollerImpsOnTheMainThread(); -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
r220979 r228264 49 49 namespace WebCore { 50 50 51 Ref<ScrollingTreeFrameScrollingNode> ScrollingTreeFrameScrollingNodeMac::create(ScrollingTree& scrollingTree, ScrollingNode ID nodeID)52 { 53 return adoptRef(*new ScrollingTreeFrameScrollingNodeMac(scrollingTree, node ID));54 } 55 56 ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac(ScrollingTree& scrollingTree, ScrollingNode ID nodeID)57 : ScrollingTreeFrameScrollingNode(scrollingTree, node ID)51 Ref<ScrollingTreeFrameScrollingNode> ScrollingTreeFrameScrollingNodeMac::create(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 52 { 53 return adoptRef(*new ScrollingTreeFrameScrollingNodeMac(scrollingTree, nodeType, nodeID)); 54 } 55 56 ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID) 57 : ScrollingTreeFrameScrollingNode(scrollingTree, nodeType, nodeID) 58 58 , m_scrollController(*this) 59 59 , m_verticalScrollerImp(nullptr) -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp
r211033 r228264 48 48 { 49 49 switch (nodeType) { 50 case FrameScrollingNode: 51 return ScrollingTreeFrameScrollingNodeMac::create(*this, nodeID); 50 case MainFrameScrollingNode: 51 case SubframeScrollingNode: 52 return ScrollingTreeFrameScrollingNodeMac::create(*this, nodeType, nodeID); 52 53 case OverflowScrollingNode: 53 54 ASSERT_NOT_REACHED(); -
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp
r226521 r228264 3676 3676 continue; 3677 3677 3678 scrollingCoordinator->attachToStateTree( FrameScrollingNode, frameScrollingNodeID, parentNodeID);3678 scrollingCoordinator->attachToStateTree(child->isMainFrame() ? MainFrameScrollingNode : SubframeScrollingNode, frameScrollingNodeID, parentNodeID); 3679 3679 } 3680 3680 } … … 3683 3683 { 3684 3684 switch (nodeType) { 3685 case FrameScrollingNode: 3685 case MainFrameScrollingNode: 3686 case SubframeScrollingNode: 3686 3687 case OverflowScrollingNode: 3687 3688 return Scrolling; … … 3742 3743 ASSERT(scrollingCoordinator->coordinatesScrollingForFrameView(m_renderView.frameView())); 3743 3744 3744 ScrollingNodeID nodeID = attachScrollingNode(*m_renderView.layer(), FrameScrollingNode, parentNodeID);3745 ScrollingNodeID nodeID = attachScrollingNode(*m_renderView.layer(), m_renderView.frame().isMainFrame() ? MainFrameScrollingNode : SubframeScrollingNode, parentNodeID); 3745 3746 scrollingCoordinator->updateFrameScrollingNode(nodeID, m_scrollLayer.get(), m_rootContentLayer.get(), fixedRootBackgroundLayer(), clipLayer()); 3746 3747 } … … 3776 3777 // If a node plays both roles, fixed/sticky is always the ancestor node of scrolling. 3777 3778 if (reasons & ViewportConstrained) { 3778 ScrollingNodeType nodeType = FrameScrollingNode;3779 ScrollingNodeType nodeType = MainFrameScrollingNode; 3779 3780 if (layer.renderer().isFixedPositioned()) 3780 3781 nodeType = FixedNode; … … 3801 3802 scrollingCoordinator->updateNodeViewportConstraints(nodeID, computeStickyViewportConstraints(layer)); 3802 3803 break; 3803 case FrameScrollingNode: 3804 case MainFrameScrollingNode: 3805 case SubframeScrollingNode: 3804 3806 case OverflowScrollingNode: 3805 3807 break; -
trunk/Source/WebKit/ChangeLog
r228262 r228264 1 2018-02-08 Frederic Wang <fwang@igalia.com> 2 3 Add scrolling node types to distinguish main frames and subframes. 4 https://bugs.webkit.org/show_bug.cgi?id=182533 5 6 Reviewed by Simon Fraser. 7 8 * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: Replace the case of 9 FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. 10 (WebKit::encodeNodeAndDescendants): 11 (WebKit::RemoteScrollingCoordinatorTransaction::decode): 12 (WebKit::dump): 13 * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: Ditto. 14 (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): 15 * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: Ditto and pass the node type to the 16 constructor of the frame scrolling node. 17 (WebKit::RemoteScrollingTree::createScrollingTreeNode): 18 * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Replace the case of 19 FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. 20 (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): 21 * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: In order to 22 determine whether the node is a main frame or subframe, use the node type instead of checking 23 whether the node as a parent. 24 (WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll): 25 1 26 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> 2 27 -
trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp
r223238 r228264 335 335 336 336 switch (stateNode.nodeType()) { 337 case FrameScrollingNode: 337 case MainFrameScrollingNode: 338 case SubframeScrollingNode: 338 339 encoder << downcast<ScrollingStateFrameScrollingNode>(stateNode); 339 340 break; … … 419 420 420 421 switch (nodeType) { 421 case FrameScrollingNode: 422 case MainFrameScrollingNode: 423 case SubframeScrollingNode: 422 424 if (!decoder.decode(downcast<ScrollingStateFrameScrollingNode>(*newNode))) 423 425 return false; … … 562 564 563 565 switch (node.nodeType()) { 564 case FrameScrollingNode: 566 case MainFrameScrollingNode: 567 case SubframeScrollingNode: 565 568 dump(ts, downcast<ScrollingStateFrameScrollingNode>(node), changedPropertiesOnly); 566 569 break; -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
r221541 r228264 104 104 105 105 switch (currNode->nodeType()) { 106 case FrameScrollingNode: { 106 case MainFrameScrollingNode: 107 case SubframeScrollingNode: { 107 108 ScrollingStateFrameScrollingNode& scrollingStateNode = downcast<ScrollingStateFrameScrollingNode>(*currNode); 108 109 -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp
r221541 r228264 114 114 { 115 115 switch (nodeType) { 116 case FrameScrollingNode: 116 case MainFrameScrollingNode: 117 case SubframeScrollingNode: 117 118 #if PLATFORM(IOS) 118 return ScrollingTreeFrameScrollingNodeIOS::create(*this, node ID);119 return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeType, nodeID); 119 120 #else 120 return ScrollingTreeFrameScrollingNodeMac::create(*this, node ID);121 return ScrollingTreeFrameScrollingNodeMac::create(*this, nodeType, nodeID); 121 122 #endif 122 123 case OverflowScrollingNode: -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm
r221541 r228264 68 68 break; 69 69 }; 70 case FrameScrollingNode: { 70 case MainFrameScrollingNode: 71 case SubframeScrollingNode: { 71 72 ScrollingStateFrameScrollingNode& scrollingStateNode = downcast<ScrollingStateFrameScrollingNode>(*currNode); 72 73 -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm
r225480 r228264 248 248 FloatRect fixedPositionRect; 249 249 auto* frameNode = scrollingNode().enclosingFrameNodeIncludingSelf(); 250 if (frameNode && frameNode-> parent())250 if (frameNode && frameNode->nodeType() == SubframeScrollingNode) 251 251 fixedPositionRect = frameNode->fixedPositionRect(); 252 252 else
Note: See TracChangeset
for help on using the changeset viewer.