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 |