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 |