diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp index d56ef60ceb1..30975d125cc 100644 --- a/chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp +++ b/chromium/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp @@ -366,6 +366,11 @@ void ScrollingCoordinator::setTouchEventTargetRects(const LayerHitTestRects& lay LayerHitTestRects compositorRects; convertLayerRectsToEnclosingCompositedLayer(layerRects, compositorRects); + // Inform any observers (i.e. for testing) of these new rects. + HashSet<TouchEventTargetRectsObserver*>::iterator stop = m_touchEventTargetRectsObservers.end(); + for (HashSet<TouchEventTargetRectsObserver*>::iterator it = m_touchEventTargetRectsObservers.begin(); it != stop; ++it) + (*it)->touchEventTargetRectsChanged(compositorRects); + // Note that ideally we'd clear the touch event handler region on all layers first, // in case there are others that no longer have any handlers. But it's unlikely to // matter much in practice (just makes us more conservative). @@ -493,6 +498,16 @@ Region ScrollingCoordinator::computeShouldHandleScrollGestureOnMainThreadRegion( return shouldHandleScrollGestureOnMainThreadRegion; } +void ScrollingCoordinator::addTouchEventTargetRectsObserver(TouchEventTargetRectsObserver* observer) +{ + m_touchEventTargetRectsObservers.add(observer); +} + +void ScrollingCoordinator::removeTouchEventTargetRectsObserver(TouchEventTargetRectsObserver* observer) +{ + m_touchEventTargetRectsObservers.remove(observer); +} + static void accumulateDocumentTouchEventTargetRects(LayerHitTestRects& rects, const Document* document) { ASSERT(document); |