Chromium Code Reviews| Index: third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp |
| diff --git a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp |
| index 5bf13bd26d69f9c1677d217ecbe2cb1c9d4f9acf..99bddb5d0aeaa06746f6978ea0a72e62f3ca2099 100644 |
| --- a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp |
| +++ b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp |
| @@ -16,14 +16,6 @@ namespace blink { |
| namespace { |
| -inline bool isTouchEventType(const AtomicString& eventType) |
| -{ |
| - return eventType == EventTypeNames::touchstart |
| - || eventType == EventTypeNames::touchmove |
| - || eventType == EventTypeNames::touchend |
| - || eventType == EventTypeNames::touchcancel; |
| -} |
| - |
| inline bool isPointerEventType(const AtomicString& eventType) |
| { |
| return eventType == EventTypeNames::gotpointercapture |
| @@ -67,7 +59,9 @@ bool EventHandlerRegistry::eventTypeToClass(const AtomicString& eventType, const |
| *result = ScrollEvent; |
| } else if (eventType == EventTypeNames::wheel || eventType == EventTypeNames::mousewheel) { |
| *result = options.passive() ? WheelEventPassive : WheelEventBlocking; |
| - } else if (isTouchEventType(eventType)) { |
| + } else if (eventType == EventTypeNames::touchend || eventType == EventTypeNames::touchcancel) { |
| + *result = options.passive() ? TouchEndOrCancelEventPassive : TouchEndOrCancelEventBlocking; |
| + } else if (eventType == EventTypeNames::touchstart || eventType == EventTypeNames::touchmove) { |
| *result = options.passive() ? TouchEventPassive : TouchEventBlocking; |
| } else if (isPointerEventType(eventType)) { |
| // The EventHandlerClass is TouchEventPassive since the pointer events |
| @@ -222,6 +216,12 @@ void EventHandlerRegistry::notifyHasHandlersChanged(EventHandlerClass handlerCla |
| case TouchEventBlocking: |
| case TouchEventPassive: |
| m_frameHost->chromeClient().setEventListenerProperties(WebEventListenerClass::Touch, webEventListenerProperties(hasEventHandlers(TouchEventBlocking), hasEventHandlers(TouchEventPassive))); |
| + updateHaveTouchEventListeners(); |
| + break; |
| + case TouchEndOrCancelEventBlocking: |
| + case TouchEndOrCancelEventPassive: |
| + m_frameHost->chromeClient().setEventListenerProperties(WebEventListenerClass::TouchEndOrCancel, webEventListenerProperties(hasEventHandlers(TouchEndOrCancelEventBlocking), hasEventHandlers(TouchEndOrCancelEventPassive))); |
| + updateHaveTouchEventListeners(); |
| break; |
| #if ENABLE(ASSERT) |
| case EventsForTesting: |
| @@ -233,6 +233,11 @@ void EventHandlerRegistry::notifyHasHandlersChanged(EventHandlerClass handlerCla |
| } |
| } |
| +void EventHandlerRegistry::updateHaveTouchEventListeners() |
|
tdresser
2016/04/13 16:52:35
updateHasTouchEventListeners - I think we generall
dtapuska
2016/04/13 18:00:15
Will rename. I was trying to be consistent with Ch
|
| +{ |
| + m_frameHost->chromeClient().setHaveTouchEventListeners(hasEventHandlers(TouchEventBlocking) || hasEventHandlers(TouchEventPassive) || hasEventHandlers(TouchEndOrCancelEventBlocking) || hasEventHandlers(TouchEndOrCancelEventPassive)); |
| +} |
| + |
| void EventHandlerRegistry::notifyDidAddOrRemoveEventHandlerTarget(EventHandlerClass handlerClass) |
| { |
| ScrollingCoordinator* scrollingCoordinator = m_frameHost->page().scrollingCoordinator(); |