OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
8 * | 8 * |
9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
10 * modification, are permitted provided that the following conditions | 10 * modification, are permitted provided that the following conditions |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 event->setEventPhase(Event::AT_TARGET); | 169 event->setEventPhase(Event::AT_TARGET); |
170 bool defaultPrevented = fireEventListeners(event.get()); | 170 bool defaultPrevented = fireEventListeners(event.get()); |
171 event->setEventPhase(0); | 171 event->setEventPhase(0); |
172 return defaultPrevented; | 172 return defaultPrevented; |
173 } | 173 } |
174 | 174 |
175 void EventTarget::uncaughtExceptionInEventHandler() | 175 void EventTarget::uncaughtExceptionInEventHandler() |
176 { | 176 { |
177 } | 177 } |
178 | 178 |
179 static AtomicString prefixedType(const Event* event) | 179 static AtomicString legacyType(const Event* event) |
180 { | 180 { |
181 if (event->type() == eventNames().transitionendEvent) | 181 if (event->type() == eventNames().transitionendEvent) |
182 return eventNames().webkitTransitionEndEvent; | 182 return eventNames().webkitTransitionEndEvent; |
183 | 183 |
| 184 if (event->type() == eventNames().wheelEvent) |
| 185 return eventNames().mousewheelEvent; |
| 186 |
184 return emptyString(); | 187 return emptyString(); |
185 } | 188 } |
186 | 189 |
187 bool EventTarget::fireEventListeners(Event* event) | 190 bool EventTarget::fireEventListeners(Event* event) |
188 { | 191 { |
189 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); | 192 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); |
190 ASSERT(event && !event->type().isEmpty()); | 193 ASSERT(event && !event->type().isEmpty()); |
191 | 194 |
192 EventTargetData* d = eventTargetData(); | 195 EventTargetData* d = eventTargetData(); |
193 if (!d) | 196 if (!d) |
194 return true; | 197 return true; |
195 | 198 |
196 EventListenerVector* listenerPrefixedVector = 0; | 199 EventListenerVector* listenerPrefixedVector = 0; |
197 AtomicString prefixedTypeName = prefixedType(event); | 200 AtomicString prefixedTypeName = legacyType(event); |
198 if (!prefixedTypeName.isEmpty()) | 201 if (!prefixedTypeName.isEmpty()) |
199 listenerPrefixedVector = d->eventListenerMap.find(prefixedTypeName); | 202 listenerPrefixedVector = d->eventListenerMap.find(prefixedTypeName); |
200 | 203 |
201 EventListenerVector* listenerUnprefixedVector = d->eventListenerMap.find(eve
nt->type()); | 204 EventListenerVector* listenerUnprefixedVector = d->eventListenerMap.find(eve
nt->type()); |
202 | 205 |
203 if (listenerUnprefixedVector) | 206 if (listenerUnprefixedVector) |
204 fireEventListeners(event, d, *listenerUnprefixedVector); | 207 fireEventListeners(event, d, *listenerUnprefixedVector); |
205 else if (listenerPrefixedVector) { | 208 else if (listenerPrefixedVector) { |
206 AtomicString unprefixedTypeName = event->type(); | 209 AtomicString unprefixedTypeName = event->type(); |
207 event->setType(prefixedTypeName); | 210 event->setType(prefixedTypeName); |
208 fireEventListeners(event, d, *listenerPrefixedVector); | 211 fireEventListeners(event, d, *listenerPrefixedVector); |
209 event->setType(unprefixedTypeName); | 212 event->setType(unprefixedTypeName); |
210 } | 213 } |
211 | 214 |
212 if (!prefixedTypeName.isEmpty()) { | 215 if (prefixedTypeName == eventNames().webkitTransitionEndEvent) { |
213 if (DOMWindow* executingWindow = this->executingWindow()) { | 216 if (DOMWindow* executingWindow = this->executingWindow()) { |
214 if (listenerPrefixedVector) { | 217 if (listenerPrefixedVector) { |
215 if (listenerUnprefixedVector) | 218 if (listenerUnprefixedVector) |
216 UseCounter::count(executingWindow, UseCounter::PrefixedAndUn
prefixedTransitionEndEvent); | 219 UseCounter::count(executingWindow, UseCounter::PrefixedAndUn
prefixedTransitionEndEvent); |
217 else | 220 else |
218 UseCounter::count(executingWindow, UseCounter::PrefixedTrans
itionEndEvent); | 221 UseCounter::count(executingWindow, UseCounter::PrefixedTrans
itionEndEvent); |
219 } else if (listenerUnprefixedVector) { | 222 } else if (listenerUnprefixedVector) { |
220 UseCounter::count(executingWindow, UseCounter::UnprefixedTransit
ionEndEvent); | 223 UseCounter::count(executingWindow, UseCounter::UnprefixedTransit
ionEndEvent); |
221 } | 224 } |
222 } | 225 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 // they have one less listener to invoke. | 305 // they have one less listener to invoke. |
303 if (d->firingEventIterators) { | 306 if (d->firingEventIterators) { |
304 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 307 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
305 d->firingEventIterators->at(i).iterator = 0; | 308 d->firingEventIterators->at(i).iterator = 0; |
306 d->firingEventIterators->at(i).end = 0; | 309 d->firingEventIterators->at(i).end = 0; |
307 } | 310 } |
308 } | 311 } |
309 } | 312 } |
310 | 313 |
311 } // namespace WebCore | 314 } // namespace WebCore |
OLD | NEW |