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 "config.h" | 5 #include "config.h" |
6 #include "core/frame/EventHandlerRegistry.h" | 6 #include "core/frame/EventHandlerRegistry.h" |
7 | 7 |
8 #include "core/events/ThreadLocalEventNames.h" | 8 #include "core/events/ThreadLocalEventNames.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 12 matching lines...) Expand all Loading... |
23 { | 23 { |
24 checkConsistency(); | 24 checkConsistency(); |
25 } | 25 } |
26 | 26 |
27 bool EventHandlerRegistry::eventTypeToClass(const AtomicString& eventType, Event
HandlerClass* result) | 27 bool EventHandlerRegistry::eventTypeToClass(const AtomicString& eventType, Event
HandlerClass* result) |
28 { | 28 { |
29 if (eventType == EventTypeNames::scroll) { | 29 if (eventType == EventTypeNames::scroll) { |
30 *result = ScrollEvent; | 30 *result = ScrollEvent; |
31 } else if (eventType == EventTypeNames::wheel || eventType == EventTypeNames
::mousewheel) { | 31 } else if (eventType == EventTypeNames::wheel || eventType == EventTypeNames
::mousewheel) { |
32 *result = WheelEvent; | 32 *result = WheelEvent; |
33 #if ASSERT_ENABLED | 33 #if ENABLE(ASSERT) |
34 } else if (eventType == EventTypeNames::load || eventType == EventTypeNames:
:mousemove || eventType == EventTypeNames::touchstart) { | 34 } else if (eventType == EventTypeNames::load || eventType == EventTypeNames:
:mousemove || eventType == EventTypeNames::touchstart) { |
35 *result = EventsForTesting; | 35 *result = EventsForTesting; |
36 #endif | 36 #endif |
37 } else { | 37 } else { |
38 return false; | 38 return false; |
39 } | 39 } |
40 return true; | 40 return true; |
41 } | 41 } |
42 | 42 |
43 const EventTargetSet* EventHandlerRegistry::eventHandlerTargets(EventHandlerClas
s handlerClass) const | 43 const EventTargetSet* EventHandlerRegistry::eventHandlerTargets(EventHandlerClas
s handlerClass) const |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 | 160 |
161 switch (handlerClass) { | 161 switch (handlerClass) { |
162 case ScrollEvent: | 162 case ScrollEvent: |
163 if (scrollingCoordinator) | 163 if (scrollingCoordinator) |
164 scrollingCoordinator->updateHaveScrollEventHandlers(); | 164 scrollingCoordinator->updateHaveScrollEventHandlers(); |
165 break; | 165 break; |
166 case WheelEvent: | 166 case WheelEvent: |
167 if (scrollingCoordinator) | 167 if (scrollingCoordinator) |
168 scrollingCoordinator->updateHaveWheelEventHandlers(); | 168 scrollingCoordinator->updateHaveWheelEventHandlers(); |
169 break; | 169 break; |
170 #if ASSERT_ENABLED | 170 #if ENABLE(ASSERT) |
171 case EventsForTesting: | 171 case EventsForTesting: |
172 break; | 172 break; |
173 #endif | 173 #endif |
174 default: | 174 default: |
175 ASSERT_NOT_REACHED(); | 175 ASSERT_NOT_REACHED(); |
176 break; | 176 break; |
177 } | 177 } |
178 } | 178 } |
179 | 179 |
180 void EventHandlerRegistry::trace(Visitor* visitor) | 180 void EventHandlerRegistry::trace(Visitor* visitor) |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 ASSERT_NOT_REACHED(); | 224 ASSERT_NOT_REACHED(); |
225 } | 225 } |
226 } | 226 } |
227 for (size_t i = 0; i < targetsToRemove.size(); ++i) | 227 for (size_t i = 0; i < targetsToRemove.size(); ++i) |
228 updateEventHandlerInternal(RemoveAll, handlerClass, targetsToRemove[
i]); | 228 updateEventHandlerInternal(RemoveAll, handlerClass, targetsToRemove[
i]); |
229 } | 229 } |
230 } | 230 } |
231 | 231 |
232 void EventHandlerRegistry::checkConsistency() const | 232 void EventHandlerRegistry::checkConsistency() const |
233 { | 233 { |
234 #if ASSERT_ENABLED | 234 #if ENABLE(ASSERT) |
235 for (size_t i = 0; i < EventHandlerClassCount; ++i) { | 235 for (size_t i = 0; i < EventHandlerClassCount; ++i) { |
236 EventHandlerClass handlerClass = static_cast<EventHandlerClass>(i); | 236 EventHandlerClass handlerClass = static_cast<EventHandlerClass>(i); |
237 const EventTargetSet* targets = &m_targets[handlerClass]; | 237 const EventTargetSet* targets = &m_targets[handlerClass]; |
238 for (EventTargetSet::const_iterator iter = targets->begin(); iter != tar
gets->end(); ++iter) { | 238 for (EventTargetSet::const_iterator iter = targets->begin(); iter != tar
gets->end(); ++iter) { |
239 if (Node* node = iter->key->toNode()) { | 239 if (Node* node = iter->key->toNode()) { |
240 // See the comment for |documentDetached| if either of these ass
ertions fails. | 240 // See the comment for |documentDetached| if either of these ass
ertions fails. |
241 ASSERT(node->document().frameHost()); | 241 ASSERT(node->document().frameHost()); |
242 ASSERT(node->document().frameHost() == &m_frameHost); | 242 ASSERT(node->document().frameHost() == &m_frameHost); |
243 } else if (LocalDOMWindow* window = iter->key->toDOMWindow()) { | 243 } else if (LocalDOMWindow* window = iter->key->toDOMWindow()) { |
244 // If any of these assertions fail, LocalDOMWindow failed to unr
egister its handlers | 244 // If any of these assertions fail, LocalDOMWindow failed to unr
egister its handlers |
245 // properly. | 245 // properly. |
246 ASSERT(window->frame()); | 246 ASSERT(window->frame()); |
247 ASSERT(window->frame()->host()); | 247 ASSERT(window->frame()->host()); |
248 ASSERT(window->frame()->host() == &m_frameHost); | 248 ASSERT(window->frame()->host() == &m_frameHost); |
249 } | 249 } |
250 } | 250 } |
251 } | 251 } |
252 #endif // ASSERT_ENABLED | 252 #endif // ENABLE(ASSERT) |
253 } | 253 } |
254 | 254 |
255 } // namespace WebCore | 255 } // namespace WebCore |
OLD | NEW |