Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: Source/core/svg/SVGElementInstance.cpp

Issue 257033002: Do not implement EventTarget on SVGElementInstance (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Try to fix TestExpectations Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/svg/SVGElementInstance.h ('k') | Source/core/svg/SVGElementInstance.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 3 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
4 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 17 matching lines...) Expand all
28 #include "core/events/EventListener.h" 28 #include "core/events/EventListener.h"
29 #include "core/svg/SVGElement.h" 29 #include "core/svg/SVGElement.h"
30 #include "core/svg/SVGUseElement.h" 30 #include "core/svg/SVGUseElement.h"
31 31
32 #include "wtf/RefCountedLeakCounter.h" 32 #include "wtf/RefCountedLeakCounter.h"
33 33
34 namespace WebCore { 34 namespace WebCore {
35 35
36 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, instanceCounter, ("WebCoreS VGElementInstance")); 36 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, instanceCounter, ("WebCoreS VGElementInstance"));
37 37
38 // EventTarget API
39 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), abort);
40 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), blur);
41 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), change);
42 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), click);
43 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), contextmenu);
44 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dblclick);
45 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), error);
46 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), focus);
47 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), input);
48 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), keydown);
49 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), keypress);
50 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), keyup);
51 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), load);
52 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mousedown);
53 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mouseenter);
54 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mouseleave);
55 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mousemove);
56 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mouseout);
57 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mouseover);
58 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mouseup);
59 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), mousewheel);
60 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), wheel);
61 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), beforecut);
62 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), cut);
63 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), beforecopy);
64 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), copy);
65 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), beforepaste);
66 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), paste);
67 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dragenter);
68 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dragover);
69 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dragleave);
70 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), drop);
71 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dragstart);
72 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), drag);
73 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), dragend);
74 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), reset);
75 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), resize);
76 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), scroll);
77 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), search);
78 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), select);
79 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), selectstart);
80 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), submit);
81 DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElem ent(), unload);
82
83 PassRefPtrWillBeRawPtr<SVGElementInstance> SVGElementInstance::create(SVGUseElem ent* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtrWillBeR awPtr<SVGElement> originalElement) 38 PassRefPtrWillBeRawPtr<SVGElementInstance> SVGElementInstance::create(SVGUseElem ent* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtrWillBeR awPtr<SVGElement> originalElement)
84 { 39 {
85 return adoptRefWillBeRefCountedGarbageCollected(new SVGElementInstance(corre spondingUseElement, directUseElement, originalElement)); 40 return adoptRefWillBeRefCountedGarbageCollected(new SVGElementInstance(corre spondingUseElement, directUseElement, originalElement));
86 } 41 }
87 42
88 SVGElementInstance::SVGElementInstance(SVGUseElement* correspondingUseElement, S VGUseElement* directUseElement, PassRefPtrWillBeRawPtr<SVGElement> originalEleme nt) 43 SVGElementInstance::SVGElementInstance(SVGUseElement* correspondingUseElement, S VGUseElement* directUseElement, PassRefPtrWillBeRawPtr<SVGElement> originalEleme nt)
89 : m_parentInstance(nullptr) 44 : m_parentInstance(nullptr)
90 , m_correspondingUseElement(correspondingUseElement) 45 , m_correspondingUseElement(correspondingUseElement)
91 , m_directUseElement(directUseElement) 46 , m_directUseElement(directUseElement)
92 , m_element(originalElement) 47 , m_element(originalElement)
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 // Register as instance for passed element. 113 // Register as instance for passed element.
159 m_element->mapInstanceToElement(shadowTreeElement()); 114 m_element->mapInstanceToElement(shadowTreeElement());
160 115
161 } 116 }
162 117
163 void SVGElementInstance::appendChild(PassRefPtrWillBeRawPtr<SVGElementInstance> child) 118 void SVGElementInstance::appendChild(PassRefPtrWillBeRawPtr<SVGElementInstance> child)
164 { 119 {
165 appendChildToContainer<SVGElementInstance, SVGElementInstance>(*child, *this ); 120 appendChildToContainer<SVGElementInstance, SVGElementInstance>(*child, *this );
166 } 121 }
167 122
168 const AtomicString& SVGElementInstance::interfaceName() const
169 {
170 return EventTargetNames::SVGElementInstance;
171 }
172
173 ExecutionContext* SVGElementInstance::executionContext() const
174 {
175 return &m_element->document();
176 }
177
178 bool SVGElementInstance::addEventListener(const AtomicString& eventType, PassRef Ptr<EventListener> listener, bool useCapture)
179 {
180 return m_element->addEventListener(eventType, listener, useCapture);
181 }
182
183 bool SVGElementInstance::removeEventListener(const AtomicString& eventType, Even tListener* listener, bool useCapture)
184 {
185 return m_element->removeEventListener(eventType, listener, useCapture);
186 }
187
188 void SVGElementInstance::removeAllEventListeners()
189 {
190 m_element->removeAllEventListeners();
191 }
192
193 Node* SVGElementInstance::toNode()
194 {
195 return shadowTreeElement();
196 }
197
198 Document* SVGElementInstance::ownerDocument() const
199 {
200 return m_element ? m_element->ownerDocument() : 0;
201 }
202
203 bool SVGElementInstance::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
204 {
205 SVGElement* element = shadowTreeElement();
206 if (!element)
207 return false;
208
209 return element->dispatchEvent(event);
210 }
211
212 EventTargetData* SVGElementInstance::eventTargetData()
213 {
214 // Since no event listeners are added to an SVGElementInstance, we don't hav e eventTargetData.
215 return 0;
216 }
217
218 EventTargetData& SVGElementInstance::ensureEventTargetData()
219 {
220 // EventTarget would use these methods if we were actually using its add/rem oveEventListener logic.
221 // As we're forwarding those calls to the correspondingElement(), no one sho uld ever call this function.
222 ASSERT_NOT_REACHED();
223 return *eventTargetData();
224 }
225
226 void SVGElementInstance::trace(Visitor* visitor) 123 void SVGElementInstance::trace(Visitor* visitor)
227 { 124 {
228 visitor->trace(m_parentInstance); 125 visitor->trace(m_parentInstance);
229 visitor->trace(m_correspondingUseElement); 126 visitor->trace(m_correspondingUseElement);
230 visitor->trace(m_directUseElement); 127 visitor->trace(m_directUseElement);
231 visitor->trace(m_element); 128 visitor->trace(m_element);
232 visitor->trace(m_shadowTreeElement); 129 visitor->trace(m_shadowTreeElement);
233 visitor->trace(m_previousSibling); 130 visitor->trace(m_previousSibling);
234 visitor->trace(m_nextSibling); 131 visitor->trace(m_nextSibling);
235 visitor->trace(m_firstChild); 132 visitor->trace(m_firstChild);
236 visitor->trace(m_lastChild); 133 visitor->trace(m_lastChild);
237 EventTarget::trace(visitor);
238 } 134 }
239 135
240 } 136 }
OLDNEW
« no previous file with comments | « Source/core/svg/SVGElementInstance.h ('k') | Source/core/svg/SVGElementInstance.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698