Changeset 169312 in webkit


Ignore:
Timestamp:
May 24, 2014, 1:40:03 PM (12 years ago)
Author:
Simon Fraser
Message:

Share some more ScrollingTreeScrollingNode code
https://bugs.webkit.org/show_bug.cgi?id=133248

Reviewed by Sam Weinig.

Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
down to ScrollingTreeFrameScrollingNode.

This requires that scrollPosition() return the right thing for each class, so make
it virtual. Future patches will reduce the confusion between the committed scroll
position and the one derived from layers.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
(WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:

(WebCore::ScrollingTreeScrollingNode::scrollPosition):

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.

Location:
trunk/Source/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r169310 r169312  
     12014-05-23  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Share some more ScrollingTreeScrollingNode code
     4        https://bugs.webkit.org/show_bug.cgi?id=133248
     5
     6        Reviewed by Sam Weinig.
     7
     8        Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
     9        down to ScrollingTreeFrameScrollingNode.
     10       
     11        This requires that scrollPosition() return the right thing for each class, so make
     12        it virtual. Future patches will reduce the confusion between the committed scroll
     13        position and the one derived from layers.
     14
     15        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
     16        (WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
     17        (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
     18        (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
     19        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
     20        * page/scrolling/ScrollingTreeScrollingNode.h:
     21        (WebCore::ScrollingTreeScrollingNode::scrollPosition):
     22        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
     23        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
     24        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
     25        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
     26        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
     27        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
     28        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
     29        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
     30        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
     31        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
     32        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
     33        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
     34        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
     35        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.
     36
    1372014-05-24  Chris Fleizach  <cfleizach@apple.com>
    238
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp

    r169063 r169312  
    7373        m_topContentInset = state.topContentInset();
    7474}
    75    
     75
     76void ScrollingTreeFrameScrollingNode::scrollBy(const FloatSize& offset)
     77{
     78    setScrollPosition(scrollPosition() + offset);
     79}
     80
     81void ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints(const FloatSize& offset)
     82{
     83    setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
     84}
     85
     86void ScrollingTreeFrameScrollingNode::setScrollPosition(const FloatPoint& scrollPosition)
     87{
     88    FloatPoint newScrollPosition = scrollPosition;
     89    newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
     90    newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
     91
     92    setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
     93}
     94
    7695} // namespace WebCore
    7796
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h

    r169063 r169312  
    4747
    4848    virtual void handleWheelEvent(const PlatformWheelEvent&) = 0;
    49     virtual void setScrollPosition(const FloatPoint&) = 0;
     49    virtual void setScrollPosition(const FloatPoint&);
    5050    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) = 0;
    5151
     
    5858protected:
    5959    ScrollingTreeFrameScrollingNode(ScrollingTree&, ScrollingNodeID);
     60
     61    void scrollBy(const FloatSize&);
     62    void scrollByWithoutContentEdgeConstraints(const FloatSize&);
    6063
    6164    float frameScaleFactor() const { return m_frameScaleFactor; }
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h

    r169063 r169312  
    6565    virtual void setScrollLayerPosition(const FloatPoint&) = 0;
    6666
    67     const FloatPoint& scrollPosition() const { return m_scrollPosition; }
     67    virtual FloatPoint scrollPosition() const { return m_scrollPosition; }
    6868    const FloatSize& scrollableAreaSize() const { return m_scrollableAreaSize; }
    6969    const FloatSize& totalContentsSize() const { return m_totalContentsSize; }
     
    8888    FloatSize m_totalContentsSize;
    8989    FloatSize m_totalContentsSizeForRubberBand;
    90     FloatPoint m_scrollPosition;
     90    FloatPoint m_scrollPosition; // FIXME: this is the committed scroll position.
    9191    IntPoint m_scrollOrigin;
    9292   
  • trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h

    r169063 r169312  
    4949    virtual void handleWheelEvent(const PlatformWheelEvent&) override { }
    5050
    51     FloatPoint scrollPosition() const;
    52     virtual void setScrollPosition(const FloatPoint&) override;
     51    virtual FloatPoint scrollPosition() const override;
    5352    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override;
    5453
     
    5857    virtual void setScrollLayerPosition(const FloatPoint&) override;
    5958
    60     FloatPoint minimumScrollPosition() const;
    61     FloatPoint maximumScrollPosition() const;
    62 
    63     void scrollBy(const IntSize&);
    64     void scrollByWithoutContentEdgeConstraints(const IntSize&);
     59    virtual FloatPoint minimumScrollPosition() const override;
     60    virtual FloatPoint maximumScrollPosition() const override;
    6561
    6662private:
  • trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm

    r169063 r169312  
    107107}
    108108
    109 void ScrollingTreeFrameScrollingNodeIOS::setScrollPosition(const FloatPoint& scrollPosition)
    110 {
    111     FloatPoint newScrollPosition = scrollPosition;
    112     newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
    113     newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
    114 
    115     setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
    116 }
    117 
    118109void ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints(const FloatPoint& scrollPosition)
    119110{
     
    212203}
    213204
    214 void ScrollingTreeFrameScrollingNodeIOS::scrollBy(const IntSize& offset)
    215 {
    216     setScrollPosition(scrollPosition() + offset);
    217 }
    218 
    219 void ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints(const IntSize& offset)
    220 {
    221     setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
    222 }
    223 
    224205} // namespace WebCore
    225206
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h

    r169063 r169312  
    6666    virtual void adjustScrollPositionToBoundsIfNecessary() override;
    6767
    68     FloatPoint scrollPosition() const;
     68    virtual FloatPoint scrollPosition() const override;
    6969    virtual void setScrollPosition(const FloatPoint&) override;
    7070    virtual void setScrollPositionWithoutContentEdgeConstraints(const FloatPoint&) override;
     
    7676    virtual FloatPoint minimumScrollPosition() const override;
    7777    virtual FloatPoint maximumScrollPosition() const override;
    78 
    79     void scrollBy(const IntSize&);
    80     void scrollByWithoutContentEdgeConstraints(const IntSize&);
    8178
    8279    void updateMainFramePinState(const FloatPoint& scrollPosition);
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm

    r169123 r169312  
    110110            else {
    111111                CGPoint scrollLayerPosition = m_scrollLayer.get().position;
    112                 m_probableMainThreadScrollPosition = IntPoint(-scrollLayerPosition.x, -scrollLayerPosition.y);
     112                m_probableMainThreadScrollPosition = FloatPoint(-scrollLayerPosition.x, -scrollLayerPosition.y);
    113113            }
    114114        }
     
    263263void ScrollingTreeFrameScrollingNodeMac::immediateScrollBy(const FloatSize& offset)
    264264{
    265     scrollBy(roundedIntSize(offset));
     265    scrollBy(offset);
    266266}
    267267
    268268void ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints(const FloatSize& offset)
    269269{
    270     scrollByWithoutContentEdgeConstraints(roundedIntSize(offset));
     270    scrollByWithoutContentEdgeConstraints(offset);
    271271}
    272272
     
    316316
    317317    CGPoint scrollLayerPosition = m_scrollLayer.get().position;
    318     return IntPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());
     318    return FloatPoint(-scrollLayerPosition.x + scrollOrigin().x(), -scrollLayerPosition.y + scrollOrigin().y());
    319319}
    320320
    321321void ScrollingTreeFrameScrollingNodeMac::setScrollPosition(const FloatPoint& scrollPosition)
    322322{
    323     FloatPoint newScrollPosition = scrollPosition;
    324     newScrollPosition = newScrollPosition.shrunkTo(maximumScrollPosition());
    325     newScrollPosition = newScrollPosition.expandedTo(minimumScrollPosition());
    326 
    327     setScrollPositionWithoutContentEdgeConstraints(newScrollPosition);
     323    ScrollingTreeFrameScrollingNode::setScrollPosition(scrollPosition);
    328324
    329325    if (scrollingTree().scrollingPerformanceLoggingEnabled())
     
    444440}
    445441
    446 void ScrollingTreeFrameScrollingNodeMac::scrollBy(const IntSize& offset)
    447 {
    448     setScrollPosition(scrollPosition() + offset);
    449 }
    450 
    451 void ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints(const IntSize& offset)
    452 {
    453     setScrollPositionWithoutContentEdgeConstraints(scrollPosition() + offset);
    454 }
    455 
    456442void ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState(const FloatPoint& scrollPosition)
    457443{
Note: See TracChangeset for help on using the changeset viewer.