| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 MainThreadScrollingReasons mainThreadScrollingReasons() const; | 89 MainThreadScrollingReasons mainThreadScrollingReasons() const; |
| 90 bool shouldUpdateScrollLayerPositionOnMainThread() const { return mainThread
ScrollingReasons() != 0; } | 90 bool shouldUpdateScrollLayerPositionOnMainThread() const { return mainThread
ScrollingReasons() != 0; } |
| 91 | 91 |
| 92 void willDestroyScrollableArea(ScrollableArea*); | 92 void willDestroyScrollableArea(ScrollableArea*); |
| 93 void scrollableAreaScrollLayerDidChange(ScrollableArea*); | 93 void scrollableAreaScrollLayerDidChange(ScrollableArea*); |
| 94 void scrollableAreaScrollbarLayerDidChange(ScrollableArea*, ScrollbarOrienta
tion); | 94 void scrollableAreaScrollbarLayerDidChange(ScrollableArea*, ScrollbarOrienta
tion); |
| 95 void setLayerIsContainerForFixedPositionLayers(GraphicsLayer*, bool); | 95 void setLayerIsContainerForFixedPositionLayers(GraphicsLayer*, bool); |
| 96 void updateLayerPositionConstraint(RenderLayer*); | 96 void updateLayerPositionConstraint(RenderLayer*); |
| 97 void touchEventTargetRectsDidChange(const Document*); | 97 void touchEventTargetRectsDidChange(const Document*); |
| 98 | 98 |
| 99 void computeAbsoluteTouchEventTargetRects(const Document*, Vector<IntRect>&)
; | |
| 100 | |
| 101 static String mainThreadScrollingReasonsAsText(MainThreadScrollingReasons); | 99 static String mainThreadScrollingReasonsAsText(MainThreadScrollingReasons); |
| 102 String mainThreadScrollingReasonsAsText() const; | 100 String mainThreadScrollingReasonsAsText() const; |
| 103 Region computeShouldHandleScrollGestureOnMainThreadRegion(const Frame*, cons
t IntPoint& frameLocation) const; | 101 Region computeShouldHandleScrollGestureOnMainThreadRegion(const Frame*, cons
t IntPoint& frameLocation) const; |
| 104 | 102 |
| 103 class TouchEventTargetRectsObserver { |
| 104 public: |
| 105 virtual void touchEventTargetRectsChanged(const LayerHitTestRects&) = 0; |
| 106 }; |
| 107 |
| 108 void addTouchEventTargetRectsObserver(TouchEventTargetRectsObserver*); |
| 109 void removeTouchEventTargetRectsObserver(TouchEventTargetRectsObserver*); |
| 110 |
| 105 protected: | 111 protected: |
| 106 explicit ScrollingCoordinator(Page*); | 112 explicit ScrollingCoordinator(Page*); |
| 107 | 113 |
| 108 static GraphicsLayer* scrollLayerForScrollableArea(ScrollableArea*); | 114 static GraphicsLayer* scrollLayerForScrollableArea(ScrollableArea*); |
| 109 static GraphicsLayer* horizontalScrollbarLayerForScrollableArea(ScrollableAr
ea*); | 115 static GraphicsLayer* horizontalScrollbarLayerForScrollableArea(ScrollableAr
ea*); |
| 110 static GraphicsLayer* verticalScrollbarLayerForScrollableArea(ScrollableArea
*); | 116 static GraphicsLayer* verticalScrollbarLayerForScrollableArea(ScrollableArea
*); |
| 111 | 117 |
| 112 unsigned computeCurrentWheelEventHandlerCount(); | 118 unsigned computeCurrentWheelEventHandlerCount(); |
| 113 GraphicsLayer* scrollLayerForFrameView(FrameView*); | 119 GraphicsLayer* scrollLayerForFrameView(FrameView*); |
| 114 GraphicsLayer* counterScrollingLayerForFrameView(FrameView*); | 120 GraphicsLayer* counterScrollingLayerForFrameView(FrameView*); |
| 115 | 121 |
| 116 Page* m_page; | 122 Page* m_page; |
| 117 | 123 |
| 118 private: | 124 private: |
| 119 void recomputeWheelEventHandlerCountForFrameView(FrameView*); | 125 void recomputeWheelEventHandlerCountForFrameView(FrameView*); |
| 120 void setShouldUpdateScrollLayerPositionOnMainThread(MainThreadScrollingReaso
ns); | 126 void setShouldUpdateScrollLayerPositionOnMainThread(MainThreadScrollingReaso
ns); |
| 121 | 127 |
| 122 bool hasVisibleSlowRepaintViewportConstrainedObjects(FrameView*) const; | 128 bool hasVisibleSlowRepaintViewportConstrainedObjects(FrameView*) const; |
| 123 void updateShouldUpdateScrollLayerPositionOnMainThread(); | 129 void updateShouldUpdateScrollLayerPositionOnMainThread(); |
| 124 | 130 |
| 125 static WebKit::WebLayer* scrollingWebLayerForScrollableArea(ScrollableArea*)
; | 131 static WebKit::WebLayer* scrollingWebLayerForScrollableArea(ScrollableArea*)
; |
| 126 | 132 |
| 127 void setShouldHandleScrollGestureOnMainThreadRegion(const Region&); | 133 void setShouldHandleScrollGestureOnMainThreadRegion(const Region&); |
| 128 void setTouchEventTargetRects(const Vector<IntRect>&); | 134 void setTouchEventTargetRects(const LayerHitTestRects&); |
| 135 void computeTouchEventTargetRects(LayerHitTestRects&); |
| 129 void setWheelEventHandlerCount(unsigned); | 136 void setWheelEventHandlerCount(unsigned); |
| 130 | 137 |
| 131 WebKit::WebScrollbarLayer* addWebScrollbarLayer(ScrollableArea*, ScrollbarOr
ientation, PassOwnPtr<WebKit::WebScrollbarLayer>); | 138 WebKit::WebScrollbarLayer* addWebScrollbarLayer(ScrollableArea*, ScrollbarOr
ientation, PassOwnPtr<WebKit::WebScrollbarLayer>); |
| 132 WebKit::WebScrollbarLayer* getWebScrollbarLayer(ScrollableArea*, ScrollbarOr
ientation); | 139 WebKit::WebScrollbarLayer* getWebScrollbarLayer(ScrollableArea*, ScrollbarOr
ientation); |
| 133 void removeWebScrollbarLayer(ScrollableArea*, ScrollbarOrientation); | 140 void removeWebScrollbarLayer(ScrollableArea*, ScrollbarOrientation); |
| 134 | 141 |
| 135 typedef HashMap<ScrollableArea*, OwnPtr<WebKit::WebScrollbarLayer> > Scrollb
arMap; | 142 typedef HashMap<ScrollableArea*, OwnPtr<WebKit::WebScrollbarLayer> > Scrollb
arMap; |
| 136 ScrollbarMap m_horizontalScrollbars; | 143 ScrollbarMap m_horizontalScrollbars; |
| 137 ScrollbarMap m_verticalScrollbars; | 144 ScrollbarMap m_verticalScrollbars; |
| 138 | 145 |
| 146 HashSet<TouchEventTargetRectsObserver*> m_touchEventTargetRectsObservers; |
| 139 }; | 147 }; |
| 140 | 148 |
| 141 } // namespace WebCore | 149 } // namespace WebCore |
| 142 | 150 |
| 143 #endif // ScrollingCoordinator_h | 151 #endif // ScrollingCoordinator_h |
| OLD | NEW |