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 |