| 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..d0f0a453dd7b2919cbef70da7cc33220dba3aa23 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
|
| @@ -213,7 +207,7 @@ void EventHandlerRegistry::notifyHasHandlersChanged(EventHandlerClass handlerCla
|
| {
|
| switch (handlerClass) {
|
| case ScrollEvent:
|
| - m_frameHost->chromeClient().setHaveScrollEventHandlers(hasActiveHandlers);
|
| + m_frameHost->chromeClient().setHasScrollEventHandlers(hasActiveHandlers);
|
| break;
|
| case WheelEventBlocking:
|
| case WheelEventPassive:
|
| @@ -222,6 +216,12 @@ void EventHandlerRegistry::notifyHasHandlersChanged(EventHandlerClass handlerCla
|
| case TouchEventBlocking:
|
| case TouchEventPassive:
|
| m_frameHost->chromeClient().setEventListenerProperties(WebEventListenerClass::Touch, webEventListenerProperties(hasEventHandlers(TouchEventBlocking), hasEventHandlers(TouchEventPassive)));
|
| + updateHasTouchEventListeners();
|
| + break;
|
| + case TouchEndOrCancelEventBlocking:
|
| + case TouchEndOrCancelEventPassive:
|
| + m_frameHost->chromeClient().setEventListenerProperties(WebEventListenerClass::TouchEndOrCancel, webEventListenerProperties(hasEventHandlers(TouchEndOrCancelEventBlocking), hasEventHandlers(TouchEndOrCancelEventPassive)));
|
| + updateHasTouchEventListeners();
|
| break;
|
| #if ENABLE(ASSERT)
|
| case EventsForTesting:
|
| @@ -233,6 +233,11 @@ void EventHandlerRegistry::notifyHasHandlersChanged(EventHandlerClass handlerCla
|
| }
|
| }
|
|
|
| +void EventHandlerRegistry::updateHasTouchEventListeners()
|
| +{
|
| + m_frameHost->chromeClient().setHasTouchEventListeners(hasEventHandlers(TouchEventBlocking) || hasEventHandlers(TouchEventPassive) || hasEventHandlers(TouchEndOrCancelEventBlocking) || hasEventHandlers(TouchEndOrCancelEventPassive));
|
| +}
|
| +
|
| void EventHandlerRegistry::notifyDidAddOrRemoveEventHandlerTarget(EventHandlerClass handlerClass)
|
| {
|
| ScrollingCoordinator* scrollingCoordinator = m_frameHost->page().scrollingCoordinator();
|
|
|