| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/frame/EventHandlerRegistry.h" | 5 #include "core/frame/EventHandlerRegistry.h" |
| 6 | 6 |
| 7 #include "core/events/EventListenerOptions.h" | 7 #include "core/events/EventListenerOptions.h" |
| 8 #include "core/events/EventUtil.h" | 8 #include "core/events/EventUtil.h" |
| 9 #include "core/frame/LocalDOMWindow.h" | 9 #include "core/frame/LocalDOMWindow.h" |
| 10 #include "core/frame/LocalFrame.h" | 10 #include "core/frame/LocalFrame.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 : TouchEndOrCancelEventBlocking; | 52 : TouchEndOrCancelEventBlocking; |
| 53 } else if (eventType == EventTypeNames::touchstart || | 53 } else if (eventType == EventTypeNames::touchstart || |
| 54 eventType == EventTypeNames::touchmove) { | 54 eventType == EventTypeNames::touchmove) { |
| 55 *result = options.passive() ? TouchStartOrMoveEventPassive | 55 *result = options.passive() ? TouchStartOrMoveEventPassive |
| 56 : TouchStartOrMoveEventBlocking; | 56 : TouchStartOrMoveEventBlocking; |
| 57 } else if (EventUtil::isPointerEventType(eventType)) { | 57 } else if (EventUtil::isPointerEventType(eventType)) { |
| 58 // The EventHandlerClass is TouchStartOrMoveEventPassive since | 58 // The EventHandlerClass is TouchStartOrMoveEventPassive since |
| 59 // the pointer events never block scrolling and the compositor | 59 // the pointer events never block scrolling and the compositor |
| 60 // only needs to know about the touch listeners. | 60 // only needs to know about the touch listeners. |
| 61 *result = TouchStartOrMoveEventPassive; | 61 *result = TouchStartOrMoveEventPassive; |
| 62 #if ENABLE(ASSERT) | 62 #if DCHECK_IS_ON() |
| 63 } else if (eventType == EventTypeNames::load || | 63 } else if (eventType == EventTypeNames::load || |
| 64 eventType == EventTypeNames::mousemove || | 64 eventType == EventTypeNames::mousemove || |
| 65 eventType == EventTypeNames::touchstart) { | 65 eventType == EventTypeNames::touchstart) { |
| 66 *result = EventsForTesting; | 66 *result = EventsForTesting; |
| 67 #endif | 67 #endif |
| 68 } else { | 68 } else { |
| 69 return false; | 69 return false; |
| 70 } | 70 } |
| 71 return true; | 71 return true; |
| 72 } | 72 } |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 hasEventHandlers(TouchStartOrMoveEventPassive))); | 217 hasEventHandlers(TouchStartOrMoveEventPassive))); |
| 218 break; | 218 break; |
| 219 case TouchEndOrCancelEventBlocking: | 219 case TouchEndOrCancelEventBlocking: |
| 220 case TouchEndOrCancelEventPassive: | 220 case TouchEndOrCancelEventPassive: |
| 221 m_frameHost->chromeClient().setEventListenerProperties( | 221 m_frameHost->chromeClient().setEventListenerProperties( |
| 222 WebEventListenerClass::TouchEndOrCancel, | 222 WebEventListenerClass::TouchEndOrCancel, |
| 223 webEventListenerProperties( | 223 webEventListenerProperties( |
| 224 hasEventHandlers(TouchEndOrCancelEventBlocking), | 224 hasEventHandlers(TouchEndOrCancelEventBlocking), |
| 225 hasEventHandlers(TouchEndOrCancelEventPassive))); | 225 hasEventHandlers(TouchEndOrCancelEventPassive))); |
| 226 break; | 226 break; |
| 227 #if ENABLE(ASSERT) | 227 #if DCHECK_IS_ON() |
| 228 case EventsForTesting: | 228 case EventsForTesting: |
| 229 break; | 229 break; |
| 230 #endif | 230 #endif |
| 231 default: | 231 default: |
| 232 ASSERT_NOT_REACHED(); | 232 ASSERT_NOT_REACHED(); |
| 233 break; | 233 break; |
| 234 } | 234 } |
| 235 } | 235 } |
| 236 | 236 |
| 237 void EventHandlerRegistry::notifyDidAddOrRemoveEventHandlerTarget( | 237 void EventHandlerRegistry::notifyDidAddOrRemoveEventHandlerTarget( |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 } else { | 290 } else { |
| 291 ASSERT_NOT_REACHED(); | 291 ASSERT_NOT_REACHED(); |
| 292 } | 292 } |
| 293 } | 293 } |
| 294 for (size_t i = 0; i < targetsToRemove.size(); ++i) | 294 for (size_t i = 0; i < targetsToRemove.size(); ++i) |
| 295 updateEventHandlerInternal(RemoveAll, handlerClass, targetsToRemove[i]); | 295 updateEventHandlerInternal(RemoveAll, handlerClass, targetsToRemove[i]); |
| 296 } | 296 } |
| 297 } | 297 } |
| 298 | 298 |
| 299 void EventHandlerRegistry::checkConsistency() const { | 299 void EventHandlerRegistry::checkConsistency() const { |
| 300 #if ENABLE(ASSERT) | 300 #if DCHECK_IS_ON() |
| 301 for (size_t i = 0; i < EventHandlerClassCount; ++i) { | 301 for (size_t i = 0; i < EventHandlerClassCount; ++i) { |
| 302 EventHandlerClass handlerClass = static_cast<EventHandlerClass>(i); | 302 EventHandlerClass handlerClass = static_cast<EventHandlerClass>(i); |
| 303 const EventTargetSet* targets = &m_targets[handlerClass]; | 303 const EventTargetSet* targets = &m_targets[handlerClass]; |
| 304 for (const auto& eventTarget : *targets) { | 304 for (const auto& eventTarget : *targets) { |
| 305 if (Node* node = eventTarget.key->toNode()) { | 305 if (Node* node = eventTarget.key->toNode()) { |
| 306 // See the comment for |documentDetached| if either of these assertions | 306 // See the comment for |documentDetached| if either of these assertions |
| 307 // fails. | 307 // fails. |
| 308 ASSERT(node->document().frameHost()); | 308 ASSERT(node->document().frameHost()); |
| 309 ASSERT(node->document().frameHost() == m_frameHost); | 309 ASSERT(node->document().frameHost() == m_frameHost); |
| 310 } else if (LocalDOMWindow* window = eventTarget.key->toLocalDOMWindow()) { | 310 } else if (LocalDOMWindow* window = eventTarget.key->toLocalDOMWindow()) { |
| 311 // If any of these assertions fail, LocalDOMWindow failed to unregister | 311 // If any of these assertions fail, LocalDOMWindow failed to unregister |
| 312 // its handlers properly. | 312 // its handlers properly. |
| 313 ASSERT(window->frame()); | 313 ASSERT(window->frame()); |
| 314 ASSERT(window->frame()->host()); | 314 ASSERT(window->frame()->host()); |
| 315 ASSERT(window->frame()->host() == m_frameHost); | 315 ASSERT(window->frame()->host() == m_frameHost); |
| 316 } | 316 } |
| 317 } | 317 } |
| 318 } | 318 } |
| 319 #endif // ENABLE(ASSERT) | 319 #endif // DCHECK_IS_ON() |
| 320 } | 320 } |
| 321 | 321 |
| 322 } // namespace blink | 322 } // namespace blink |
| OLD | NEW |