| Index: Source/core/svg/SVGElement.cpp
|
| diff --git a/Source/core/svg/SVGElement.cpp b/Source/core/svg/SVGElement.cpp
|
| index 5fb2cb649ea39f35da875f0a94847e88590da8a4..aacde655dbfe15e5f04f211719668248091d47ed 100644
|
| --- a/Source/core/svg/SVGElement.cpp
|
| +++ b/Source/core/svg/SVGElement.cpp
|
| @@ -287,13 +287,6 @@ void SVGElement::childrenChanged(const ChildrenChange& change)
|
| invalidateInstances();
|
| }
|
|
|
| -void mapAttributeToCSSProperty(HashMap<StringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName)
|
| -{
|
| - CSSPropertyID propertyId = cssPropertyID(attrName.localName());
|
| - ASSERT(propertyId > 0);
|
| - propertyNameToIdMap->set(attrName.localName().impl(), propertyId);
|
| -}
|
| -
|
| CSSPropertyID SVGElement::cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
|
| {
|
| if (!attrName.namespaceURI().isNull())
|
| @@ -303,67 +296,74 @@ CSSPropertyID SVGElement::cssPropertyIdForSVGAttributeName(const QualifiedName&
|
| if (!propertyNameToIdMap) {
|
| propertyNameToIdMap = new HashMap<StringImpl*, CSSPropertyID>;
|
| // This is a list of all base CSS and SVG CSS properties which are exposed as SVG XML attributes
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, alignment_baselineAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, baseline_shiftAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, buffered_renderingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, clipAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, clip_pathAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, clip_ruleAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, SVGNames::colorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, color_interpolationAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, color_interpolation_filtersAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, color_renderingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, cursorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, SVGNames::directionAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, displayAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, dominant_baselineAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, enable_backgroundAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, fillAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, fill_opacityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, fill_ruleAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, filterAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, flood_colorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, flood_opacityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_familyAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_sizeAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_stretchAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_styleAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_variantAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, font_weightAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, glyph_orientation_horizontalAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, glyph_orientation_verticalAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, image_renderingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, letter_spacingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, lighting_colorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, marker_endAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, marker_midAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, marker_startAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, maskAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, mask_typeAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, opacityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, overflowAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, paint_orderAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, pointer_eventsAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, shape_renderingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stop_colorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stop_opacityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, strokeAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_dasharrayAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_dashoffsetAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_linecapAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_linejoinAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_miterlimitAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_opacityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, stroke_widthAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, text_anchorAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, text_decorationAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, text_renderingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, transform_originAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, unicode_bidiAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, vector_effectAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, visibilityAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, word_spacingAttr);
|
| - mapAttributeToCSSProperty(propertyNameToIdMap, writing_modeAttr);
|
| + const QualifiedName* const attrNames[] = {
|
| + &alignment_baselineAttr,
|
| + &baseline_shiftAttr,
|
| + &buffered_renderingAttr,
|
| + &clipAttr,
|
| + &clip_pathAttr,
|
| + &clip_ruleAttr,
|
| + &SVGNames::colorAttr,
|
| + &color_interpolationAttr,
|
| + &color_interpolation_filtersAttr,
|
| + &color_renderingAttr,
|
| + &cursorAttr,
|
| + &SVGNames::directionAttr,
|
| + &displayAttr,
|
| + &dominant_baselineAttr,
|
| + &enable_backgroundAttr,
|
| + &fillAttr,
|
| + &fill_opacityAttr,
|
| + &fill_ruleAttr,
|
| + &filterAttr,
|
| + &flood_colorAttr,
|
| + &flood_opacityAttr,
|
| + &font_familyAttr,
|
| + &font_sizeAttr,
|
| + &font_stretchAttr,
|
| + &font_styleAttr,
|
| + &font_variantAttr,
|
| + &font_weightAttr,
|
| + &glyph_orientation_horizontalAttr,
|
| + &glyph_orientation_verticalAttr,
|
| + &image_renderingAttr,
|
| + &letter_spacingAttr,
|
| + &lighting_colorAttr,
|
| + &marker_endAttr,
|
| + &marker_midAttr,
|
| + &marker_startAttr,
|
| + &maskAttr,
|
| + &mask_typeAttr,
|
| + &opacityAttr,
|
| + &overflowAttr,
|
| + &paint_orderAttr,
|
| + &pointer_eventsAttr,
|
| + &shape_renderingAttr,
|
| + &stop_colorAttr,
|
| + &stop_opacityAttr,
|
| + &strokeAttr,
|
| + &stroke_dasharrayAttr,
|
| + &stroke_dashoffsetAttr,
|
| + &stroke_linecapAttr,
|
| + &stroke_linejoinAttr,
|
| + &stroke_miterlimitAttr,
|
| + &stroke_opacityAttr,
|
| + &stroke_widthAttr,
|
| + &text_anchorAttr,
|
| + &text_decorationAttr,
|
| + &text_renderingAttr,
|
| + &transform_originAttr,
|
| + &unicode_bidiAttr,
|
| + &vector_effectAttr,
|
| + &visibilityAttr,
|
| + &word_spacingAttr,
|
| + &writing_modeAttr,
|
| + };
|
| + for (size_t i = 0; i < WTF_ARRAY_LENGTH(attrNames); i++) {
|
| + CSSPropertyID propertyId = cssPropertyID(attrNames[i]->localName());
|
| + ASSERT(propertyId > 0);
|
| + propertyNameToIdMap->set(attrNames[i]->localName().impl(), propertyId);
|
| + }
|
| }
|
|
|
| return propertyNameToIdMap->get(attrName.localName().impl());
|
| @@ -621,60 +621,68 @@ AnimatedPropertyType SVGElement::animatedPropertyTypeForCSSAttribute(const Quali
|
|
|
| if (cssPropertyMap.isEmpty()) {
|
| // Fill the map for the first use.
|
| - cssPropertyMap.set(alignment_baselineAttr, AnimatedString);
|
| - cssPropertyMap.set(baseline_shiftAttr, AnimatedString);
|
| - cssPropertyMap.set(buffered_renderingAttr, AnimatedString);
|
| - cssPropertyMap.set(clipAttr, AnimatedRect);
|
| - cssPropertyMap.set(clip_pathAttr, AnimatedString);
|
| - cssPropertyMap.set(clip_ruleAttr, AnimatedString);
|
| - cssPropertyMap.set(SVGNames::colorAttr, AnimatedColor);
|
| - cssPropertyMap.set(color_interpolationAttr, AnimatedString);
|
| - cssPropertyMap.set(color_interpolation_filtersAttr, AnimatedString);
|
| - cssPropertyMap.set(color_renderingAttr, AnimatedString);
|
| - cssPropertyMap.set(cursorAttr, AnimatedString);
|
| - cssPropertyMap.set(displayAttr, AnimatedString);
|
| - cssPropertyMap.set(dominant_baselineAttr, AnimatedString);
|
| - cssPropertyMap.set(fillAttr, AnimatedColor);
|
| - cssPropertyMap.set(fill_opacityAttr, AnimatedNumber);
|
| - cssPropertyMap.set(fill_ruleAttr, AnimatedString);
|
| - cssPropertyMap.set(filterAttr, AnimatedString);
|
| - cssPropertyMap.set(flood_colorAttr, AnimatedColor);
|
| - cssPropertyMap.set(flood_opacityAttr, AnimatedNumber);
|
| - cssPropertyMap.set(font_familyAttr, AnimatedString);
|
| - cssPropertyMap.set(font_sizeAttr, AnimatedLength);
|
| - cssPropertyMap.set(font_stretchAttr, AnimatedString);
|
| - cssPropertyMap.set(font_styleAttr, AnimatedString);
|
| - cssPropertyMap.set(font_variantAttr, AnimatedString);
|
| - cssPropertyMap.set(font_weightAttr, AnimatedString);
|
| - cssPropertyMap.set(image_renderingAttr, AnimatedString);
|
| - cssPropertyMap.set(letter_spacingAttr, AnimatedLength);
|
| - cssPropertyMap.set(lighting_colorAttr, AnimatedColor);
|
| - cssPropertyMap.set(marker_endAttr, AnimatedString);
|
| - cssPropertyMap.set(marker_midAttr, AnimatedString);
|
| - cssPropertyMap.set(marker_startAttr, AnimatedString);
|
| - cssPropertyMap.set(maskAttr, AnimatedString);
|
| - cssPropertyMap.set(mask_typeAttr, AnimatedString);
|
| - cssPropertyMap.set(opacityAttr, AnimatedNumber);
|
| - cssPropertyMap.set(overflowAttr, AnimatedString);
|
| - cssPropertyMap.set(paint_orderAttr, AnimatedString);
|
| - cssPropertyMap.set(pointer_eventsAttr, AnimatedString);
|
| - cssPropertyMap.set(shape_renderingAttr, AnimatedString);
|
| - cssPropertyMap.set(stop_colorAttr, AnimatedColor);
|
| - cssPropertyMap.set(stop_opacityAttr, AnimatedNumber);
|
| - cssPropertyMap.set(strokeAttr, AnimatedColor);
|
| - cssPropertyMap.set(stroke_dasharrayAttr, AnimatedLengthList);
|
| - cssPropertyMap.set(stroke_dashoffsetAttr, AnimatedLength);
|
| - cssPropertyMap.set(stroke_linecapAttr, AnimatedString);
|
| - cssPropertyMap.set(stroke_linejoinAttr, AnimatedString);
|
| - cssPropertyMap.set(stroke_miterlimitAttr, AnimatedNumber);
|
| - cssPropertyMap.set(stroke_opacityAttr, AnimatedNumber);
|
| - cssPropertyMap.set(stroke_widthAttr, AnimatedLength);
|
| - cssPropertyMap.set(text_anchorAttr, AnimatedString);
|
| - cssPropertyMap.set(text_decorationAttr, AnimatedString);
|
| - cssPropertyMap.set(text_renderingAttr, AnimatedString);
|
| - cssPropertyMap.set(vector_effectAttr, AnimatedString);
|
| - cssPropertyMap.set(visibilityAttr, AnimatedString);
|
| - cssPropertyMap.set(word_spacingAttr, AnimatedLength);
|
| + struct AttrToTypeEntry {
|
| + const QualifiedName& attr;
|
| + const AnimatedPropertyType propType;
|
| + };
|
| + const AttrToTypeEntry attrToTypes[] = {
|
| + { alignment_baselineAttr, AnimatedString },
|
| + { baseline_shiftAttr, AnimatedString },
|
| + { buffered_renderingAttr, AnimatedString },
|
| + { clipAttr, AnimatedRect },
|
| + { clip_pathAttr, AnimatedString },
|
| + { clip_ruleAttr, AnimatedString },
|
| + { SVGNames::colorAttr, AnimatedColor },
|
| + { color_interpolationAttr, AnimatedString },
|
| + { color_interpolation_filtersAttr, AnimatedString },
|
| + { color_renderingAttr, AnimatedString },
|
| + { cursorAttr, AnimatedString },
|
| + { displayAttr, AnimatedString },
|
| + { dominant_baselineAttr, AnimatedString },
|
| + { fillAttr, AnimatedColor },
|
| + { fill_opacityAttr, AnimatedNumber },
|
| + { fill_ruleAttr, AnimatedString },
|
| + { filterAttr, AnimatedString },
|
| + { flood_colorAttr, AnimatedColor },
|
| + { flood_opacityAttr, AnimatedNumber },
|
| + { font_familyAttr, AnimatedString },
|
| + { font_sizeAttr, AnimatedLength },
|
| + { font_stretchAttr, AnimatedString },
|
| + { font_styleAttr, AnimatedString },
|
| + { font_variantAttr, AnimatedString },
|
| + { font_weightAttr, AnimatedString },
|
| + { image_renderingAttr, AnimatedString },
|
| + { letter_spacingAttr, AnimatedLength },
|
| + { lighting_colorAttr, AnimatedColor },
|
| + { marker_endAttr, AnimatedString },
|
| + { marker_midAttr, AnimatedString },
|
| + { marker_startAttr, AnimatedString },
|
| + { maskAttr, AnimatedString },
|
| + { mask_typeAttr, AnimatedString },
|
| + { opacityAttr, AnimatedNumber },
|
| + { overflowAttr, AnimatedString },
|
| + { paint_orderAttr, AnimatedString },
|
| + { pointer_eventsAttr, AnimatedString },
|
| + { shape_renderingAttr, AnimatedString },
|
| + { stop_colorAttr, AnimatedColor },
|
| + { stop_opacityAttr, AnimatedNumber },
|
| + { strokeAttr, AnimatedColor },
|
| + { stroke_dasharrayAttr, AnimatedLengthList },
|
| + { stroke_dashoffsetAttr, AnimatedLength },
|
| + { stroke_linecapAttr, AnimatedString },
|
| + { stroke_linejoinAttr, AnimatedString },
|
| + { stroke_miterlimitAttr, AnimatedNumber },
|
| + { stroke_opacityAttr, AnimatedNumber },
|
| + { stroke_widthAttr, AnimatedLength },
|
| + { text_anchorAttr, AnimatedString },
|
| + { text_decorationAttr, AnimatedString },
|
| + { text_renderingAttr, AnimatedString },
|
| + { vector_effectAttr, AnimatedString },
|
| + { visibilityAttr, AnimatedString },
|
| + { word_spacingAttr, AnimatedLength },
|
| + };
|
| + for (size_t i = 0; i < WTF_ARRAY_LENGTH(attrToTypes); i++)
|
| + cssPropertyMap.set(attrToTypes[i].attr, attrToTypes[i].propType);
|
| }
|
|
|
| if (cssPropertyMap.contains(attributeName))
|
| @@ -1000,98 +1008,102 @@ bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const
|
| DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes, ());
|
|
|
| if (animatableAttributes.isEmpty()) {
|
| - animatableAttributes.add(XLinkNames::hrefAttr);
|
| - animatableAttributes.add(SVGNames::amplitudeAttr);
|
| - animatableAttributes.add(SVGNames::azimuthAttr);
|
| - animatableAttributes.add(SVGNames::baseFrequencyAttr);
|
| - animatableAttributes.add(SVGNames::biasAttr);
|
| - animatableAttributes.add(SVGNames::clipPathUnitsAttr);
|
| - animatableAttributes.add(SVGNames::cxAttr);
|
| - animatableAttributes.add(SVGNames::cyAttr);
|
| - animatableAttributes.add(SVGNames::diffuseConstantAttr);
|
| - animatableAttributes.add(SVGNames::divisorAttr);
|
| - animatableAttributes.add(SVGNames::dxAttr);
|
| - animatableAttributes.add(SVGNames::dyAttr);
|
| - animatableAttributes.add(SVGNames::edgeModeAttr);
|
| - animatableAttributes.add(SVGNames::elevationAttr);
|
| - animatableAttributes.add(SVGNames::exponentAttr);
|
| - animatableAttributes.add(SVGNames::filterResAttr);
|
| - animatableAttributes.add(SVGNames::filterUnitsAttr);
|
| - animatableAttributes.add(SVGNames::fxAttr);
|
| - animatableAttributes.add(SVGNames::fyAttr);
|
| - animatableAttributes.add(SVGNames::gradientTransformAttr);
|
| - animatableAttributes.add(SVGNames::gradientUnitsAttr);
|
| - animatableAttributes.add(SVGNames::heightAttr);
|
| - animatableAttributes.add(SVGNames::in2Attr);
|
| - animatableAttributes.add(SVGNames::inAttr);
|
| - animatableAttributes.add(SVGNames::interceptAttr);
|
| - animatableAttributes.add(SVGNames::k1Attr);
|
| - animatableAttributes.add(SVGNames::k2Attr);
|
| - animatableAttributes.add(SVGNames::k3Attr);
|
| - animatableAttributes.add(SVGNames::k4Attr);
|
| - animatableAttributes.add(SVGNames::kernelMatrixAttr);
|
| - animatableAttributes.add(SVGNames::kernelUnitLengthAttr);
|
| - animatableAttributes.add(SVGNames::lengthAdjustAttr);
|
| - animatableAttributes.add(SVGNames::limitingConeAngleAttr);
|
| - animatableAttributes.add(SVGNames::markerHeightAttr);
|
| - animatableAttributes.add(SVGNames::markerUnitsAttr);
|
| - animatableAttributes.add(SVGNames::markerWidthAttr);
|
| - animatableAttributes.add(SVGNames::maskContentUnitsAttr);
|
| - animatableAttributes.add(SVGNames::maskUnitsAttr);
|
| - animatableAttributes.add(SVGNames::methodAttr);
|
| - animatableAttributes.add(SVGNames::modeAttr);
|
| - animatableAttributes.add(SVGNames::numOctavesAttr);
|
| - animatableAttributes.add(SVGNames::offsetAttr);
|
| - animatableAttributes.add(SVGNames::operatorAttr);
|
| - animatableAttributes.add(SVGNames::orderAttr);
|
| - animatableAttributes.add(SVGNames::orientAttr);
|
| - animatableAttributes.add(SVGNames::pathLengthAttr);
|
| - animatableAttributes.add(SVGNames::patternContentUnitsAttr);
|
| - animatableAttributes.add(SVGNames::patternTransformAttr);
|
| - animatableAttributes.add(SVGNames::patternUnitsAttr);
|
| - animatableAttributes.add(SVGNames::pointsAtXAttr);
|
| - animatableAttributes.add(SVGNames::pointsAtYAttr);
|
| - animatableAttributes.add(SVGNames::pointsAtZAttr);
|
| - animatableAttributes.add(SVGNames::preserveAlphaAttr);
|
| - animatableAttributes.add(SVGNames::preserveAspectRatioAttr);
|
| - animatableAttributes.add(SVGNames::primitiveUnitsAttr);
|
| - animatableAttributes.add(SVGNames::radiusAttr);
|
| - animatableAttributes.add(SVGNames::rAttr);
|
| - animatableAttributes.add(SVGNames::refXAttr);
|
| - animatableAttributes.add(SVGNames::refYAttr);
|
| - animatableAttributes.add(SVGNames::resultAttr);
|
| - animatableAttributes.add(SVGNames::rotateAttr);
|
| - animatableAttributes.add(SVGNames::rxAttr);
|
| - animatableAttributes.add(SVGNames::ryAttr);
|
| - animatableAttributes.add(SVGNames::scaleAttr);
|
| - animatableAttributes.add(SVGNames::seedAttr);
|
| - animatableAttributes.add(SVGNames::slopeAttr);
|
| - animatableAttributes.add(SVGNames::spacingAttr);
|
| - animatableAttributes.add(SVGNames::specularConstantAttr);
|
| - animatableAttributes.add(SVGNames::specularExponentAttr);
|
| - animatableAttributes.add(SVGNames::spreadMethodAttr);
|
| - animatableAttributes.add(SVGNames::startOffsetAttr);
|
| - animatableAttributes.add(SVGNames::stdDeviationAttr);
|
| - animatableAttributes.add(SVGNames::stitchTilesAttr);
|
| - animatableAttributes.add(SVGNames::surfaceScaleAttr);
|
| - animatableAttributes.add(SVGNames::tableValuesAttr);
|
| - animatableAttributes.add(SVGNames::targetAttr);
|
| - animatableAttributes.add(SVGNames::targetXAttr);
|
| - animatableAttributes.add(SVGNames::targetYAttr);
|
| - animatableAttributes.add(SVGNames::transformAttr);
|
| - animatableAttributes.add(SVGNames::typeAttr);
|
| - animatableAttributes.add(SVGNames::valuesAttr);
|
| - animatableAttributes.add(SVGNames::viewBoxAttr);
|
| - animatableAttributes.add(SVGNames::widthAttr);
|
| - animatableAttributes.add(SVGNames::x1Attr);
|
| - animatableAttributes.add(SVGNames::x2Attr);
|
| - animatableAttributes.add(SVGNames::xAttr);
|
| - animatableAttributes.add(SVGNames::xChannelSelectorAttr);
|
| - animatableAttributes.add(SVGNames::y1Attr);
|
| - animatableAttributes.add(SVGNames::y2Attr);
|
| - animatableAttributes.add(SVGNames::yAttr);
|
| - animatableAttributes.add(SVGNames::yChannelSelectorAttr);
|
| - animatableAttributes.add(SVGNames::zAttr);
|
| + const QualifiedName* const animatableAttrs[] = {
|
| + &XLinkNames::hrefAttr,
|
| + &SVGNames::amplitudeAttr,
|
| + &SVGNames::azimuthAttr,
|
| + &SVGNames::baseFrequencyAttr,
|
| + &SVGNames::biasAttr,
|
| + &SVGNames::clipPathUnitsAttr,
|
| + &SVGNames::cxAttr,
|
| + &SVGNames::cyAttr,
|
| + &SVGNames::diffuseConstantAttr,
|
| + &SVGNames::divisorAttr,
|
| + &SVGNames::dxAttr,
|
| + &SVGNames::dyAttr,
|
| + &SVGNames::edgeModeAttr,
|
| + &SVGNames::elevationAttr,
|
| + &SVGNames::exponentAttr,
|
| + &SVGNames::filterResAttr,
|
| + &SVGNames::filterUnitsAttr,
|
| + &SVGNames::fxAttr,
|
| + &SVGNames::fyAttr,
|
| + &SVGNames::gradientTransformAttr,
|
| + &SVGNames::gradientUnitsAttr,
|
| + &SVGNames::heightAttr,
|
| + &SVGNames::in2Attr,
|
| + &SVGNames::inAttr,
|
| + &SVGNames::interceptAttr,
|
| + &SVGNames::k1Attr,
|
| + &SVGNames::k2Attr,
|
| + &SVGNames::k3Attr,
|
| + &SVGNames::k4Attr,
|
| + &SVGNames::kernelMatrixAttr,
|
| + &SVGNames::kernelUnitLengthAttr,
|
| + &SVGNames::lengthAdjustAttr,
|
| + &SVGNames::limitingConeAngleAttr,
|
| + &SVGNames::markerHeightAttr,
|
| + &SVGNames::markerUnitsAttr,
|
| + &SVGNames::markerWidthAttr,
|
| + &SVGNames::maskContentUnitsAttr,
|
| + &SVGNames::maskUnitsAttr,
|
| + &SVGNames::methodAttr,
|
| + &SVGNames::modeAttr,
|
| + &SVGNames::numOctavesAttr,
|
| + &SVGNames::offsetAttr,
|
| + &SVGNames::operatorAttr,
|
| + &SVGNames::orderAttr,
|
| + &SVGNames::orientAttr,
|
| + &SVGNames::pathLengthAttr,
|
| + &SVGNames::patternContentUnitsAttr,
|
| + &SVGNames::patternTransformAttr,
|
| + &SVGNames::patternUnitsAttr,
|
| + &SVGNames::pointsAtXAttr,
|
| + &SVGNames::pointsAtYAttr,
|
| + &SVGNames::pointsAtZAttr,
|
| + &SVGNames::preserveAlphaAttr,
|
| + &SVGNames::preserveAspectRatioAttr,
|
| + &SVGNames::primitiveUnitsAttr,
|
| + &SVGNames::radiusAttr,
|
| + &SVGNames::rAttr,
|
| + &SVGNames::refXAttr,
|
| + &SVGNames::refYAttr,
|
| + &SVGNames::resultAttr,
|
| + &SVGNames::rotateAttr,
|
| + &SVGNames::rxAttr,
|
| + &SVGNames::ryAttr,
|
| + &SVGNames::scaleAttr,
|
| + &SVGNames::seedAttr,
|
| + &SVGNames::slopeAttr,
|
| + &SVGNames::spacingAttr,
|
| + &SVGNames::specularConstantAttr,
|
| + &SVGNames::specularExponentAttr,
|
| + &SVGNames::spreadMethodAttr,
|
| + &SVGNames::startOffsetAttr,
|
| + &SVGNames::stdDeviationAttr,
|
| + &SVGNames::stitchTilesAttr,
|
| + &SVGNames::surfaceScaleAttr,
|
| + &SVGNames::tableValuesAttr,
|
| + &SVGNames::targetAttr,
|
| + &SVGNames::targetXAttr,
|
| + &SVGNames::targetYAttr,
|
| + &SVGNames::transformAttr,
|
| + &SVGNames::typeAttr,
|
| + &SVGNames::valuesAttr,
|
| + &SVGNames::viewBoxAttr,
|
| + &SVGNames::widthAttr,
|
| + &SVGNames::x1Attr,
|
| + &SVGNames::x2Attr,
|
| + &SVGNames::xAttr,
|
| + &SVGNames::xChannelSelectorAttr,
|
| + &SVGNames::y1Attr,
|
| + &SVGNames::y2Attr,
|
| + &SVGNames::yAttr,
|
| + &SVGNames::yChannelSelectorAttr,
|
| + &SVGNames::zAttr,
|
| + };
|
| + for (size_t i = 0; i < WTF_ARRAY_LENGTH(animatableAttrs); i++)
|
| + animatableAttributes.add(*animatableAttrs[i]);
|
| }
|
|
|
| if (name == classAttr)
|
|
|