| Index: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| index 823e27824fea526391aa5ac8d8fb2e7015c068c3..a545b7dea41aa6ce14b93a108bd80aa92655d2fa 100644
|
| --- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| +++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
|
| @@ -69,6 +69,8 @@ using blink::WebRect;
|
| using blink::WebScrollbarLayer;
|
| using blink::WebVector;
|
|
|
| +namespace blink {
|
| +
|
| namespace {
|
|
|
| WebLayer* toWebLayer(blink::GraphicsLayer* layer)
|
| @@ -76,9 +78,17 @@ WebLayer* toWebLayer(blink::GraphicsLayer* layer)
|
| return layer ? layer->platformLayer() : nullptr;
|
| }
|
|
|
| -} // namespace
|
| +WebEventListenerProperties webEventListenerProperties(EventHandlerRegistry::EventHandlerClass blockingClass, EventHandlerRegistry::EventHandlerClass passiveClass, Page* page)
|
| +{
|
| + WebEventListenerProperties result = WebEventListenerProperties::Nothing;
|
| + if (page->frameHost().eventHandlerRegistry().hasEventHandlers(blockingClass))
|
| + result |= WebEventListenerProperties::Blocking;
|
| + if (page->frameHost().eventHandlerRegistry().hasEventHandlers(passiveClass))
|
| + result |= WebEventListenerProperties::Passive;
|
| + return result;
|
| +}
|
|
|
| -namespace blink {
|
| +} // namespace
|
|
|
| PassOwnPtrWillBeRawPtr<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
|
| {
|
| @@ -679,7 +689,19 @@ void ScrollingCoordinator::willDestroyLayer(PaintLayer* layer)
|
| m_layersWithTouchRects.remove(layer);
|
| }
|
|
|
| -void ScrollingCoordinator::updateHaveWheelEventHandlers()
|
| +void ScrollingCoordinator::updateTouchEventListenerProperties()
|
| +{
|
| + ASSERT(isMainThread());
|
| + ASSERT(m_page);
|
| + if (!m_page->mainFrame()->isLocalFrame() || !m_page->deprecatedLocalMainFrame()->view())
|
| + return;
|
| +
|
| + if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->view()->layerForScrolling())) {
|
| + scrollLayer->setTouchEventListenerProperties(webEventListenerProperties(EventHandlerRegistry::TouchEvent, EventHandlerRegistry::TouchEventPassive, m_page));
|
| + }
|
| +}
|
| +
|
| +void ScrollingCoordinator::updateWheelEventListenerProperties()
|
| {
|
| ASSERT(isMainThread());
|
| ASSERT(m_page);
|
| @@ -687,8 +709,7 @@ void ScrollingCoordinator::updateHaveWheelEventHandlers()
|
| return;
|
|
|
| if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->view()->layerForScrolling())) {
|
| - bool haveHandlers = m_page->frameHost().eventHandlerRegistry().hasEventHandlers(EventHandlerRegistry::WheelEvent);
|
| - scrollLayer->setHaveWheelEventHandlers(haveHandlers);
|
| + scrollLayer->setWheelEventListenerProperties(webEventListenerProperties(EventHandlerRegistry::WheelEvent, EventHandlerRegistry::WheelEventPassive, m_page));
|
| }
|
| }
|
|
|
| @@ -964,7 +985,8 @@ void ScrollingCoordinator::frameViewRootLayerDidChange(FrameView* frameView)
|
| return;
|
|
|
| notifyLayoutUpdated();
|
| - updateHaveWheelEventHandlers();
|
| + updateTouchEventListenerProperties();
|
| + updateWheelEventListenerProperties();
|
| updateHaveScrollEventHandlers();
|
| }
|
|
|
|
|