diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp | 46 |
1 files changed, 14 insertions, 32 deletions
diff --git a/chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp b/chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp index c72604a6f38..24e41bac74d 100644 --- a/chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp +++ b/chromium/third_party/WebKit/Source/core/svg/SVGViewElement.cpp @@ -22,40 +22,24 @@ #include "core/svg/SVGViewElement.h" - namespace WebCore { -// Animated property definitions -DEFINE_ANIMATED_BOOLEAN(SVGViewElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired) -DEFINE_ANIMATED_RECT(SVGViewElement, SVGNames::viewBoxAttr, ViewBox, viewBox) -DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGViewElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio) - -BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGViewElement) - REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired) - REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox) - REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio) - REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement) -END_REGISTER_ANIMATED_PROPERTIES - inline SVGViewElement::SVGViewElement(Document& document) : SVGElement(SVGNames::viewTag, document) - , m_zoomAndPan(SVGZoomAndPanMagnify) - , m_viewTarget(SVGNames::viewTargetAttr) + , SVGFitToViewBox(this) + , m_viewTarget(SVGStaticStringList::create(this, SVGNames::viewTargetAttr)) { ScriptWrappable::init(this); - registerAnimatedPropertiesForSVGViewElement(); -} -PassRefPtr<SVGViewElement> SVGViewElement::create(Document& document) -{ - return adoptRef(new SVGViewElement(document)); + addToPropertyMap(m_viewTarget); } +DEFINE_NODE_FACTORY(SVGViewElement) + bool SVGViewElement::isSupportedAttribute(const QualifiedName& attrName) { DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); if (supportedAttributes.isEmpty()) { - SVGExternalResourcesRequired::addSupportedAttributes(supportedAttributes); SVGFitToViewBox::addSupportedAttributes(supportedAttributes); SVGZoomAndPan::addSupportedAttributes(supportedAttributes); supportedAttributes.add(SVGNames::viewTargetAttr); @@ -70,19 +54,17 @@ void SVGViewElement::parseAttribute(const QualifiedName& name, const AtomicStrin return; } - if (name == SVGNames::viewTargetAttr) { - viewTarget().reset(value); - return; - } + SVGParsingError parseError = NoError; - if (SVGExternalResourcesRequired::parseAttribute(name, value)) - return; - if (SVGFitToViewBox::parseAttribute(this, name, value)) - return; - if (SVGZoomAndPan::parseAttribute(this, name, value)) - return; + if (SVGFitToViewBox::parseAttribute(name, value, document(), parseError)) { + } else if (SVGZoomAndPan::parseAttribute(name, value)) { + } else if (name == SVGNames::viewTargetAttr) { + m_viewTarget->setBaseValueAsString(value, parseError); + } else { + ASSERT_NOT_REACHED(); + } - ASSERT_NOT_REACHED(); + reportAttributeParsingError(parseError, name, value); } } |