| 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 } | 185 } |
| 186 | 186 |
| 187 if (!executionContext()) | 187 if (!executionContext()) |
| 188 return false; | 188 return false; |
| 189 | 189 |
| 190 return dispatchEvent(event); | 190 return dispatchEvent(event); |
| 191 } | 191 } |
| 192 | 192 |
| 193 bool EventTarget::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event) | 193 bool EventTarget::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event) |
| 194 { | 194 { |
| 195 fprintf(stderr, "%s interface = %s event = %s\n", __PRETTY_FUNCTION__, inter
faceName().utf8().data(), event->type().utf8().data()); |
| 195 event->setTarget(this); | 196 event->setTarget(this); |
| 196 event->setCurrentTarget(this); | 197 event->setCurrentTarget(this); |
| 197 event->setEventPhase(Event::AT_TARGET); | 198 event->setEventPhase(Event::AT_TARGET); |
| 198 bool defaultPrevented = fireEventListeners(event.get()); | 199 bool defaultPrevented = fireEventListeners(event.get()); |
| 199 event->setEventPhase(0); | 200 event->setEventPhase(0); |
| 200 return defaultPrevented; | 201 return defaultPrevented; |
| 201 } | 202 } |
| 202 | 203 |
| 203 void EventTarget::uncaughtExceptionInEventHandler() | 204 void EventTarget::uncaughtExceptionInEventHandler() |
| 204 { | 205 { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 else | 257 else |
| 257 UseCounter::count(executingWindow->document(), prefixedFeature); | 258 UseCounter::count(executingWindow->document(), prefixedFeature); |
| 258 } else if (listenersVector) { | 259 } else if (listenersVector) { |
| 259 UseCounter::count(executingWindow->document(), unprefixedFeature); | 260 UseCounter::count(executingWindow->document(), unprefixedFeature); |
| 260 } | 261 } |
| 261 } | 262 } |
| 262 } | 263 } |
| 263 | 264 |
| 264 bool EventTarget::fireEventListeners(Event* event) | 265 bool EventTarget::fireEventListeners(Event* event) |
| 265 { | 266 { |
| 267 fprintf(stderr, "%s interface = %s event = %s\n", __PRETTY_FUNCTION__, inter
faceName().utf8().data(), event->type().utf8().data()); |
| 266 ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden()); | 268 ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden()); |
| 267 ASSERT(event && !event->type().isEmpty()); | 269 ASSERT(event && !event->type().isEmpty()); |
| 268 | 270 |
| 269 EventTargetData* d = eventTargetData(); | 271 EventTargetData* d = eventTargetData(); |
| 270 if (!d) | 272 if (!d) |
| 271 return true; | 273 return true; |
| 272 | 274 |
| 273 EventListenerVector* legacyListenersVector = 0; | 275 EventListenerVector* legacyListenersVector = 0; |
| 274 AtomicString legacyTypeName = legacyType(event); | 276 AtomicString legacyTypeName = legacyType(event); |
| 275 if (!legacyTypeName.isEmpty()) | 277 if (!legacyTypeName.isEmpty()) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 293 event->setType(unprefixedTypeName); | 295 event->setType(unprefixedTypeName); |
| 294 } | 296 } |
| 295 | 297 |
| 296 Editor::countEvent(executionContext(), event); | 298 Editor::countEvent(executionContext(), event); |
| 297 countLegacyEvents(legacyTypeName, listenersVector, legacyListenersVector); | 299 countLegacyEvents(legacyTypeName, listenersVector, legacyListenersVector); |
| 298 return !event->defaultPrevented(); | 300 return !event->defaultPrevented(); |
| 299 } | 301 } |
| 300 | 302 |
| 301 void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventList
enerVector& entry) | 303 void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventList
enerVector& entry) |
| 302 { | 304 { |
| 305 fprintf(stderr, "%s interface = %s event = %s\n", __PRETTY_FUNCTION__, inter
faceName().utf8().data(), event->type().utf8().data()); |
| 303 RefPtrWillBeRawPtr<EventTarget> protect(this); | 306 RefPtrWillBeRawPtr<EventTarget> protect(this); |
| 304 | 307 |
| 305 // Fire all listeners registered for this event. Don't fire listeners remove
d | 308 // Fire all listeners registered for this event. Don't fire listeners remove
d |
| 306 // during event dispatch. Also, don't fire event listeners added during even
t | 309 // during event dispatch. Also, don't fire event listeners added during even
t |
| 307 // dispatch. Conveniently, all new event listeners will be added after or at | 310 // dispatch. Conveniently, all new event listeners will be added after or at |
| 308 // index |size|, so iterating up to (but not including) |size| naturally exc
ludes | 311 // index |size|, so iterating up to (but not including) |size| naturally exc
ludes |
| 309 // new event listeners. | 312 // new event listeners. |
| 310 | 313 |
| 311 if (event->type() == EventTypeNames::beforeunload) { | 314 if (event->type() == EventTypeNames::beforeunload) { |
| 312 if (LocalDOMWindow* executingWindow = this->executingWindow()) { | 315 if (LocalDOMWindow* executingWindow = this->executingWindow()) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 324 if (LocalDOMWindow* executingWindow = this->executingWindow()) | 327 if (LocalDOMWindow* executingWindow = this->executingWindow()) |
| 325 UseCounter::count(executingWindow->document(), UseCounter::FocusInOu
tEvent); | 328 UseCounter::count(executingWindow->document(), UseCounter::FocusInOu
tEvent); |
| 326 } | 329 } |
| 327 | 330 |
| 328 size_t i = 0; | 331 size_t i = 0; |
| 329 size_t size = entry.size(); | 332 size_t size = entry.size(); |
| 330 if (!d->firingEventIterators) | 333 if (!d->firingEventIterators) |
| 331 d->firingEventIterators = adoptPtr(new FiringEventIteratorVector); | 334 d->firingEventIterators = adoptPtr(new FiringEventIteratorVector); |
| 332 d->firingEventIterators->append(FiringEventIterator(event->type(), i, size))
; | 335 d->firingEventIterators->append(FiringEventIterator(event->type(), i, size))
; |
| 333 for ( ; i < size; ++i) { | 336 for ( ; i < size; ++i) { |
| 337 fprintf(stderr, "%s interface = %s event = %s i = %zu\n", __PRETTY_FUNCT
ION__, interfaceName().utf8().data(), event->type().utf8().data(), i); |
| 334 RegisteredEventListener& registeredListener = entry[i]; | 338 RegisteredEventListener& registeredListener = entry[i]; |
| 335 if (event->eventPhase() == Event::CAPTURING_PHASE && !registeredListener
.useCapture) | 339 if (event->eventPhase() == Event::CAPTURING_PHASE && !registeredListener
.useCapture) |
| 336 continue; | 340 continue; |
| 337 if (event->eventPhase() == Event::BUBBLING_PHASE && registeredListener.u
seCapture) | 341 if (event->eventPhase() == Event::BUBBLING_PHASE && registeredListener.u
seCapture) |
| 338 continue; | 342 continue; |
| 339 | 343 |
| 340 // If stopImmediatePropagation has been called, we just break out immedi
ately, without | 344 // If stopImmediatePropagation has been called, we just break out immedi
ately, without |
| 341 // handling any more events on this target. | 345 // handling any more events on this target. |
| 342 if (event->immediatePropagationStopped()) | 346 if (event->immediatePropagationStopped()) |
| 343 break; | 347 break; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 // they have one less listener to invoke. | 391 // they have one less listener to invoke. |
| 388 if (d->firingEventIterators) { | 392 if (d->firingEventIterators) { |
| 389 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 393 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
| 390 d->firingEventIterators->at(i).iterator = 0; | 394 d->firingEventIterators->at(i).iterator = 0; |
| 391 d->firingEventIterators->at(i).end = 0; | 395 d->firingEventIterators->at(i).end = 0; |
| 392 } | 396 } |
| 393 } | 397 } |
| 394 } | 398 } |
| 395 | 399 |
| 396 } // namespace blink | 400 } // namespace blink |
| OLD | NEW |