Index: Source/core/svg/SVGFEImageElement.cpp |
diff --git a/Source/core/svg/SVGFEImageElement.cpp b/Source/core/svg/SVGFEImageElement.cpp |
index c3fcf1ce0a0a19c13c14df7aff457e4bf7ff2c58..3f2b9a8b2b8529b136bf74f7566f8234bdd1da7a 100644 |
--- a/Source/core/svg/SVGFEImageElement.cpp |
+++ b/Source/core/svg/SVGFEImageElement.cpp |
@@ -35,19 +35,19 @@ |
namespace WebCore { |
// Animated property definitions |
-DEFINE_ANIMATED_STRING(SVGFEImageElement, XLinkNames::hrefAttr, Href, href) |
BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEImageElement) |
- REGISTER_LOCAL_ANIMATED_PROPERTY(href) |
REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes) |
END_REGISTER_ANIMATED_PROPERTIES |
inline SVGFEImageElement::SVGFEImageElement(Document& document) |
: SVGFilterPrimitiveStandardAttributes(SVGNames::feImageTag, document) |
, m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create(this, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())) |
+ , m_href(SVGAnimatedString::create(this, XLinkNames::hrefAttr, SVGString::create())) |
{ |
ScriptWrappable::init(this); |
addToPropertyMap(m_preserveAspectRatio); |
+ addToPropertyMap(m_href); |
registerAnimatedPropertiesForSVGFEImageElement(); |
} |
@@ -81,7 +81,7 @@ void SVGFEImageElement::clearResourceReferences() |
void SVGFEImageElement::fetchImageResource() |
{ |
- FetchRequest request(ResourceRequest(ownerDocument()->completeURL(hrefCurrentValue())), localName()); |
+ FetchRequest request(ResourceRequest(ownerDocument()->completeURL(m_href->currentValue()->value())), localName()); |
m_cachedImage = document().fetcher()->fetchImage(request); |
if (m_cachedImage) |
@@ -95,7 +95,7 @@ void SVGFEImageElement::buildPendingResource() |
return; |
AtomicString id; |
- Element* target = SVGURIReference::targetElementFromIRIString(hrefCurrentValue(), document(), &id); |
+ Element* target = SVGURIReference::targetElementFromIRIString(m_href->currentValue()->value(), document(), &id); |
if (!target) { |
if (id.isEmpty()) |
fetchImageResource(); |
@@ -133,7 +133,8 @@ void SVGFEImageElement::parseAttribute(const QualifiedName& name, const AtomicSt |
if (name == SVGNames::preserveAspectRatioAttr) { |
m_preserveAspectRatio->setBaseValueAsString(value, parseError); |
- } else if (SVGURIReference::parseAttribute(name, value)) { |
+ } else if (name.matches(XLinkNames::hrefAttr)) { |
+ m_href->setBaseValueAsString(value, parseError); |
} else { |
ASSERT_NOT_REACHED(); |
} |
@@ -196,7 +197,7 @@ PassRefPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* fil |
{ |
if (m_cachedImage) |
return FEImage::createWithImage(filter, m_cachedImage->imageForRenderer(renderer()), m_preserveAspectRatio->currentValue()); |
- return FEImage::createWithIRIReference(filter, document(), hrefCurrentValue(), m_preserveAspectRatio->currentValue()); |
+ return FEImage::createWithIRIReference(filter, document(), m_href->currentValue()->value(), m_preserveAspectRatio->currentValue()); |
} |
} |