| 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 15 matching lines...) Expand all Loading... |
| 26 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 * | 29 * |
| 30 */ | 30 */ |
| 31 | 31 |
| 32 #include "sky/engine/config.h" | 32 #include "sky/engine/config.h" |
| 33 #include "sky/engine/core/events/EventTarget.h" | 33 #include "sky/engine/core/events/EventTarget.h" |
| 34 | 34 |
| 35 #include "gen/sky/platform/RuntimeEnabledFeatures.h" | 35 #include "gen/sky/platform/RuntimeEnabledFeatures.h" |
| 36 #include "sky/engine/bindings/core/v8/ExceptionState.h" | 36 #include "sky/engine/bindings2/exception_state.h" |
| 37 #include "sky/engine/core/dom/Document.h" | 37 #include "sky/engine/core/dom/Document.h" |
| 38 #include "sky/engine/core/dom/ExceptionCode.h" | 38 #include "sky/engine/core/dom/ExceptionCode.h" |
| 39 #include "sky/engine/core/dom/ExecutionContext.h" | 39 #include "sky/engine/core/dom/ExecutionContext.h" |
| 40 #include "sky/engine/core/editing/Editor.h" | 40 #include "sky/engine/core/editing/Editor.h" |
| 41 #include "sky/engine/core/events/Event.h" | 41 #include "sky/engine/core/events/Event.h" |
| 42 #include "sky/engine/core/frame/LocalDOMWindow.h" | 42 #include "sky/engine/core/frame/LocalDOMWindow.h" |
| 43 #include "sky/engine/platform/EventDispatchForbiddenScope.h" | 43 #include "sky/engine/platform/EventDispatchForbiddenScope.h" |
| 44 #include "sky/engine/tonic/dart_gc_visitor.h" |
| 44 #include "sky/engine/wtf/StdLibExtras.h" | 45 #include "sky/engine/wtf/StdLibExtras.h" |
| 45 #include "sky/engine/wtf/Vector.h" | 46 #include "sky/engine/wtf/Vector.h" |
| 46 | 47 |
| 47 using namespace WTF; | 48 using namespace WTF; |
| 48 | 49 |
| 49 namespace blink { | 50 namespace blink { |
| 50 | 51 |
| 51 EventTargetData::EventTargetData() | 52 EventTargetData::EventTargetData() |
| 52 { | 53 { |
| 53 } | 54 } |
| 54 | 55 |
| 55 EventTargetData::~EventTargetData() | 56 EventTargetData::~EventTargetData() |
| 56 { | 57 { |
| 57 } | 58 } |
| 58 | 59 |
| 59 EventTarget::EventTarget() | 60 EventTarget::EventTarget() |
| 60 { | 61 { |
| 61 } | 62 } |
| 62 | 63 |
| 63 EventTarget::~EventTarget() | 64 EventTarget::~EventTarget() |
| 64 { | 65 { |
| 65 } | 66 } |
| 66 | 67 |
| 68 void EventTarget::AcceptDartGCVisitor(DartGCVisitor& visitor) const |
| 69 { |
| 70 if (!visitor.have_found_set()) |
| 71 visitor.AddToSetForRoot(this, dart_wrapper()); |
| 72 EventListenerIterator iterator(this); |
| 73 while (EventListener* listener = iterator.nextListener()) |
| 74 listener->AcceptDartGCVisitor(visitor); |
| 75 DartWrappable::AcceptDartGCVisitor(visitor); |
| 76 } |
| 77 |
| 67 Node* EventTarget::toNode() | 78 Node* EventTarget::toNode() |
| 68 { | 79 { |
| 69 return 0; | 80 return 0; |
| 70 } | 81 } |
| 71 | 82 |
| 72 LocalDOMWindow* EventTarget::toDOMWindow() | 83 LocalDOMWindow* EventTarget::toDOMWindow() |
| 73 { | 84 { |
| 74 return 0; | 85 return 0; |
| 75 } | 86 } |
| 76 | 87 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 if (indexOfRemovedListener <= firingIterator.iterator) | 128 if (indexOfRemovedListener <= firingIterator.iterator) |
| 118 --firingIterator.iterator; | 129 --firingIterator.iterator; |
| 119 } | 130 } |
| 120 | 131 |
| 121 return true; | 132 return true; |
| 122 } | 133 } |
| 123 | 134 |
| 124 bool EventTarget::dispatchEvent(PassRefPtr<Event> event, ExceptionState& excepti
onState) | 135 bool EventTarget::dispatchEvent(PassRefPtr<Event> event, ExceptionState& excepti
onState) |
| 125 { | 136 { |
| 126 if (!event) { | 137 if (!event) { |
| 127 exceptionState.throwDOMException(InvalidStateError, "The event provided
is null."); | 138 exceptionState.ThrowDOMException(InvalidStateError, "The event provided
is null."); |
| 128 return false; | 139 return false; |
| 129 } | 140 } |
| 130 if (event->type().isEmpty()) { | 141 if (event->type().isEmpty()) { |
| 131 exceptionState.throwDOMException(InvalidStateError, "The event provided
is uninitialized."); | 142 exceptionState.ThrowDOMException(InvalidStateError, "The event provided
is uninitialized."); |
| 132 return false; | 143 return false; |
| 133 } | 144 } |
| 134 if (event->isBeingDispatched()) { | 145 if (event->isBeingDispatched()) { |
| 135 exceptionState.throwDOMException(InvalidStateError, "The event is alread
y being dispatched."); | 146 exceptionState.ThrowDOMException(InvalidStateError, "The event is alread
y being dispatched."); |
| 136 return false; | 147 return false; |
| 137 } | 148 } |
| 138 | 149 |
| 139 if (!executionContext()) | 150 if (!executionContext()) |
| 140 return false; | 151 return false; |
| 141 | 152 |
| 142 return dispatchEvent(event); | 153 return dispatchEvent(event); |
| 143 } | 154 } |
| 144 | 155 |
| 145 bool EventTarget::dispatchEvent(PassRefPtr<Event> event) | 156 bool EventTarget::dispatchEvent(PassRefPtr<Event> event) |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 // they have one less listener to invoke. | 249 // they have one less listener to invoke. |
| 239 if (d->firingEventIterators) { | 250 if (d->firingEventIterators) { |
| 240 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 251 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
| 241 d->firingEventIterators->at(i).iterator = 0; | 252 d->firingEventIterators->at(i).iterator = 0; |
| 242 d->firingEventIterators->at(i).end = 0; | 253 d->firingEventIterators->at(i).end = 0; |
| 243 } | 254 } |
| 244 } | 255 } |
| 245 } | 256 } |
| 246 | 257 |
| 247 } // namespace blink | 258 } // namespace blink |
| OLD | NEW |