Changeset 169410 in webkit
- Timestamp:
- May 27, 2014, 9:44:54 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r169409 r169410 1 2014-05-27 Simon Fraser <simon.fraser@apple.com> 2 3 Do some renaming in the scrolling tree 4 https://bugs.webkit.org/show_bug.cgi?id=133333 5 6 Reviewed by Tim Horton. 7 8 Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange() 9 since this goes deep and to indicate that it's about layer updating. 10 11 Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS 12 this is the custom fixed-position rect that changes on zooming. 13 14 * page/scrolling/ScrollingTree.cpp: 15 (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): 16 * page/scrolling/ScrollingTree.h: 17 * page/scrolling/ScrollingTreeFrameScrollingNode.h: 18 * page/scrolling/ScrollingTreeNode.h: 19 * page/scrolling/ScrollingTreeScrollingNode.h: 20 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: 21 * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: 22 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange): 23 (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll): 24 * page/scrolling/mac/ScrollingTreeFixedNode.h: 25 * page/scrolling/mac/ScrollingTreeFixedNode.mm: 26 (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): 27 (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange): Deleted. 28 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: 29 * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: 30 (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition): 31 * page/scrolling/mac/ScrollingTreeStickyNode.h: 32 * page/scrolling/mac/ScrollingTreeStickyNode.mm: 33 (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): 34 (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange): Deleted. 35 1 36 2014-05-27 Simon Fraser <simon.fraser@apple.com> 2 37 -
trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp
r169063 r169410 99 99 } 100 100 101 void ScrollingTree::viewportChangedViaDelegatedScrolling(ScrollingNodeID nodeID, const WebCore::FloatRect& viewportRect, double scale)101 void ScrollingTree::viewportChangedViaDelegatedScrolling(ScrollingNodeID nodeID, const WebCore::FloatRect& fixedPositionRect, double scale) 102 102 { 103 103 ScrollingTreeNode* node = nodeForID(nodeID); … … 108 108 return; 109 109 110 toScrollingTreeScrollingNode(node)->updateLayersAfterViewportChange( viewportRect, scale);110 toScrollingTreeScrollingNode(node)->updateLayersAfterViewportChange(fixedPositionRect, scale); 111 111 } 112 112 -
trunk/Source/WebCore/page/scrolling/ScrollingTree.h
r168338 r169410 81 81 // Delegated scrolling/zooming has caused the viewport to change, so update viewport-constrained layers 82 82 // (but don't cause scroll events to be fired). 83 virtual void viewportChangedViaDelegatedScrolling(ScrollingNodeID, const WebCore::FloatRect& viewportRect, double scale);83 virtual void viewportChangedViaDelegatedScrolling(ScrollingNodeID, const WebCore::FloatRect& fixedPositionRect, double scale); 84 84 85 85 // Delegated scrolling has scrolled a node. Update layer positions on descendant tree nodes, -
trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h
r169312 r169410 44 44 45 45 // FIXME: We should implement this when we support ScrollingTreeScrollingNodes as children. 46 virtual void parentScrollPositionDidChange(const FloatRect& /*viewportRect*/, const FloatSize& /*cumulativeDelta*/) override { }46 virtual void updateLayersAfterAncestorChange(const ScrollingTreeNode& /*changedNode*/, const FloatRect& /*fixedPositionRect*/, const FloatSize& /*cumulativeDelta*/) override { } 47 47 48 48 virtual void handleWheelEvent(const PlatformWheelEvent&) = 0; … … 50 50 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) = 0; 51 51 52 virtual void updateLayersAfterViewportChange(const FloatRect& viewportRect, double scale) = 0;52 virtual void updateLayersAfterViewportChange(const FloatRect& fixedPositionRect, double scale) = 0; 53 53 virtual void updateLayersAfterDelegatedScroll(const FloatPoint&) { } 54 54 -
trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h
r169063 r169410 56 56 virtual void updateAfterChildren(const ScrollingStateNode&) { } 57 57 58 virtual void parentScrollPositionDidChange(const FloatRect& viewportRect, const FloatSize& cumulativeDelta) = 0;58 virtual void updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) = 0; 59 59 60 60 ScrollingTreeNode* parent() const { return m_parent; } -
trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
r169313 r169410 48 48 49 49 // FIXME: We should implement this when we support ScrollingTreeScrollingNodes as children. 50 virtual void parentScrollPositionDidChange(const FloatRect& /*viewportRect*/, const FloatSize& /*cumulativeDelta*/) override { }50 virtual void updateLayersAfterAncestorChange(const ScrollingTreeNode& /*changedNode*/, const FloatRect& /*fixedPositionRect*/, const FloatSize& /*cumulativeDelta*/) override { } 51 51 52 52 virtual void handleWheelEvent(const PlatformWheelEvent&) = 0; … … 54 54 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&); 55 55 56 virtual void updateLayersAfterViewportChange(const FloatRect& viewportRect, double scale) = 0;56 virtual void updateLayersAfterViewportChange(const FloatRect& fixedPositionRect, double scale) = 0; 57 57 virtual void updateLayersAfterDelegatedScroll(const FloatPoint&) { } 58 58 -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h
r169312 r169410 52 52 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override; 53 53 54 virtual void updateLayersAfterViewportChange(const FloatRect& viewportRect, double scale);54 virtual void updateLayersAfterViewportChange(const FloatRect& fixedPositionRect, double scale); 55 55 virtual void updateLayersAfterDelegatedScroll(const FloatPoint&) override; 56 56 -
trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm
r169312 r169410 127 127 } 128 128 129 void ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange(const FloatRect& viewportRect, double /*scale*/) 130 { 131 [m_counterScrollingLayer setPosition:viewportRect.location()]; 129 void ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange(const FloatRect& fixedPositionRect, double /*scale*/) 130 { 131 // Note: we never currently have a m_counterScrollingLayer (which is used for background-attachment:fixed) on iOS. 132 [m_counterScrollingLayer setPosition:fixedPositionRect.location()]; 132 133 133 134 if (!m_children) … … 136 137 size_t size = m_children->size(); 137 138 for (size_t i = 0; i < size; ++i) 138 m_children->at(i)-> parentScrollPositionDidChange(viewportRect, FloatSize());139 m_children->at(i)->updateLayersAfterAncestorChange(*this, fixedPositionRect, FloatSize()); 139 140 } 140 141 … … 170 171 if (!m_children) 171 172 return; 172 173 173 174 viewportRect.setLocation(scrollOffset); 174 175 175 176 FloatRect viewportConstrainedObjectsRect = FrameView::rectForViewportConstrainedObjects(enclosingLayoutRect(viewportRect), roundedLayoutSize(totalContentsSize()), frameScaleFactor(), false, behaviorForFixed); 176 177 177 178 size_t size = m_children->size(); 178 179 for (size_t i = 0; i < size; ++i) 179 m_children->at(i)-> parentScrollPositionDidChange(viewportConstrainedObjectsRect, FloatSize());180 m_children->at(i)->updateLayersAfterAncestorChange(*this, fixedPositionRect, FloatSize()); 180 181 } 181 182 -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h
r166293 r169410 49 49 50 50 virtual void updateBeforeChildren(const ScrollingStateNode&) override; 51 virtual void parentScrollPositionDidChange(const FloatRect& viewportRect, const FloatSize& cumulativeDelta) override;51 virtual void updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) override; 52 52 53 53 FixedPositionViewportConstraints m_constraints; -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm
r163231 r169410 65 65 } 66 66 67 void ScrollingTreeFixedNode:: parentScrollPositionDidChange(const FloatRect& viewportRect, const FloatSize& cumulativeDelta)67 void ScrollingTreeFixedNode::updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) 68 68 { 69 FloatPoint layerPosition = m_constraints.layerPositionForViewportRect( viewportRect);69 FloatPoint layerPosition = m_constraints.layerPositionForViewportRect(fixedPositionRect); 70 70 layerPosition -= cumulativeDelta; 71 71 … … 82 82 size_t size = m_children->size(); 83 83 for (size_t i = 0; i < size; ++i) 84 m_children->at(i)-> parentScrollPositionDidChange(viewportRect, newDelta);84 m_children->at(i)->updateLayersAfterAncestorChange(changedNode, fixedPositionRect, newDelta); 85 85 } 86 86 -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h
r169312 r169410 70 70 virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override; 71 71 72 virtual void updateLayersAfterViewportChange(const FloatRect& viewportRect, double scale) override;72 virtual void updateLayersAfterViewportChange(const FloatRect& fixedPositionRect, double scale) override; 73 73 74 74 virtual void setScrollLayerPosition(const FloatPoint&) override; -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
r169312 r169410 350 350 FloatRect viewportRect(FloatPoint(), scrollableAreaSize()); 351 351 352 // FIXME: scrollOffsetForFixedPosition() needs to do float math.353 352 FloatSize scrollOffsetForFixedChildren = FrameView::scrollOffsetForFixedPosition(enclosingLayoutRect(viewportRect), 354 353 roundedLayoutSize(totalContentsSize()), roundedLayoutPoint(scrollOffset), scrollOrigin(), frameScaleFactor(), false, behaviorForFixed, headerHeight(), footerHeight()); … … 411 410 size_t size = m_children->size(); 412 411 for (size_t i = 0; i < size; ++i) 413 m_children->at(i)-> parentScrollPositionDidChange(viewportRect, FloatSize());412 m_children->at(i)->updateLayersAfterAncestorChange(*this, viewportRect, FloatSize()); 414 413 } 415 414 -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h
r166293 r169410 49 49 50 50 virtual void updateBeforeChildren(const ScrollingStateNode&) override; 51 virtual void parentScrollPositionDidChange(const FloatRect& viewportRect, const FloatSize& cumulativeDelta) override;51 virtual void updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) override; 52 52 53 53 StickyPositionViewportConstraints m_constraints; -
trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.mm
r163231 r169410 65 65 } 66 66 67 void ScrollingTreeStickyNode:: parentScrollPositionDidChange(const FloatRect& viewportRect, const FloatSize& cumulativeDelta)67 void ScrollingTreeStickyNode::updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) 68 68 { 69 FloatPoint layerPosition = m_constraints.layerPositionForConstrainingRect( viewportRect);69 FloatPoint layerPosition = m_constraints.layerPositionForConstrainingRect(fixedPositionRect); 70 70 71 71 // FIXME: Subtracting the cumulativeDelta is not totally sufficient to get the new position right for nested … … 86 86 size_t size = m_children->size(); 87 87 for (size_t i = 0; i < size; ++i) 88 m_children->at(i)-> parentScrollPositionDidChange(viewportRect, newDelta);88 m_children->at(i)->updateLayersAfterAncestorChange(changedNode, fixedPositionRect, newDelta); 89 89 } 90 90 -
trunk/Source/WebKit2/ChangeLog
r169405 r169410 1 2014-05-27 Simon Fraser <simon.fraser@apple.com> 2 3 Do some renaming in the scrolling tree 4 https://bugs.webkit.org/show_bug.cgi?id=133333 5 6 Reviewed by Tim Horton. 7 8 Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange() 9 since this goes deep and to indicate that it's about layer updating. 10 11 Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS 12 this is the custom fixed-position rect that changes on zooming. 13 14 * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: 15 (WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling): 16 * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: 17 * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: 18 (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange): 19 1 20 2014-05-27 Geoffrey Garen <ggaren@apple.com> 2 21 -
trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp
r169123 r169410 155 155 } 156 156 157 void RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling(ScrollingNodeID nodeID, const FloatRect& viewportRect, double scale)157 void RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling(ScrollingNodeID nodeID, const FloatRect& fixedPositionRect, double scale) 158 158 { 159 m_scrollingTree->viewportChangedViaDelegatedScrolling(nodeID, viewportRect, scale);159 m_scrollingTree->viewportChangedViaDelegatedScrolling(nodeID, fixedPositionRect, scale); 160 160 } 161 161 -
trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h
r168338 r169410 59 59 60 60 // Called externally when native views move around. 61 void viewportChangedViaDelegatedScrolling(WebCore::ScrollingNodeID, const WebCore::FloatRect& viewportRect, double scale);61 void viewportChangedViaDelegatedScrolling(WebCore::ScrollingNodeID, const WebCore::FloatRect& fixedPositionRect, double scale); 62 62 63 63 // FIXME: expose the tree and pass this to that? -
trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h
r169313 r169410 55 55 virtual void setScrollLayerPosition(const WebCore::FloatPoint&) override; 56 56 57 virtual void updateLayersAfterViewportChange(const WebCore::FloatRect& viewportRect, double scale) { }57 virtual void updateLayersAfterViewportChange(const WebCore::FloatRect& fixedPositionRect, double scale) { } 58 58 virtual void handleWheelEvent(const WebCore::PlatformWheelEvent&) override { } 59 59
Note:
See TracChangeset
for help on using the changeset viewer.