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

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

Issue 23886003: Have HTMLElements / SVGElements constructors take a Document reference in argument (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another Android build fix Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/svg/SVGTRefElement.h ('k') | Source/core/svg/SVGTSpanElement.h » ('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) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2011. 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 namespace WebCore { 44 namespace WebCore {
45 45
46 // Animated property definitions 46 // Animated property definitions
47 DEFINE_ANIMATED_STRING(SVGTRefElement, XLinkNames::hrefAttr, Href, href) 47 DEFINE_ANIMATED_STRING(SVGTRefElement, XLinkNames::hrefAttr, Href, href)
48 48
49 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGTRefElement) 49 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGTRefElement)
50 REGISTER_LOCAL_ANIMATED_PROPERTY(href) 50 REGISTER_LOCAL_ANIMATED_PROPERTY(href)
51 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTextPositioningElement) 51 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTextPositioningElement)
52 END_REGISTER_ANIMATED_PROPERTIES 52 END_REGISTER_ANIMATED_PROPERTIES
53 53
54 PassRefPtr<SVGTRefElement> SVGTRefElement::create(const QualifiedName& tagName, Document* document) 54 PassRefPtr<SVGTRefElement> SVGTRefElement::create(const QualifiedName& tagName, Document& document)
55 { 55 {
56 RefPtr<SVGTRefElement> element = adoptRef(new SVGTRefElement(tagName, docume nt)); 56 RefPtr<SVGTRefElement> element = adoptRef(new SVGTRefElement(tagName, docume nt));
57 element->ensureUserAgentShadowRoot(); 57 element->ensureUserAgentShadowRoot();
58 return element.release(); 58 return element.release();
59 } 59 }
60 60
61 class SVGTRefTargetEventListener : public EventListener { 61 class SVGTRefTargetEventListener : public EventListener {
62 public: 62 public:
63 static PassRefPtr<SVGTRefTargetEventListener> create(SVGTRefElement* trefEle ment) 63 static PassRefPtr<SVGTRefTargetEventListener> create(SVGTRefElement* trefEle ment)
64 { 64 {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 void SVGTRefTargetEventListener::handleEvent(ScriptExecutionContext*, Event* eve nt) 124 void SVGTRefTargetEventListener::handleEvent(ScriptExecutionContext*, Event* eve nt)
125 { 125 {
126 ASSERT(isAttached()); 126 ASSERT(isAttached());
127 127
128 if (event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement ! = event->target()) 128 if (event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement ! = event->target())
129 m_trefElement->updateReferencedText(m_target.get()); 129 m_trefElement->updateReferencedText(m_target.get());
130 else if (event->type() == eventNames().DOMNodeRemovedFromDocumentEvent) 130 else if (event->type() == eventNames().DOMNodeRemovedFromDocumentEvent)
131 m_trefElement->detachTarget(); 131 m_trefElement->detachTarget();
132 } 132 }
133 133
134 inline SVGTRefElement::SVGTRefElement(const QualifiedName& tagName, Document* do cument) 134 inline SVGTRefElement::SVGTRefElement(const QualifiedName& tagName, Document& do cument)
135 : SVGTextPositioningElement(tagName, document) 135 : SVGTextPositioningElement(tagName, document)
136 , m_targetListener(SVGTRefTargetEventListener::create(this)) 136 , m_targetListener(SVGTRefTargetEventListener::create(this))
137 { 137 {
138 ASSERT(hasTagName(SVGNames::trefTag)); 138 ASSERT(hasTagName(SVGNames::trefTag));
139 ScriptWrappable::init(this); 139 ScriptWrappable::init(this);
140 registerAnimatedPropertiesForSVGTRefElement(); 140 registerAnimatedPropertiesForSVGTRefElement();
141 141
142 UseCounter::count(document, UseCounter::SVGTRefElement); 142 UseCounter::count(&document, UseCounter::SVGTRefElement);
143 } 143 }
144 144
145 SVGTRefElement::~SVGTRefElement() 145 SVGTRefElement::~SVGTRefElement()
146 { 146 {
147 m_targetListener->detach(); 147 m_targetListener->detach();
148 } 148 }
149 149
150 void SVGTRefElement::updateReferencedText(Element* target) 150 void SVGTRefElement::updateReferencedText(Element* target)
151 { 151 {
152 if (target) 152 if (target)
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 } 276 }
277 277
278 void SVGTRefElement::removedFrom(ContainerNode* rootParent) 278 void SVGTRefElement::removedFrom(ContainerNode* rootParent)
279 { 279 {
280 SVGElement::removedFrom(rootParent); 280 SVGElement::removedFrom(rootParent);
281 if (rootParent->inDocument()) 281 if (rootParent->inDocument())
282 m_targetListener->detach(); 282 m_targetListener->detach();
283 } 283 }
284 284
285 } 285 }
OLDNEW
« no previous file with comments | « Source/core/svg/SVGTRefElement.h ('k') | Source/core/svg/SVGTSpanElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698