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

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

Issue 169103002: Drop [LegacyImplementedInBaseClass] from SVGURIReference IDL interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
4 * Copyright (C) 2010 Dirk Schulze <krit@webkit.org> 4 * Copyright (C) 2010 Dirk Schulze <krit@webkit.org>
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 24 matching lines...) Expand all
35 namespace WebCore { 35 namespace WebCore {
36 36
37 // Animated property definitions 37 // Animated property definitions
38 38
39 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEImageElement) 39 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEImageElement)
40 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes) 40 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
41 END_REGISTER_ANIMATED_PROPERTIES 41 END_REGISTER_ANIMATED_PROPERTIES
42 42
43 inline SVGFEImageElement::SVGFEImageElement(Document& document) 43 inline SVGFEImageElement::SVGFEImageElement(Document& document)
44 : SVGFilterPrimitiveStandardAttributes(SVGNames::feImageTag, document) 44 : SVGFilterPrimitiveStandardAttributes(SVGNames::feImageTag, document)
45 , SVGURIReference(this)
45 , m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create(this, SVGName s::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())) 46 , m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create(this, SVGName s::preserveAspectRatioAttr, SVGPreserveAspectRatio::create()))
46 , m_href(SVGAnimatedString::create(this, XLinkNames::hrefAttr, SVGString::cr eate()))
47 { 47 {
48 ScriptWrappable::init(this); 48 ScriptWrappable::init(this);
49 addToPropertyMap(m_preserveAspectRatio); 49 addToPropertyMap(m_preserveAspectRatio);
50 addToPropertyMap(m_href);
51 registerAnimatedPropertiesForSVGFEImageElement(); 50 registerAnimatedPropertiesForSVGFEImageElement();
52 } 51 }
53 52
54 PassRefPtr<SVGFEImageElement> SVGFEImageElement::create(Document& document) 53 PassRefPtr<SVGFEImageElement> SVGFEImageElement::create(Document& document)
55 { 54 {
56 return adoptRef(new SVGFEImageElement(document)); 55 return adoptRef(new SVGFEImageElement(document));
57 } 56 }
58 57
59 SVGFEImageElement::~SVGFEImageElement() 58 SVGFEImageElement::~SVGFEImageElement()
60 { 59 {
(...skipping 13 matching lines...) Expand all
74 if (m_cachedImage) { 73 if (m_cachedImage) {
75 m_cachedImage->removeClient(this); 74 m_cachedImage->removeClient(this);
76 m_cachedImage = 0; 75 m_cachedImage = 0;
77 } 76 }
78 77
79 document().accessSVGExtensions()->removeAllTargetReferencesForElement(this); 78 document().accessSVGExtensions()->removeAllTargetReferencesForElement(this);
80 } 79 }
81 80
82 void SVGFEImageElement::fetchImageResource() 81 void SVGFEImageElement::fetchImageResource()
83 { 82 {
84 FetchRequest request(ResourceRequest(ownerDocument()->completeURL(m_href->cu rrentValue()->value())), localName()); 83 FetchRequest request(ResourceRequest(ownerDocument()->completeURL(hrefString ())), localName());
85 m_cachedImage = document().fetcher()->fetchImage(request); 84 m_cachedImage = document().fetcher()->fetchImage(request);
86 85
87 if (m_cachedImage) 86 if (m_cachedImage)
88 m_cachedImage->addClient(this); 87 m_cachedImage->addClient(this);
89 } 88 }
90 89
91 void SVGFEImageElement::buildPendingResource() 90 void SVGFEImageElement::buildPendingResource()
92 { 91 {
93 clearResourceReferences(); 92 clearResourceReferences();
94 if (!inDocument()) 93 if (!inDocument())
95 return; 94 return;
96 95
97 AtomicString id; 96 AtomicString id;
98 Element* target = SVGURIReference::targetElementFromIRIString(m_href->curren tValue()->value(), document(), &id); 97 Element* target = SVGURIReference::targetElementFromIRIString(hrefString(), document(), &id);
99 if (!target) { 98 if (!target) {
100 if (id.isEmpty()) 99 if (id.isEmpty())
101 fetchImageResource(); 100 fetchImageResource();
102 else { 101 else {
103 document().accessSVGExtensions()->addPendingResource(id, this); 102 document().accessSVGExtensions()->addPendingResource(id, this);
104 ASSERT(hasPendingResources()); 103 ASSERT(hasPendingResources());
105 } 104 }
106 } else if (target->isSVGElement()) { 105 } else if (target->isSVGElement()) {
107 // Register us with the target in the dependencies map. Any change of hr efElement 106 // Register us with the target in the dependencies map. Any change of hr efElement
108 // that leads to relayout/repainting now informs us, so we can react to it. 107 // that leads to relayout/repainting now informs us, so we can react to it.
(...skipping 17 matching lines...) Expand all
126 { 125 {
127 if (!isSupportedAttribute(name)) { 126 if (!isSupportedAttribute(name)) {
128 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value); 127 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value);
129 return; 128 return;
130 } 129 }
131 130
132 SVGParsingError parseError = NoError; 131 SVGParsingError parseError = NoError;
133 132
134 if (name == SVGNames::preserveAspectRatioAttr) { 133 if (name == SVGNames::preserveAspectRatioAttr) {
135 m_preserveAspectRatio->setBaseValueAsString(value, parseError); 134 m_preserveAspectRatio->setBaseValueAsString(value, parseError);
136 } else if (name.matches(XLinkNames::hrefAttr)) { 135 } else if (SVGURIReference::parseAttribute(name, value, parseError)) {
137 m_href->setBaseValueAsString(value, parseError);
138 } else { 136 } else {
139 ASSERT_NOT_REACHED(); 137 ASSERT_NOT_REACHED();
140 } 138 }
141 139
142 reportAttributeParsingError(parseError, name, value); 140 reportAttributeParsingError(parseError, name, value);
143 } 141 }
144 142
145 void SVGFEImageElement::svgAttributeChanged(const QualifiedName& attrName) 143 void SVGFEImageElement::svgAttributeChanged(const QualifiedName& attrName)
146 { 144 {
147 if (!isSupportedAttribute(attrName)) { 145 if (!isSupportedAttribute(attrName)) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 return; 188 return;
191 189
192 if (RenderObject* renderer = this->renderer()) 190 if (RenderObject* renderer = this->renderer())
193 RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer); 191 RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
194 } 192 }
195 193
196 PassRefPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* fil ter) 194 PassRefPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* fil ter)
197 { 195 {
198 if (m_cachedImage) 196 if (m_cachedImage)
199 return FEImage::createWithImage(filter, m_cachedImage->imageForRenderer( renderer()), m_preserveAspectRatio->currentValue()); 197 return FEImage::createWithImage(filter, m_cachedImage->imageForRenderer( renderer()), m_preserveAspectRatio->currentValue());
200 return FEImage::createWithIRIReference(filter, document(), m_href->currentVa lue()->value(), m_preserveAspectRatio->currentValue()); 198 return FEImage::createWithIRIReference(filter, document(), hrefString(), m_p reserveAspectRatio->currentValue());
201 } 199 }
202 200
203 } 201 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698