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

Unified Diff: Source/core/svg/SVGUseElement.cpp

Issue 148173018: [SVG] SVGAnimatedString{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove debug print Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/SVGUseElement.h ('k') | Source/core/svg/SVGViewElement.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/SVGUseElement.cpp
diff --git a/Source/core/svg/SVGUseElement.cpp b/Source/core/svg/SVGUseElement.cpp
index 1a17c41abc0ec3be288b462318d72387e14edd47..7c950135168c7cc9b9b855ceaf3f0d91f59199a7 100644
--- a/Source/core/svg/SVGUseElement.cpp
+++ b/Source/core/svg/SVGUseElement.cpp
@@ -52,10 +52,8 @@
namespace WebCore {
// Animated property definitions
-DEFINE_ANIMATED_STRING(SVGUseElement, XLinkNames::hrefAttr, Href, href)
BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGUseElement)
- REGISTER_LOCAL_ANIMATED_PROPERTY(href)
REGISTER_PARENT_ANIMATED_PROPERTIES(SVGGraphicsElement)
END_REGISTER_ANIMATED_PROPERTIES
@@ -65,6 +63,7 @@ inline SVGUseElement::SVGUseElement(Document& document, bool wasInsertedByParser
, m_y(SVGAnimatedLength::create(this, SVGNames::yAttr, SVGLength::create(LengthModeHeight)))
, m_width(SVGAnimatedLength::create(this, SVGNames::widthAttr, SVGLength::create(LengthModeWidth)))
, m_height(SVGAnimatedLength::create(this, SVGNames::heightAttr, SVGLength::create(LengthModeHeight)))
+ , m_href(SVGAnimatedString::create(this, XLinkNames::hrefAttr, SVGString::create()))
, m_wasInsertedByParser(wasInsertedByParser)
, m_haveFiredLoadEvent(false)
, m_needsShadowTreeRecreation(false)
@@ -77,6 +76,7 @@ inline SVGUseElement::SVGUseElement(Document& document, bool wasInsertedByParser
addToPropertyMap(m_y);
addToPropertyMap(m_width);
addToPropertyMap(m_height);
+ addToPropertyMap(m_href);
registerAnimatedPropertiesForSVGUseElement();
}
@@ -140,8 +140,9 @@ void SVGUseElement::parseAttribute(const QualifiedName& name, const AtomicString
m_width->setBaseValueAsString(value, ForbidNegativeLengths, parseError);
else if (name == SVGNames::heightAttr)
m_height->setBaseValueAsString(value, ForbidNegativeLengths, parseError);
- else if (SVGURIReference::parseAttribute(name, value)) {
- } else
+ else if (name.matches(XLinkNames::hrefAttr))
+ m_href->setBaseValueAsString(value, parseError);
+ else
ASSERT_NOT_REACHED();
reportAttributeParsingError(parseError, name, value);
@@ -183,7 +184,7 @@ void SVGUseElement::removedFrom(ContainerNode* rootParent)
Document* SVGUseElement::referencedDocument() const
{
- if (!isExternalURIReference(hrefCurrentValue(), document()))
+ if (!isExternalURIReference(m_href->currentValue()->value(), document()))
return &document();
return externalDocument();
}
@@ -221,9 +222,9 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName)
}
if (SVGURIReference::isKnownAttribute(attrName)) {
- bool isExternalReference = isExternalURIReference(hrefCurrentValue(), document());
+ bool isExternalReference = isExternalURIReference(m_href->currentValue()->value(), document());
if (isExternalReference) {
- KURL url = document().completeURL(hrefCurrentValue());
+ KURL url = document().completeURL(m_href->currentValue()->value());
if (url.hasFragmentIdentifier()) {
FetchRequest request(ResourceRequest(url.string()), localName());
setDocumentResource(document().fetcher()->fetchSVGDocument(request));
@@ -386,7 +387,7 @@ void SVGUseElement::buildPendingResource()
return;
AtomicString id;
- Element* target = SVGURIReference::targetElementFromIRIString(hrefCurrentValue(), document(), &id, externalDocument());
+ Element* target = SVGURIReference::targetElementFromIRIString(m_href->currentValue()->value(), document(), &id, externalDocument());
if (!target || !target->inDocument()) {
// If we can't find the target of an external element, just give up.
// We can't observe if the target somewhen enters the external document, nor should we do it.
@@ -621,7 +622,7 @@ void SVGUseElement::buildInstanceTree(SVGElement* target, SVGElementInstance* ta
bool SVGUseElement::hasCycleUseReferencing(SVGUseElement* use, SVGElementInstance* targetInstance, SVGElement*& newTarget)
{
ASSERT(referencedDocument());
- Element* targetElement = SVGURIReference::targetElementFromIRIString(use->hrefCurrentValue(), *referencedDocument());
+ Element* targetElement = SVGURIReference::targetElementFromIRIString(use->m_href->currentValue()->value(), *referencedDocument());
newTarget = 0;
if (targetElement && targetElement->isSVGElement())
newTarget = toSVGElement(targetElement);
@@ -695,7 +696,7 @@ void SVGUseElement::expandUseElementsInShadowTree(Node* element)
ASSERT(!use->resourceIsStillLoading());
ASSERT(referencedDocument());
- Element* targetElement = SVGURIReference::targetElementFromIRIString(use->hrefCurrentValue(), *referencedDocument());
+ Element* targetElement = SVGURIReference::targetElementFromIRIString(use->m_href->currentValue()->value(), *referencedDocument());
SVGElement* target = 0;
if (targetElement && targetElement->isSVGElement())
target = toSVGElement(targetElement);
« no previous file with comments | « Source/core/svg/SVGUseElement.h ('k') | Source/core/svg/SVGViewElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698