| 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 argv.append(toNode() ? toNode()->nodeName() : interfaceName()); | 101 argv.append(toNode() ? toNode()->nodeName() : interfaceName()); |
| 102 argv.append(eventType); | 102 argv.append(eventType); |
| 103 activityLogger->logEvent("blinkAddEventListener", argv.size(), argv.data
()); | 103 activityLogger->logEvent("blinkAddEventListener", argv.size(), argv.data
()); |
| 104 } | 104 } |
| 105 | 105 |
| 106 return ensureEventTargetData().eventListenerMap.add(eventType, listener, use
Capture); | 106 return ensureEventTargetData().eventListenerMap.add(eventType, listener, use
Capture); |
| 107 } | 107 } |
| 108 | 108 |
| 109 bool EventTarget::removeEventListener(const AtomicString& eventType, PassRefPtr<
EventListener> listener, bool useCapture) | 109 bool EventTarget::removeEventListener(const AtomicString& eventType, PassRefPtr<
EventListener> listener, bool useCapture) |
| 110 { | 110 { |
| 111 // FIXME: listener null check should throw TypeError (and be done in |
| 112 // generated bindings), but breaks legacy content. http://crbug.com/249598 |
| 113 if (!listener) |
| 114 return false; |
| 115 |
| 111 EventTargetData* d = eventTargetData(); | 116 EventTargetData* d = eventTargetData(); |
| 112 if (!d) | 117 if (!d) |
| 113 return false; | 118 return false; |
| 114 | 119 |
| 115 size_t indexOfRemovedListener; | 120 size_t indexOfRemovedListener; |
| 116 | 121 |
| 117 if (!d->eventListenerMap.remove(eventType, listener.get(), useCapture, index
OfRemovedListener)) | 122 if (!d->eventListenerMap.remove(eventType, listener.get(), useCapture, index
OfRemovedListener)) |
| 118 return false; | 123 return false; |
| 119 | 124 |
| 120 // Notify firing events planning to invoke the listener at 'index' that | 125 // Notify firing events planning to invoke the listener at 'index' that |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 // they have one less listener to invoke. | 387 // they have one less listener to invoke. |
| 383 if (d->firingEventIterators) { | 388 if (d->firingEventIterators) { |
| 384 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 389 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
| 385 d->firingEventIterators->at(i).iterator = 0; | 390 d->firingEventIterators->at(i).iterator = 0; |
| 386 d->firingEventIterators->at(i).end = 0; | 391 d->firingEventIterators->at(i).end = 0; |
| 387 } | 392 } |
| 388 } | 393 } |
| 389 } | 394 } |
| 390 | 395 |
| 391 } // namespace blink | 396 } // namespace blink |
| OLD | NEW |