[SVG2] Merge SVGStyledElement and SVGElement
authorch.dumez@sisa.samsung.com <ch.dumez@sisa.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Aug 2013 21:58:09 +0000 (21:58 +0000)
committerch.dumez@sisa.samsung.com <ch.dumez@sisa.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Aug 2013 21:58:09 +0000 (21:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=107386

Reviewed by Andreas Kling.

Source/WebCore:

Merge SVGStyledElement into SVGElement to simplify the SVG inheritance
model and match the SVG2 specification:
https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGElement

Test: svg/dom/svg2-inheritance.html

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
* css/SVGCSSStyleSelector.cpp:
* rendering/style/SVGRenderStyle.cpp:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::RenderSVGContainer):
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
(WebCore::getElementCTM):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceMarker.cpp:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::RenderSVGRoot):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGRenderTreeAsText.cpp:
* rendering/svg/SVGResources.cpp:
(WebCore::registerPendingResource):
* rendering/svg/SVGResourcesCache.cpp:
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::title):
* svg/SVGAllInOne.cpp:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::valueAsString):
(WebCore::SVGAnimatedType::setValueAsString):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
(WebCore::SVGAnimationElement::computeCSSPropertyValue):
(WebCore::SVGAnimationElement::adjustForInheritance):
(WebCore::inheritsFromProperty):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDescElement.cpp:
(WebCore::SVGDescElement::SVGDescElement):
* svg/SVGDescElement.h:
* svg/SVGDescElement.idl:
* svg/SVGElement.cpp:
(WebCore::mapAttributeToCSSProperty):
(WebCore::cssPropertyToTypeMap):
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::animatedPropertyTypeForAttribute):
(WebCore::collectInstancesForSVGElement):
(WebCore::SVGElement::isAnimatableAttribute):
(WebCore::SVGElement::title):
(WebCore::SVGElement::rendererIsNeeded):
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
(WebCore::SVGElement::isAnimatableCSSProperty):
(WebCore::SVGElement::isPresentationAttribute):
(WebCore::SVGElement::collectStyleForPresentationAttribute):
(WebCore::SVGElement::isKnownAttribute):
(WebCore::SVGElement::svgAttributeChanged):
(WebCore::SVGElement::insertedInto):
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::childrenChanged):
(WebCore::SVGElement::getPresentationAttribute):
(WebCore::SVGElement::instanceUpdatesBlocked):
(WebCore::SVGElement::setInstanceUpdatesBlocked):
(WebCore::SVGElement::localCoordinateSpaceTransform):
(WebCore::SVGElement::updateRelativeLengthsInformation):
(WebCore::SVGElement::isMouseFocusable):
(WebCore::SVGElement::isKeyboardFocusable):
* svg/SVGElement.h:
(WebCore::SVGElement::supportsMarkers):
(WebCore::SVGElement::hasRelativeLengths):
(WebCore::SVGElement::needsPendingResourceHandling):
(WebCore::SVGElement::selfHasRelativeLengths):
(WebCore::SVGElement::updateRelativeLengthsInformation):
* svg/SVGElement.idl:
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
(WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
* svg/SVGElementInstance.h:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFEComponentTransferElement.idl:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEConvolveMatrixElement.idl:
* svg/SVGFEDiffuseLightingElement.idl:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEImageElement.idl:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.idl:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFEOffsetElement.idl:
* svg/SVGFESpecularLightingElement.idl:
* svg/SVGFETileElement.idl:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::parseAttribute):
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::childrenChanged):
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
* svg/SVGFontElement.h:
* svg/SVGFontFaceElement.cpp:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::rendererIsNeeded):
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::SVGGlyphElement):
(WebCore::SVGGlyphElement::parseAttribute):
(WebCore::SVGGlyphElement::insertedInto):
(WebCore::SVGGlyphElement::removedFrom):
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
(WebCore::SVGGlyphRefElement::parseAttribute):
* svg/SVGGlyphRefElement.h:
* svg/SVGGlyphRefElement.idl:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::parseAttribute):
(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):
* svg/SVGGradientElement.h:
* svg/SVGGradientElement.idl:
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::SVGGraphicsElement):
(WebCore::SVGGraphicsElement::parseAttribute):
(WebCore::SVGGraphicsElement::svgAttributeChanged):
* svg/SVGGraphicsElement.h:
* svg/SVGGraphicsElement.idl:
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::computeCTM):
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::childrenChanged):
* svg/SVGMarkerElement.h:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::parseAttribute):
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):
* svg/SVGMaskElement.h:
* svg/SVGMaskElement.idl:
* svg/SVGMetadataElement.h:
* svg/SVGMissingGlyphElement.cpp:
(WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
* svg/SVGMissingGlyphElement.h:
* svg/SVGMissingGlyphElement.idl:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::parseAttribute):
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::childrenChanged):
* svg/SVGPatternElement.h:
* svg/SVGPatternElement.idl:
* svg/SVGScriptElement.h:
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::SVGStopElement):
(WebCore::SVGStopElement::parseAttribute):
(WebCore::SVGStopElement::svgAttributeChanged):
* svg/SVGStopElement.h:
* svg/SVGStopElement.idl:
* svg/SVGStyleElement.h:
* svg/SVGStyledElement.cpp: Removed.
* svg/SVGStyledElement.h: Removed.
* svg/SVGStyledElement.idl: Removed.
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
(WebCore::SVGSymbolElement::parseAttribute):
(WebCore::SVGSymbolElement::svgAttributeChanged):
* svg/SVGSymbolElement.h:
* svg/SVGSymbolElement.idl:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::insertedInto):
(WebCore::SVGTRefElement::removedFrom):
* svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::SVGTitleElement):
(WebCore::SVGTitleElement::insertedInto):
* svg/SVGTitleElement.h:
* svg/SVGTitleElement.idl:
* svg/SVGTransformable.cpp:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::selfHasRelativeLengths):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
(WebCore::SVGViewElement::parseAttribute):
* svg/SVGViewElement.h:
* svg/animation/SVGSMILElement.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):

LayoutTests:

Add layout test to validate the SVG2 inheritance model.

* svg/dom/svg2-inheritance-expected.txt: Added.
* svg/dom/svg2-inheritance.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

137 files changed:
LayoutTests/ChangeLog
LayoutTests/svg/dom/svg2-inheritance-expected.txt [new file with mode: 0644]
LayoutTests/svg/dom/svg2-inheritance.html [new file with mode: 0644]
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.cpp
Source/WebCore/DerivedSources.make
Source/WebCore/DerivedSources.pri
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Target.pri
Source/WebCore/WebCore.order
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/accessibility/AccessibilityNodeObject.cpp
Source/WebCore/css/SVGCSSStyleSelector.cpp
Source/WebCore/rendering/style/SVGRenderStyle.cpp
Source/WebCore/rendering/svg/RenderSVGContainer.cpp
Source/WebCore/rendering/svg/RenderSVGContainer.h
Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
Source/WebCore/rendering/svg/RenderSVGModelObject.h
Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
Source/WebCore/rendering/svg/RenderSVGResourceMarker.h
Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
Source/WebCore/rendering/svg/RenderSVGRoot.cpp
Source/WebCore/rendering/svg/RenderSVGRoot.h
Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
Source/WebCore/rendering/svg/SVGRenderSupport.cpp
Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
Source/WebCore/rendering/svg/SVGResources.cpp
Source/WebCore/rendering/svg/SVGResourcesCache.cpp
Source/WebCore/svg/SVGAElement.cpp
Source/WebCore/svg/SVGAllInOne.cpp
Source/WebCore/svg/SVGAltGlyphDefElement.h
Source/WebCore/svg/SVGAltGlyphItemElement.h
Source/WebCore/svg/SVGAnimateElement.cpp
Source/WebCore/svg/SVGAnimatedType.cpp
Source/WebCore/svg/SVGAnimationElement.cpp
Source/WebCore/svg/SVGComponentTransferFunctionElement.h
Source/WebCore/svg/SVGCursorElement.h
Source/WebCore/svg/SVGDescElement.cpp
Source/WebCore/svg/SVGDescElement.h
Source/WebCore/svg/SVGDescElement.idl
Source/WebCore/svg/SVGElement.cpp
Source/WebCore/svg/SVGElement.h
Source/WebCore/svg/SVGElement.idl
Source/WebCore/svg/SVGElementInstance.cpp
Source/WebCore/svg/SVGElementInstance.h
Source/WebCore/svg/SVGFEBlendElement.idl
Source/WebCore/svg/SVGFEColorMatrixElement.idl
Source/WebCore/svg/SVGFEComponentTransferElement.idl
Source/WebCore/svg/SVGFECompositeElement.idl
Source/WebCore/svg/SVGFEConvolveMatrixElement.idl
Source/WebCore/svg/SVGFEDiffuseLightingElement.idl
Source/WebCore/svg/SVGFEDisplacementMapElement.idl
Source/WebCore/svg/SVGFEDropShadowElement.idl
Source/WebCore/svg/SVGFEFloodElement.idl
Source/WebCore/svg/SVGFEGaussianBlurElement.idl
Source/WebCore/svg/SVGFEImageElement.idl
Source/WebCore/svg/SVGFELightElement.h
Source/WebCore/svg/SVGFEMergeElement.idl
Source/WebCore/svg/SVGFEMergeNodeElement.h
Source/WebCore/svg/SVGFEMorphologyElement.idl
Source/WebCore/svg/SVGFEOffsetElement.idl
Source/WebCore/svg/SVGFESpecularLightingElement.idl
Source/WebCore/svg/SVGFETileElement.idl
Source/WebCore/svg/SVGFETurbulenceElement.idl
Source/WebCore/svg/SVGFilterElement.cpp
Source/WebCore/svg/SVGFilterElement.h
Source/WebCore/svg/SVGFilterElement.idl
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
Source/WebCore/svg/SVGFontElement.cpp
Source/WebCore/svg/SVGFontElement.h
Source/WebCore/svg/SVGFontFaceElement.cpp
Source/WebCore/svg/SVGFontFaceElement.h
Source/WebCore/svg/SVGFontFaceFormatElement.h
Source/WebCore/svg/SVGFontFaceNameElement.h
Source/WebCore/svg/SVGFontFaceSrcElement.h
Source/WebCore/svg/SVGFontFaceUriElement.h
Source/WebCore/svg/SVGGElement.cpp
Source/WebCore/svg/SVGGlyphElement.cpp
Source/WebCore/svg/SVGGlyphElement.h
Source/WebCore/svg/SVGGlyphRefElement.cpp
Source/WebCore/svg/SVGGlyphRefElement.h
Source/WebCore/svg/SVGGlyphRefElement.idl
Source/WebCore/svg/SVGGradientElement.cpp
Source/WebCore/svg/SVGGradientElement.h
Source/WebCore/svg/SVGGradientElement.idl
Source/WebCore/svg/SVGGraphicsElement.cpp
Source/WebCore/svg/SVGGraphicsElement.h
Source/WebCore/svg/SVGGraphicsElement.idl
Source/WebCore/svg/SVGLocatable.cpp
Source/WebCore/svg/SVGMPathElement.h
Source/WebCore/svg/SVGMarkerElement.cpp
Source/WebCore/svg/SVGMarkerElement.h
Source/WebCore/svg/SVGMarkerElement.idl
Source/WebCore/svg/SVGMaskElement.cpp
Source/WebCore/svg/SVGMaskElement.h
Source/WebCore/svg/SVGMaskElement.idl
Source/WebCore/svg/SVGMetadataElement.h
Source/WebCore/svg/SVGMissingGlyphElement.cpp
Source/WebCore/svg/SVGMissingGlyphElement.h
Source/WebCore/svg/SVGMissingGlyphElement.idl
Source/WebCore/svg/SVGPatternElement.cpp
Source/WebCore/svg/SVGPatternElement.h
Source/WebCore/svg/SVGPatternElement.idl
Source/WebCore/svg/SVGScriptElement.h
Source/WebCore/svg/SVGStopElement.cpp
Source/WebCore/svg/SVGStopElement.h
Source/WebCore/svg/SVGStopElement.idl
Source/WebCore/svg/SVGStyleElement.h
Source/WebCore/svg/SVGStyledElement.cpp [deleted file]
Source/WebCore/svg/SVGStyledElement.h [deleted file]
Source/WebCore/svg/SVGStyledElement.idl [deleted file]
Source/WebCore/svg/SVGSymbolElement.cpp
Source/WebCore/svg/SVGSymbolElement.h
Source/WebCore/svg/SVGSymbolElement.idl
Source/WebCore/svg/SVGTRefElement.cpp
Source/WebCore/svg/SVGTitleElement.cpp
Source/WebCore/svg/SVGTitleElement.h
Source/WebCore/svg/SVGTitleElement.idl
Source/WebCore/svg/SVGTransformable.cpp
Source/WebCore/svg/SVGUseElement.cpp
Source/WebCore/svg/SVGViewElement.cpp
Source/WebCore/svg/SVGViewElement.h
Source/WebCore/svg/animation/SVGSMILElement.h
Source/WebCore/svg/graphics/filters/SVGFEImage.cpp

index b1b5fe1..e4a1e85 100644 (file)
@@ -1,3 +1,15 @@
+2013-08-22  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        [SVG2] Merge SVGStyledElement and SVGElement
+        https://bugs.webkit.org/show_bug.cgi?id=107386
+
+        Reviewed by Andreas Kling.
+
+        Add layout test to validate the SVG2 inheritance model.
+
+        * svg/dom/svg2-inheritance-expected.txt: Added.
+        * svg/dom/svg2-inheritance.html: Added.
+
 2013-08-22  Gavin Barraclough  <barraclough@apple.com>
 
         Error.stack should not be enumerable
diff --git a/LayoutTests/svg/dom/svg2-inheritance-expected.txt b/LayoutTests/svg/dom/svg2-inheritance-expected.txt
new file mode 100644 (file)
index 0000000..e2b6100
--- /dev/null
@@ -0,0 +1,130 @@
+Validates the SVG2 inheritance model.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS SVGAElement inherits SVGGraphicsElement
+PASS SVGAltGlyphDefElement inherits SVGElement
+PASS SVGAltGlyphElement inherits SVGTextPositioningElement
+PASS SVGAltGlyphItemElement inherits SVGElement
+PASS SVGAngle inherits Object
+PASS SVGAnimateColorElement inherits SVGAnimationElement
+PASS SVGAnimateElement inherits SVGAnimationElement
+PASS SVGAnimateMotionElement inherits SVGAnimationElement
+PASS SVGAnimateTransformElement inherits SVGAnimationElement
+PASS SVGAnimatedAngle inherits Object
+PASS SVGAnimatedBoolean inherits Object
+PASS SVGAnimatedEnumeration inherits Object
+PASS SVGAnimatedInteger inherits Object
+PASS SVGAnimatedLength inherits Object
+PASS SVGAnimatedLengthList inherits Object
+PASS SVGAnimatedNumber inherits Object
+PASS SVGAnimatedNumberList inherits Object
+FAIL SVGAnimatedPathData is not defined
+PASS SVGAnimatedPreserveAspectRatio inherits Object
+PASS SVGAnimatedRect inherits Object
+PASS SVGAnimatedString inherits Object
+PASS SVGAnimatedTransformList inherits Object
+PASS SVGAnimationElement inherits SVGElement
+FAIL SVGCSSRule is not defined
+FAIL SVGCircleElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+FAIL SVGClipPathElement should inherit SVGDefinitionElement but got SVGGraphicsElement instead
+FAIL SVGColorProfileElement is not defined
+FAIL SVGColorProfileRule is not defined
+PASS SVGCursorElement inherits SVGElement
+PASS SVGDefsElement inherits SVGGraphicsElement
+PASS SVGDescElement inherits SVGElement
+PASS SVGElement inherits Element
+FAIL SVGElementInstance should inherit EventTarget but got EventTarget instead
+PASS SVGElementInstanceList inherits Object
+FAIL SVGEllipseElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+PASS SVGFontElement inherits SVGElement
+PASS SVGFontFaceElement inherits SVGElement
+PASS SVGFontFaceFormatElement inherits SVGElement
+PASS SVGFontFaceNameElement inherits SVGElement
+PASS SVGFontFaceSrcElement inherits SVGElement
+PASS SVGFontFaceUriElement inherits SVGElement
+PASS SVGForeignObjectElement inherits SVGGraphicsElement
+PASS SVGGElement inherits SVGGraphicsElement
+FAIL SVGGeometryElement is not defined
+PASS SVGGlyphElement inherits SVGElement
+PASS SVGGlyphRefElement inherits SVGElement
+PASS SVGGradientElement inherits SVGElement
+PASS SVGGraphicsElement inherits SVGElement
+PASS SVGHKernElement inherits SVGElement
+PASS SVGImageElement inherits SVGGraphicsElement
+PASS SVGLength inherits Object
+PASS SVGLengthList inherits Object
+FAIL SVGLineElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+PASS SVGLinearGradientElement inherits SVGGradientElement
+PASS SVGMPathElement inherits SVGElement
+PASS SVGMarkerElement inherits SVGElement
+FAIL SVGMarkerInstance is not defined
+FAIL SVGMarkerList is not defined
+FAIL SVGMaskElement should inherit SVGDefinitionElement but got SVGElement instead
+PASS SVGMatrix inherits Object
+FAIL SVGMeshGradientElement is not defined
+FAIL SVGMeshPatchElement is not defined
+FAIL SVGMeshRowElement is not defined
+PASS SVGMetadataElement inherits SVGElement
+PASS SVGMissingGlyphElement inherits SVGElement
+PASS SVGNumber inherits Object
+PASS SVGNumberList inherits Object
+FAIL SVGPathElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+PASS SVGPathSeg inherits Object
+PASS SVGPathSegArcAbs inherits SVGPathSeg
+PASS SVGPathSegArcRel inherits SVGPathSeg
+PASS SVGPathSegClosePath inherits SVGPathSeg
+PASS SVGPathSegCurvetoCubicAbs inherits SVGPathSeg
+PASS SVGPathSegCurvetoCubicRel inherits SVGPathSeg
+PASS SVGPathSegCurvetoCubicSmoothAbs inherits SVGPathSeg
+PASS SVGPathSegCurvetoCubicSmoothRel inherits SVGPathSeg
+PASS SVGPathSegCurvetoQuadraticAbs inherits SVGPathSeg
+PASS SVGPathSegCurvetoQuadraticRel inherits SVGPathSeg
+PASS SVGPathSegCurvetoQuadraticSmoothAbs inherits SVGPathSeg
+PASS SVGPathSegCurvetoQuadraticSmoothRel inherits SVGPathSeg
+PASS SVGPathSegLinetoAbs inherits SVGPathSeg
+PASS SVGPathSegLinetoHorizontalAbs inherits SVGPathSeg
+PASS SVGPathSegLinetoHorizontalRel inherits SVGPathSeg
+PASS SVGPathSegLinetoRel inherits SVGPathSeg
+PASS SVGPathSegLinetoVerticalAbs inherits SVGPathSeg
+PASS SVGPathSegLinetoVerticalRel inherits SVGPathSeg
+PASS SVGPathSegList inherits Object
+PASS SVGPathSegMovetoAbs inherits SVGPathSeg
+PASS SVGPathSegMovetoRel inherits SVGPathSeg
+PASS SVGPatternElement inherits SVGElement
+PASS SVGPoint inherits Object
+PASS SVGPointList inherits Object
+FAIL SVGPolygonElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+FAIL SVGPolylineElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+PASS SVGPreserveAspectRatio inherits Object
+PASS SVGRadialGradientElement inherits SVGGradientElement
+PASS SVGRect inherits Object
+FAIL SVGRectElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
+PASS SVGSVGElement inherits SVGGraphicsElement
+PASS SVGScriptElement inherits SVGElement
+PASS SVGSetElement inherits SVGAnimationElement
+PASS SVGStopElement inherits SVGElement
+PASS SVGStringList inherits Object
+PASS SVGStyleElement inherits SVGElement
+PASS SVGSwitchElement inherits SVGGraphicsElement
+PASS SVGSymbolElement inherits SVGElement
+PASS SVGTRefElement inherits SVGTextPositioningElement
+PASS SVGTSpanElement inherits SVGTextPositioningElement
+PASS SVGTextContentElement inherits SVGGraphicsElement
+PASS SVGTextElement inherits SVGTextPositioningElement
+PASS SVGTextPathElement inherits SVGTextContentElement
+PASS SVGTextPositioningElement inherits SVGTextContentElement
+PASS SVGTitleElement inherits SVGElement
+PASS SVGTransform inherits Object
+PASS SVGTransformList inherits Object
+PASS SVGUseElement inherits SVGGraphicsElement
+PASS SVGVKernElement inherits SVGElement
+PASS SVGViewElement inherits SVGElement
+PASS SVGViewSpec inherits Object
+PASS SVGZoomEvent inherits UIEvent
+FAIL TimeEvent is not defined
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dom/svg2-inheritance.html b/LayoutTests/svg/dom/svg2-inheritance.html
new file mode 100644 (file)
index 0000000..cb6d5b4
--- /dev/null
@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="help" href="http://www.w3.org/TR/2013/WD-SVG2-20130618/" />
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<script>
+description("Validates the SVG2 inheritance model.");
+
+function interfaceName(prototype)
+{
+    var parts = prototype.toString().split(" ");
+    var lastPart = parts[parts.length - 1];
+    return lastPart.substring(0, lastPart.length - 10);
+}
+
+function checkParent(type, expectedParent)
+{
+    // Using shouldBe() would lead to not very readable output here.
+    if (!window[type]) {
+        testFailed(type + " is not defined");
+        return;
+    }
+    var parentPrototype = window[type].prototype.__proto__;
+    var expectedPrototype = window[expectedParent] ? window[expectedParent].prototype : null;
+    
+    if (expectedPrototype && parentPrototype === expectedPrototype)
+        testPassed(type + " inherits " + expectedParent);
+    else
+        testFailed(type + " should inherit " + expectedParent + " but got " + interfaceName(parentPrototype) + " instead");
+}
+
+checkParent("SVGAElement", "SVGGraphicsElement");
+checkParent("SVGAltGlyphDefElement", "SVGElement");
+checkParent("SVGAltGlyphElement", "SVGTextPositioningElement");
+checkParent("SVGAltGlyphItemElement", "SVGElement");
+checkParent("SVGAngle", "Object");
+checkParent("SVGAnimateColorElement", "SVGAnimationElement");
+checkParent("SVGAnimateElement", "SVGAnimationElement");
+checkParent("SVGAnimateMotionElement", "SVGAnimationElement");
+checkParent("SVGAnimateTransformElement", "SVGAnimationElement");
+checkParent("SVGAnimatedAngle", "Object");
+checkParent("SVGAnimatedBoolean", "Object");
+checkParent("SVGAnimatedEnumeration", "Object");
+checkParent("SVGAnimatedInteger", "Object");
+checkParent("SVGAnimatedLength", "Object");
+checkParent("SVGAnimatedLengthList", "Object");
+checkParent("SVGAnimatedNumber", "Object");
+checkParent("SVGAnimatedNumberList", "Object");
+checkParent("SVGAnimatedPathData", "Object");
+checkParent("SVGAnimatedPreserveAspectRatio", "Object");
+checkParent("SVGAnimatedRect", "Object");
+checkParent("SVGAnimatedString", "Object");
+checkParent("SVGAnimatedTransformList", "Object");
+checkParent("SVGAnimationElement", "SVGElement");
+checkParent("SVGCSSRule", "CSSRule");
+checkParent("SVGCircleElement", "SVGGeometryElement");
+checkParent("SVGClipPathElement", "SVGDefinitionElement");
+checkParent("SVGColorProfileElement", "SVGElement");
+checkParent("SVGColorProfileRule", "SVGCSSRule");
+checkParent("SVGCursorElement", "SVGElement");
+checkParent("SVGDefsElement", "SVGGraphicsElement");
+checkParent("SVGDescElement", "SVGElement");
+checkParent("SVGElement", "Element");
+checkParent("SVGElementInstance", "EventTarget");
+checkParent("SVGElementInstanceList", "Object");
+checkParent("SVGEllipseElement", "SVGGeometryElement");
+checkParent("SVGFontElement", "SVGElement");
+checkParent("SVGFontFaceElement", "SVGElement");
+checkParent("SVGFontFaceFormatElement", "SVGElement");
+checkParent("SVGFontFaceNameElement", "SVGElement");
+checkParent("SVGFontFaceSrcElement", "SVGElement");
+checkParent("SVGFontFaceUriElement", "SVGElement");
+checkParent("SVGForeignObjectElement", "SVGGraphicsElement");
+checkParent("SVGGElement", "SVGGraphicsElement");
+checkParent("SVGGeometryElement", "SVGGraphicsElement");
+checkParent("SVGGlyphElement", "SVGElement");
+checkParent("SVGGlyphRefElement", "SVGElement");
+checkParent("SVGGradientElement", "SVGElement");
+checkParent("SVGGraphicsElement", "SVGElement");
+checkParent("SVGHKernElement", "SVGElement");
+checkParent("SVGImageElement", "SVGGraphicsElement");
+checkParent("SVGLength", "Object");
+checkParent("SVGLengthList", "Object");
+checkParent("SVGLineElement", "SVGGeometryElement");
+checkParent("SVGLinearGradientElement", "SVGGradientElement");
+checkParent("SVGMPathElement", "SVGElement");
+checkParent("SVGMarkerElement", "SVGElement");
+checkParent("SVGMarkerInstance", "Object");
+checkParent("SVGMarkerList", "Object");
+checkParent("SVGMaskElement", "SVGDefinitionElement");
+checkParent("SVGMatrix", "Object");
+checkParent("SVGMeshGradientElement", "SVGGradientElement");
+checkParent("SVGMeshPatchElement", "SVGElement");
+checkParent("SVGMeshRowElement", "SVGElement");
+checkParent("SVGMetadataElement", "SVGElement");
+checkParent("SVGMissingGlyphElement", "SVGElement");
+checkParent("SVGNumber", "Object");
+checkParent("SVGNumberList", "Object");
+checkParent("SVGPathElement", "SVGGeometryElement");
+checkParent("SVGPathSeg", "Object");
+checkParent("SVGPathSegArcAbs", "SVGPathSeg");
+checkParent("SVGPathSegArcRel", "SVGPathSeg");
+checkParent("SVGPathSegClosePath", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoCubicAbs", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoCubicRel", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoCubicSmoothAbs", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoCubicSmoothRel", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoQuadraticAbs", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoQuadraticRel", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoQuadraticSmoothAbs", "SVGPathSeg");
+checkParent("SVGPathSegCurvetoQuadraticSmoothRel", "SVGPathSeg");
+checkParent("SVGPathSegLinetoAbs", "SVGPathSeg");
+checkParent("SVGPathSegLinetoHorizontalAbs", "SVGPathSeg");
+checkParent("SVGPathSegLinetoHorizontalRel", "SVGPathSeg");
+checkParent("SVGPathSegLinetoRel", "SVGPathSeg");
+checkParent("SVGPathSegLinetoVerticalAbs", "SVGPathSeg");
+checkParent("SVGPathSegLinetoVerticalRel", "SVGPathSeg");
+checkParent("SVGPathSegList", "Object");
+checkParent("SVGPathSegMovetoAbs", "SVGPathSeg");
+checkParent("SVGPathSegMovetoRel", "SVGPathSeg");
+checkParent("SVGPatternElement", "SVGElement");
+checkParent("SVGPoint", "Object");
+checkParent("SVGPointList", "Object");
+checkParent("SVGPolygonElement", "SVGGeometryElement");
+checkParent("SVGPolylineElement", "SVGGeometryElement");
+checkParent("SVGPreserveAspectRatio", "Object");
+checkParent("SVGRadialGradientElement", "SVGGradientElement");
+checkParent("SVGRect", "Object");
+checkParent("SVGRectElement", "SVGGeometryElement");
+checkParent("SVGSVGElement", "SVGGraphicsElement");
+checkParent("SVGScriptElement", "SVGElement");
+checkParent("SVGSetElement", "SVGAnimationElement");
+checkParent("SVGStopElement", "SVGElement");
+checkParent("SVGStringList", "Object");
+checkParent("SVGStyleElement", "SVGElement");
+checkParent("SVGSwitchElement", "SVGGraphicsElement");
+checkParent("SVGSymbolElement", "SVGElement");
+checkParent("SVGTRefElement", "SVGTextPositioningElement");
+checkParent("SVGTSpanElement", "SVGTextPositioningElement");
+checkParent("SVGTextContentElement", "SVGGraphicsElement");
+checkParent("SVGTextElement", "SVGTextPositioningElement");
+checkParent("SVGTextPathElement", "SVGTextContentElement");
+checkParent("SVGTextPositioningElement", "SVGTextContentElement");
+checkParent("SVGTitleElement", "SVGElement");
+checkParent("SVGTransform", "Object");
+checkParent("SVGTransformList", "Object");
+checkParent("SVGUseElement", "SVGGraphicsElement");
+checkParent("SVGVKernElement", "SVGElement");
+checkParent("SVGViewElement", "SVGElement");
+checkParent("SVGViewSpec", "Object");
+checkParent("SVGZoomEvent", "UIEvent");
+checkParent("TimeEvent", "Event");
+</script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
index f296b1b..26561f0 100644 (file)
@@ -731,7 +731,6 @@ set(WebCore_SVG_IDL_FILES
     svg/SVGStopElement.idl
     svg/SVGStringList.idl
     svg/SVGStyleElement.idl
-    svg/SVGStyledElement.idl
     svg/SVGSwitchElement.idl
     svg/SVGSymbolElement.idl
     svg/SVGTRefElement.idl
@@ -2455,7 +2454,6 @@ set(WebCore_SOURCES
     svg/SVGStopElement.cpp
     svg/SVGStringList.cpp
     svg/SVGStyleElement.cpp
-    svg/SVGStyledElement.cpp
     svg/SVGSwitchElement.cpp
     svg/SVGSymbolElement.cpp
     svg/SVGTRefElement.cpp
index fec8f1a..efcf657 100644 (file)
@@ -1,3 +1,261 @@
+2013-08-22  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        [SVG2] Merge SVGStyledElement and SVGElement
+        https://bugs.webkit.org/show_bug.cgi?id=107386
+
+        Reviewed by Andreas Kling.
+
+        Merge SVGStyledElement into SVGElement to simplify the SVG inheritance
+        model and match the SVG2 specification:
+        https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGElement
+
+        Test: svg/dom/svg2-inheritance.html
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * DerivedSources.pri:
+        * GNUmakefile.list.am:
+        * Target.pri:
+        * WebCore.order:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::alternativeText):
+        (WebCore::AccessibilityNodeObject::accessibilityDescription):
+        * css/SVGCSSStyleSelector.cpp:
+        * rendering/style/SVGRenderStyle.cpp:
+        * rendering/svg/RenderSVGContainer.cpp:
+        (WebCore::RenderSVGContainer::RenderSVGContainer):
+        * rendering/svg/RenderSVGContainer.h:
+        * rendering/svg/RenderSVGHiddenContainer.cpp:
+        (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
+        * rendering/svg/RenderSVGHiddenContainer.h:
+        * rendering/svg/RenderSVGModelObject.cpp:
+        (WebCore::RenderSVGModelObject::RenderSVGModelObject):
+        (WebCore::getElementCTM):
+        * rendering/svg/RenderSVGModelObject.h:
+        * rendering/svg/RenderSVGResourceClipper.cpp:
+        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
+        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
+        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
+        * rendering/svg/RenderSVGResourceContainer.cpp:
+        (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
+        * rendering/svg/RenderSVGResourceContainer.h:
+        * rendering/svg/RenderSVGResourceFilter.cpp:
+        * rendering/svg/RenderSVGResourceFilterPrimitive.h:
+        * rendering/svg/RenderSVGResourceMarker.cpp:
+        * rendering/svg/RenderSVGResourceMarker.h:
+        * rendering/svg/RenderSVGResourceMasker.cpp:
+        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
+        (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
+        * rendering/svg/RenderSVGResourcePattern.cpp:
+        (WebCore::RenderSVGResourcePattern::createTileImage):
+        * rendering/svg/RenderSVGRoot.cpp:
+        (WebCore::RenderSVGRoot::RenderSVGRoot):
+        * rendering/svg/RenderSVGRoot.h:
+        * rendering/svg/RenderSVGViewportContainer.cpp:
+        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
+        * rendering/svg/RenderSVGViewportContainer.h:
+        * rendering/svg/SVGRenderSupport.cpp:
+        (WebCore::SVGRenderSupport::layoutChildren):
+        * rendering/svg/SVGRenderTreeAsText.cpp:
+        * rendering/svg/SVGResources.cpp:
+        (WebCore::registerPendingResource):
+        * rendering/svg/SVGResourcesCache.cpp:
+        * svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::title):
+        * svg/SVGAllInOne.cpp:
+        * svg/SVGAltGlyphDefElement.h:
+        * svg/SVGAltGlyphItemElement.h:
+        * svg/SVGAnimateElement.cpp:
+        * svg/SVGAnimatedType.cpp:
+        (WebCore::SVGAnimatedType::valueAsString):
+        (WebCore::SVGAnimatedType::setValueAsString):
+        * svg/SVGAnimationElement.cpp:
+        (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
+        (WebCore::SVGAnimationElement::computeCSSPropertyValue):
+        (WebCore::SVGAnimationElement::adjustForInheritance):
+        (WebCore::inheritsFromProperty):
+        * svg/SVGComponentTransferFunctionElement.h:
+        * svg/SVGCursorElement.h:
+        * svg/SVGDescElement.cpp:
+        (WebCore::SVGDescElement::SVGDescElement):
+        * svg/SVGDescElement.h:
+        * svg/SVGDescElement.idl:
+        * svg/SVGElement.cpp:
+        (WebCore::mapAttributeToCSSProperty):
+        (WebCore::cssPropertyToTypeMap):
+        (WebCore::SVGElement::SVGElement):
+        (WebCore::SVGElement::~SVGElement):
+        (WebCore::SVGElement::removedFrom):
+        (WebCore::SVGElement::parseAttribute):
+        (WebCore::SVGElement::animatedPropertyTypeForAttribute):
+        (WebCore::collectInstancesForSVGElement):
+        (WebCore::SVGElement::isAnimatableAttribute):
+        (WebCore::SVGElement::title):
+        (WebCore::SVGElement::rendererIsNeeded):
+        (WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
+        (WebCore::SVGElement::isAnimatableCSSProperty):
+        (WebCore::SVGElement::isPresentationAttribute):
+        (WebCore::SVGElement::collectStyleForPresentationAttribute):
+        (WebCore::SVGElement::isKnownAttribute):
+        (WebCore::SVGElement::svgAttributeChanged):
+        (WebCore::SVGElement::insertedInto):
+        (WebCore::SVGElement::buildPendingResourcesIfNeeded):
+        (WebCore::SVGElement::childrenChanged):
+        (WebCore::SVGElement::getPresentationAttribute):
+        (WebCore::SVGElement::instanceUpdatesBlocked):
+        (WebCore::SVGElement::setInstanceUpdatesBlocked):
+        (WebCore::SVGElement::localCoordinateSpaceTransform):
+        (WebCore::SVGElement::updateRelativeLengthsInformation):
+        (WebCore::SVGElement::isMouseFocusable):
+        (WebCore::SVGElement::isKeyboardFocusable):
+        * svg/SVGElement.h:
+        (WebCore::SVGElement::supportsMarkers):
+        (WebCore::SVGElement::hasRelativeLengths):
+        (WebCore::SVGElement::needsPendingResourceHandling):
+        (WebCore::SVGElement::selfHasRelativeLengths):
+        (WebCore::SVGElement::updateRelativeLengthsInformation):
+        * svg/SVGElement.idl:
+        * svg/SVGElementInstance.cpp:
+        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
+        (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
+        * svg/SVGElementInstance.h:
+        * svg/SVGFEBlendElement.idl:
+        * svg/SVGFEColorMatrixElement.idl:
+        * svg/SVGFEComponentTransferElement.idl:
+        * svg/SVGFECompositeElement.idl:
+        * svg/SVGFEConvolveMatrixElement.idl:
+        * svg/SVGFEDiffuseLightingElement.idl:
+        * svg/SVGFEDisplacementMapElement.idl:
+        * svg/SVGFEDropShadowElement.idl:
+        * svg/SVGFEFloodElement.idl:
+        * svg/SVGFEGaussianBlurElement.idl:
+        * svg/SVGFEImageElement.idl:
+        * svg/SVGFELightElement.h:
+        * svg/SVGFEMergeElement.idl:
+        * svg/SVGFEMergeNodeElement.h:
+        * svg/SVGFEMorphologyElement.idl:
+        * svg/SVGFEOffsetElement.idl:
+        * svg/SVGFESpecularLightingElement.idl:
+        * svg/SVGFETileElement.idl:
+        * svg/SVGFETurbulenceElement.idl:
+        * svg/SVGFilterElement.cpp:
+        (WebCore::SVGFilterElement::SVGFilterElement):
+        (WebCore::SVGFilterElement::parseAttribute):
+        (WebCore::SVGFilterElement::svgAttributeChanged):
+        (WebCore::SVGFilterElement::childrenChanged):
+        * svg/SVGFilterElement.h:
+        * svg/SVGFilterElement.idl:
+        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
+        (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
+        (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
+        (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
+        (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
+        * svg/SVGFilterPrimitiveStandardAttributes.h:
+        * svg/SVGFontElement.cpp:
+        (WebCore::SVGFontElement::SVGFontElement):
+        * svg/SVGFontElement.h:
+        * svg/SVGFontFaceElement.cpp:
+        * svg/SVGFontFaceElement.h:
+        * svg/SVGFontFaceFormatElement.h:
+        * svg/SVGFontFaceNameElement.h:
+        * svg/SVGFontFaceSrcElement.h:
+        * svg/SVGFontFaceUriElement.h:
+        * svg/SVGGElement.cpp:
+        (WebCore::SVGGElement::rendererIsNeeded):
+        * svg/SVGGlyphElement.cpp:
+        (WebCore::SVGGlyphElement::SVGGlyphElement):
+        (WebCore::SVGGlyphElement::parseAttribute):
+        (WebCore::SVGGlyphElement::insertedInto):
+        (WebCore::SVGGlyphElement::removedFrom):
+        * svg/SVGGlyphElement.h:
+        * svg/SVGGlyphRefElement.cpp:
+        (WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
+        (WebCore::SVGGlyphRefElement::parseAttribute):
+        * svg/SVGGlyphRefElement.h:
+        * svg/SVGGlyphRefElement.idl:
+        * svg/SVGGradientElement.cpp:
+        (WebCore::SVGGradientElement::SVGGradientElement):
+        (WebCore::SVGGradientElement::parseAttribute):
+        (WebCore::SVGGradientElement::svgAttributeChanged):
+        (WebCore::SVGGradientElement::childrenChanged):
+        * svg/SVGGradientElement.h:
+        * svg/SVGGradientElement.idl:
+        * svg/SVGGraphicsElement.cpp:
+        (WebCore::SVGGraphicsElement::SVGGraphicsElement):
+        (WebCore::SVGGraphicsElement::parseAttribute):
+        (WebCore::SVGGraphicsElement::svgAttributeChanged):
+        * svg/SVGGraphicsElement.h:
+        * svg/SVGGraphicsElement.idl:
+        * svg/SVGLocatable.cpp:
+        (WebCore::SVGLocatable::computeCTM):
+        * svg/SVGMPathElement.h:
+        * svg/SVGMarkerElement.cpp:
+        (WebCore::SVGMarkerElement::SVGMarkerElement):
+        (WebCore::SVGMarkerElement::parseAttribute):
+        (WebCore::SVGMarkerElement::svgAttributeChanged):
+        (WebCore::SVGMarkerElement::childrenChanged):
+        * svg/SVGMarkerElement.h:
+        * svg/SVGMarkerElement.idl:
+        * svg/SVGMaskElement.cpp:
+        (WebCore::SVGMaskElement::SVGMaskElement):
+        (WebCore::SVGMaskElement::parseAttribute):
+        (WebCore::SVGMaskElement::svgAttributeChanged):
+        (WebCore::SVGMaskElement::childrenChanged):
+        * svg/SVGMaskElement.h:
+        * svg/SVGMaskElement.idl:
+        * svg/SVGMetadataElement.h:
+        * svg/SVGMissingGlyphElement.cpp:
+        (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
+        * svg/SVGMissingGlyphElement.h:
+        * svg/SVGMissingGlyphElement.idl:
+        * svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::SVGPatternElement):
+        (WebCore::SVGPatternElement::parseAttribute):
+        (WebCore::SVGPatternElement::svgAttributeChanged):
+        (WebCore::SVGPatternElement::childrenChanged):
+        * svg/SVGPatternElement.h:
+        * svg/SVGPatternElement.idl:
+        * svg/SVGScriptElement.h:
+        * svg/SVGStopElement.cpp:
+        (WebCore::SVGStopElement::SVGStopElement):
+        (WebCore::SVGStopElement::parseAttribute):
+        (WebCore::SVGStopElement::svgAttributeChanged):
+        * svg/SVGStopElement.h:
+        * svg/SVGStopElement.idl:
+        * svg/SVGStyleElement.h:
+        * svg/SVGStyledElement.cpp: Removed.
+        * svg/SVGStyledElement.h: Removed.
+        * svg/SVGStyledElement.idl: Removed.
+        * svg/SVGSymbolElement.cpp:
+        (WebCore::SVGSymbolElement::SVGSymbolElement):
+        (WebCore::SVGSymbolElement::parseAttribute):
+        (WebCore::SVGSymbolElement::svgAttributeChanged):
+        * svg/SVGSymbolElement.h:
+        * svg/SVGSymbolElement.idl:
+        * svg/SVGTRefElement.cpp:
+        (WebCore::SVGTRefElement::insertedInto):
+        (WebCore::SVGTRefElement::removedFrom):
+        * svg/SVGTitleElement.cpp:
+        (WebCore::SVGTitleElement::SVGTitleElement):
+        (WebCore::SVGTitleElement::insertedInto):
+        * svg/SVGTitleElement.h:
+        * svg/SVGTitleElement.idl:
+        * svg/SVGTransformable.cpp:
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::selfHasRelativeLengths):
+        * svg/SVGViewElement.cpp:
+        (WebCore::SVGViewElement::SVGViewElement):
+        (WebCore::SVGViewElement::parseAttribute):
+        * svg/SVGViewElement.h:
+        * svg/animation/SVGSMILElement.h:
+        * svg/graphics/filters/SVGFEImage.cpp:
+        (WebCore::FEImage::platformApplySoftware):
+
 2013-08-22  Andreas Kling  <akling@apple.com>
 
         FrameLoader::history() should return a reference.
index d0f9e93..da471fe 100644 (file)
 #include "JSSVGStopElement.cpp"
 #include "JSSVGStringList.cpp"
 #include "JSSVGStyleElement.cpp"
-#include "JSSVGStyledElement.cpp"
 #include "JSSVGSwitchElement.cpp"
 #include "JSSVGSymbolElement.cpp"
 #include "JSSVGTextContentElement.cpp"
index f1977c3..9b5bba4 100644 (file)
@@ -587,7 +587,6 @@ BINDING_IDLS = \
     $(WebCore)/svg/SVGStopElement.idl \
     $(WebCore)/svg/SVGStringList.idl \
     $(WebCore)/svg/SVGStyleElement.idl \
-    $(WebCore)/svg/SVGStyledElement.idl \
     $(WebCore)/svg/SVGSwitchElement.idl \
     $(WebCore)/svg/SVGSymbolElement.idl \
     $(WebCore)/svg/SVGTRefElement.idl \
index 2cd4355..37db4fc 100644 (file)
@@ -612,7 +612,6 @@ enable?(SVG) {
     $$PWD/svg/SVGStopElement.idl \
     $$PWD/svg/SVGStringList.idl \
     $$PWD/svg/SVGStyleElement.idl \
-    $$PWD/svg/SVGStyledElement.idl \
     $$PWD/svg/SVGSVGElement.idl \
     $$PWD/svg/SVGSwitchElement.idl \
     $$PWD/svg/SVGSymbolElement.idl \
index 3a74127..4a0164e 100644 (file)
@@ -1140,8 +1140,6 @@ webcore_svg_built_sources += \
        DerivedSources/WebCore/JSSVGStringList.h \
        DerivedSources/WebCore/JSSVGStyleElement.cpp \
        DerivedSources/WebCore/JSSVGStyleElement.h \
-       DerivedSources/WebCore/JSSVGStyledElement.cpp \
-       DerivedSources/WebCore/JSSVGStyledElement.h \
        DerivedSources/WebCore/JSSVGSVGElement.cpp \
        DerivedSources/WebCore/JSSVGSVGElement.h \
        DerivedSources/WebCore/JSSVGSwitchElement.cpp \
@@ -1729,7 +1727,6 @@ dom_binding_idls += \
        $(WebCore)/svg/SVGStopElement.idl \
        $(WebCore)/svg/SVGStringList.idl \
        $(WebCore)/svg/SVGStyleElement.idl \
-       $(WebCore)/svg/SVGStyledElement.idl \
        $(WebCore)/svg/SVGSwitchElement.idl \
        $(WebCore)/svg/SVGSymbolElement.idl \
        $(WebCore)/svg/SVGTRefElement.idl \
@@ -5272,8 +5269,6 @@ webcore_svg_sources += \
        Source/WebCore/svg/SVGStringList.h \
        Source/WebCore/svg/SVGStyleElement.cpp \
        Source/WebCore/svg/SVGStyleElement.h \
-       Source/WebCore/svg/SVGStyledElement.cpp \
-       Source/WebCore/svg/SVGStyledElement.h \
        Source/WebCore/svg/SVGSVGElement.cpp \
        Source/WebCore/svg/SVGSVGElement.h \
        Source/WebCore/svg/SVGSwitchElement.cpp \
index 3766e05..38fcc39 100644 (file)
@@ -2794,7 +2794,6 @@ HEADERS += \
     svg/SVGStopElement.h \
     svg/SVGStringList.h \
     svg/SVGStyleElement.h \
-    svg/SVGStyledElement.h \
     svg/SVGSVGElement.h \
     svg/SVGSwitchElement.h \
     svg/SVGSymbolElement.h \
@@ -3861,7 +3860,6 @@ enable?(SVG) {
         svg/SVGStopElement.cpp \
         svg/SVGStringList.cpp \
         svg/SVGStyleElement.cpp \
-        svg/SVGStyledElement.cpp \
         svg/SVGSwitchElement.cpp \
         svg/SVGSymbolElement.cpp \
         svg/SVGTRefElement.cpp \
index cedcf9d..caf8ddd 100644 (file)
@@ -9947,7 +9947,6 @@ __ZN7WebCore13SVGSVGElement6createERKNS_13QualifiedNameEPNS_8DocumentE
 __ZN7WebCore13SVGSVGElementC1ERKNS_13QualifiedNameEPNS_8DocumentE
 __ZN7WebCore29SVGStyledTransformableElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
 __ZN7WebCore25SVGStyledLocatableElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
-__ZN7WebCore16SVGStyledElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
 __ZN7WebCore10SVGElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
 __ZN7WebCore25SVGAttributeToPropertyMap11addPropertyEPKNS_15SVGPropertyInfoE
 __ZN3WTF6VectorIPKN7WebCore15SVGPropertyInfoELm0ENS_15CrashOnOverflowEE14expandCapacityEmPKS4_
@@ -9956,7 +9955,7 @@ __ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6
 __ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6VectorIPKNS1_15SVGPropertyInfoELm0ENS_15CrashOnOverflowEEEEEEENS_24KeyValuePairKeyExtractorISC_EENS1_17QualifiedNameHashENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSH_ISB_EEEESI_E3addINS_17HashMapTranslatorISK_SF_EES2_NS_10PassOwnPtrISA_EEEENS_18HashTableAddResultINS_17HashTableIteratorIS2_SC_SE_SF_SK_SI_EEEERKT0_RKT1_
 __ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6VectorIPKNS1_15SVGPropertyInfoELm0ENS_15CrashOnOverflowEEEEEEENS_24KeyValuePairKeyExtractorISC_EENS1_17QualifiedNameHashENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSH_ISB_EEEESI_E6lookupINS_22IdentityHashTranslatorISF_EES2_EEPSC_RKT0_
 __ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6VectorIPKNS1_15SVGPropertyInfoELm0ENS_15CrashOnOverflowEEEEEEENS_24KeyValuePairKeyExtractorISC_EENS1_17QualifiedNameHashENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSH_ISB_EEEESI_E6rehashEi
-__ZN7WebCore16SVGStyledElement22attributeToPropertyMapEv
+__ZN7WebCore16SVGElement22attributeToPropertyMapEv
 __ZN7WebCore25SVGAttributeToPropertyMap13addPropertiesERKS0_
 __ZN7WebCore8SVGTestsC2Ev
 __ZN7WebCore11parseNumberERPKtS1_Rfb
@@ -9966,8 +9965,8 @@ __ZN7WebCore17SMILTimeContainerC1EPNS_13SVGSVGElementE
 __ZN7WebCore29SVGStyledTransformableElement22attributeToPropertyMapEv
 __ZN7WebCore8SVGTests22attributeToPropertyMapEv
 __ZN7WebCore10SVGElement16attributeChangedERKNS_13QualifiedNameERKN3WTF12AtomicStringENS_7Element27AttributeModificationReasonE
-__ZNK7WebCore16SVGStyledElement23isPresentationAttributeERKNS_13QualifiedNameE
-__ZN7WebCore16SVGStyledElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameE
+__ZNK7WebCore16SVGElement23isPresentationAttributeERKNS_13QualifiedNameE
+__ZN7WebCore16SVGElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameE
 __ZN3WTF9HashTableIPNS_16AtomicStringImplENS_12KeyValuePairIS2_N7WebCore13CSSPropertyIDEEENS_24KeyValuePairKeyExtractorIS6_EENS_7PtrHashIS2_EENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSC_IS5_EEEESD_E16lookupForWritingINS_22IdentityHashTranslatorISA_EES2_EENSt3__14pairIPS6_bEERKT0_
 __ZN3WTF9HashTableIPNS_16AtomicStringImplENS_12KeyValuePairIS2_N7WebCore13CSSPropertyIDEEENS_24KeyValuePairKeyExtractorIS6_EENS_7PtrHashIS2_EENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSC_IS5_EEEESD_E3addINS_17HashMapTranslatorISF_SA_EES2_S5_EENS_18HashTableAddResultINS_17HashTableIteratorIS2_S6_S8_SA_SF_SD_EEEERKT0_RKT1_
 __ZN3WTF9HashTableIPNS_16AtomicStringImplENS_12KeyValuePairIS2_N7WebCore13CSSPropertyIDEEENS_24KeyValuePairKeyExtractorIS6_EENS_7PtrHashIS2_EENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSC_IS5_EEEESD_E6lookupINS_22IdentityHashTranslatorISA_EES2_EEPS6_RKT0_
@@ -9991,24 +9990,24 @@ __ZNK7WebCore13SVGSVGElement5widthEv
 __ZN7WebCore13SVGSVGElement17widthPropertyInfoEv
 __ZNK7WebCore13SVGSVGElement6heightEv
 __ZN7WebCore13SVGSVGElement18heightPropertyInfoEv
-__ZN7WebCore16SVGStyledElement32updateRelativeLengthsInformationEbPS0_
+__ZN7WebCore16SVGElement32updateRelativeLengthsInformationEbPS0_
 __ZN7WebCore15SVGFitToViewBox16isKnownAttributeERKNS_13QualifiedNameE
 __ZN7WebCore8SVGTests21handleAttributeChangeEPNS_10SVGElementERKNS_13QualifiedNameE
 __ZN7WebCore18SVGElementInstance31invalidateAllInstancesOfElementEPNS_10SVGElementE
 __ZN7WebCore16HTMLElementStack22isHTMLIntegrationPointEPNS_13HTMLStackItemE
 __ZN7WebCore16HTMLElementStack28isMathMLTextIntegrationPointEPNS_13HTMLStackItemE
 __ZN7WebCore13SVGSVGElement12insertedIntoEPNS_13ContainerNodeE
-__ZN7WebCore16SVGStyledElement12insertedIntoEPNS_13ContainerNodeE
-__ZN7WebCore16SVGStyledElement29buildPendingResourcesIfNeededEv
-__ZNK7WebCore16SVGStyledElement28needsPendingResourceHandlingEv
+__ZN7WebCore16SVGElement12insertedIntoEPNS_13ContainerNodeE
+__ZN7WebCore16SVGElement29buildPendingResourcesIfNeededEv
+__ZNK7WebCore16SVGElement28needsPendingResourceHandlingEv
 __ZN7WebCore15HTMLTreeBuilder28processTokenInForeignContentEPNS_15AtomicHTMLTokenE
-__ZN7WebCore16SVGStyledElement15childrenChangedEbPNS_4NodeES2_i
+__ZN7WebCore16SVGElement15childrenChangedEbPNS_4NodeES2_i
 __ZN7WebCoreL20adjustSVGTagNameCaseEPNS_15AtomicHTMLTokenE
 __ZN7WebCore8SVGNames10getSVGTagsEv
 __ZN7WebCoreL12gConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
 __ZN7WebCore11SVGGElement6createERKNS_13QualifiedNameEPNS_8DocumentE
 __ZN7WebCoreL40registerAnimatedPropertiesForSVGGElementEv
-__ZNK7WebCore16SVGStyledElement22selfHasRelativeLengthsEv
+__ZNK7WebCore16SVGElement22selfHasRelativeLengthsEv
 __ZN7WebCoreL17circleConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
 __ZN7WebCore16SVGCircleElement6createERKNS_13QualifiedNameEPNS_8DocumentE
 __ZN7WebCore16SVGCircleElementC1ERKNS_13QualifiedNameEPNS_8DocumentE
@@ -10032,10 +10031,10 @@ __ZN7WebCore16SVGCircleElement14cyPropertyInfoEv
 __ZNK7WebCore16SVGCircleElement1rEv
 __ZN7WebCore16SVGCircleElement13rPropertyInfoEv
 __ZN7WebCore29SVGStyledTransformableElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
-__ZN7WebCore16SVGStyledElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
+__ZN7WebCore16SVGElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
 __ZN7WebCore29SVGStyledTransformableElement19svgAttributeChangedERKNS_13QualifiedNameE
-__ZN7WebCore16SVGStyledElement19svgAttributeChangedERKNS_13QualifiedNameE
-__ZNK7WebCore16SVGStyledElement9classNameEv
+__ZN7WebCore16SVGElement19svgAttributeChangedERKNS_13QualifiedNameE
+__ZNK7WebCore16SVGElement9classNameEv
 __ZN7WebCore10SVGElement21finishParsingChildrenEv
 __ZNK7WebCore10SVGElement24isOutermostSVGSVGElementEv
 __ZN7WebCore10SVGElement26sendSVGLoadEventIfPossibleEb
@@ -10153,7 +10152,7 @@ __ZN7WebCore16HTMLStyleElement11removedFromEPNS_13ContainerNodeE
 __ZN7WebCore15HTMLFormElement11removedFromEPNS_13ContainerNodeE
 __ZN7WebCore21FormAssociatedElement19formRemovedFromTreeEPKNS_4NodeE
 __ZN7WebCore13SVGSVGElement11removedFromEPNS_13ContainerNodeE
-__ZN7WebCore16SVGStyledElement11removedFromEPNS_13ContainerNodeE
+__ZN7WebCore16SVGElement11removedFromEPNS_13ContainerNodeE
 __ZN7WebCore10SVGElement11removedFromEPNS_13ContainerNodeE
 __ZN7WebCore14SVGPathElement11removedFromEPNS_13ContainerNodeE
 __ZN7WebCore15HTMLFormElement37copyNonAttributePropertiesFromElementERKNS_7ElementE
@@ -10166,8 +10165,8 @@ __ZNK7WebCore17SMILTimeContainer9isStartedEv
 __ZN7WebCore17SMILTimeContainer5beginEv
 __ZN7WebCore17SMILTimeContainer16updateAnimationsENS_8SMILTimeEb
 __ZNK7WebCore21SVGDocumentExtensions18hasPendingResourceERKN3WTF12AtomicStringE
-__ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E3addINS_22IdentityHashTranslatorIS6_EES3_S3_EENS_18HashTableAddResultINS_17HashTableIteratorIS3_S3_S4_S6_S8_S8_EEEERKT0_RKT1_
-__ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6rehashEi
+__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E3addINS_22IdentityHashTranslatorIS6_EES3_S3_EENS_18HashTableAddResultINS_17HashTableIteratorIS3_S3_S4_S6_S8_S8_EEEERKT0_RKT1_
+__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6rehashEi
 __ZN7WebCore21jsHTMLElementChildrenEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
 __ZN7WebCore16JSHTMLCollection6createEPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_14HTMLCollectionEEE
 __ZN7WebCore16JSHTMLCollectionC1EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_14HTMLCollectionEEE
@@ -10505,7 +10504,7 @@ __ZNK7WebCore11RenderVideo27computeReplacedLogicalWidthENS_22ShouldComputePrefer
 __ZNK7WebCore11RenderVideo28computeReplacedLogicalHeightEv
 __ZN7WebCore27backgroundPositionShorthandEv
 __ZN7WebCore13SVGSVGElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
-__ZN7WebCore13RenderSVGRootC1EPNS_16SVGStyledElementE
+__ZN7WebCore13RenderSVGRootC1EPNS_16SVGElementE
 __ZN7WebCore13RenderSVGRoot15styleWillChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
 __ZN7WebCore13RenderSVGRoot14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
 __ZNK7WebCore13RenderSVGRoot9isSVGRootEv
@@ -10515,11 +10514,11 @@ __ZNK7WebCore13RenderSVGRoot15canHaveChildrenEv
 __ZNK7WebCore10SVGElement25childShouldCreateRendererERKNS_20NodeRenderingContextE
 __ZNK7WebCore14SVGPolyElement7isValidEv
 __ZNK7WebCore8SVGTests7isValidEv
-__ZN7WebCore16SVGStyledElement36collectStyleForPresentationAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringEPNS_23MutableStylePropertySetE
+__ZN7WebCore16SVGElement36collectStyleForPresentationAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringEPNS_23MutableStylePropertySetE
 __ZN7WebCore14SVGRenderStyle12setFillPaintENS_8SVGPaint12SVGPaintTypeERKNS_5ColorERKN3WTF6StringEbb
 __ZN7WebCore7DataRefINS_13StyleFillDataEE6accessEv
 __ZN7WebCore13StyleFillDataC1ERKS0_
-__ZN7WebCore16SVGStyledElement16rendererIsNeededERKNS_20NodeRenderingContextE
+__ZN7WebCore16SVGElement16rendererIsNeededERKNS_20NodeRenderingContextE
 __ZN7WebCore29SVGStyledTransformableElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
 __ZN7WebCore13RenderSVGPathC1EPNS_29SVGStyledTransformableElementE
 __ZN7WebCore20RenderSVGModelObject15styleWillChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
@@ -10548,13 +10547,13 @@ __ZNK7WebCore14SVGPathElement7isValidEv
 __ZN7WebCore14SVGPathElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
 __ZNK7WebCore14SVGDefsElement7isValidEv
 __ZN7WebCore14SVGDefsElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
-__ZN7WebCore24RenderSVGHiddenContainerC1EPNS_16SVGStyledElementE
+__ZN7WebCore24RenderSVGHiddenContainerC1EPNS_16SVGElementE
 __ZNK7WebCore18RenderSVGContainer14isSVGContainerEv
 __ZNK7WebCore18RenderSVGContainer15virtualChildrenEv
 __ZNK7WebCore10SVGElement7isValidEv
 __ZN7WebCore24SVGLinearGradientElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
 __ZN7WebCore31RenderSVGResourceLinearGradientC1EPNS_24SVGLinearGradientElementE
-__ZN7WebCore26RenderSVGResourceContainerC2EPNS_16SVGStyledElementE
+__ZN7WebCore26RenderSVGResourceContainerC2EPNS_16SVGElementE
 __ZN7WebCore24LinearGradientAttributesC2Ev
 __ZN7WebCore26RenderSVGResourceContainer14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
 __ZN7WebCore26RenderSVGResourceContainer16registerResourceEv
@@ -10671,7 +10670,7 @@ __ZN7WebCore13SVGSVGElement31preserveAspectRatioPropertyInfoEv
 __ZN7WebCore15SVGFitToViewBox22viewBoxToViewTransformERKNS_9FloatRectERKNS_22SVGPreserveAspectRatioEff
 __ZN7WebCore16SVGRenderSupport14layoutChildrenEPNS_12RenderObjectEb
 __ZN7WebCore13RenderSVGRoot21needsBoundariesUpdateEv
-__ZNK7WebCore16SVGStyledElement18isSVGStyledElementEv
+__ZNK7WebCore16SVGElement18isSVGElementEv
 __ZN7WebCore14RenderSVGShape6layoutEv
 __ZN7WebCore13RenderSVGPath22updateShapeFromElementEv
 __ZN7WebCore14RenderSVGShape22updateShapeFromElementEv
@@ -11189,8 +11188,8 @@ __ZNK7WebCore19CachedCSSStyleSheet13purgePriorityEv
 __ZN7WebCore15PurgeableBuffer13makePurgeableEb
 __ZN7WebCore9ClassListD0Ev
 __ZN7WebCore12StyleElement19removedFromDocumentEPNS_8DocumentEPNS_7ElementE
-__ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6lookupINS_22IdentityHashTranslatorIS6_EES3_EEPS3_RKT0_
-__ZN3WTF7HashSetIPN7WebCore16SVGStyledElementENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE6removeERKS3_
+__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6lookupINS_22IdentityHashTranslatorIS6_EES3_EEPS3_RKT0_
+__ZN3WTF7HashSetIPN7WebCore16SVGElementENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE6removeERKS3_
 __ZN7WebCore19CachedCSSStyleSheetD0Ev
 __ZN7WebCore19CachedCSSStyleSheetD2Ev
 __ZThn48_N7WebCore8DOMTimer16contextDestroyedEv
@@ -11361,22 +11360,22 @@ __ZN7WebCore18createJSSVGWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEN3WTF1
 __ZN7WebCoreL26createSVGSVGElementWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_10SVGElementEEE
 __ZN7WebCore15getDOMStructureINS_15JSSVGSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
 __ZN7WebCore15JSSVGSVGElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
-__ZN7WebCore27JSSVGStyledElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
-__ZN7WebCore15getDOMStructureINS_18JSSVGStyledElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
-__ZN7WebCore18JSSVGStyledElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
+__ZN7WebCore27JSSVGElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
+__ZN7WebCore15getDOMStructureINS_18JSSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
+__ZN7WebCore18JSSVGElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
 __ZN7WebCore21JSSVGElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
 __ZN7WebCore15getDOMStructureINS_12JSSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
 __ZN7WebCore12JSSVGElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
 __ZN7WebCore15JSSVGSVGElement6createEPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_13SVGSVGElementEEE
 __ZN7WebCore15JSSVGSVGElementC1EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_13SVGSVGElementEEE
-__ZN7WebCore18JSSVGStyledElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_16SVGStyledElementEEE
+__ZN7WebCore18JSSVGElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_16SVGElementEEE
 __ZN7WebCore12JSSVGElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_10SVGElementEEE
 __ZN7WebCore15JSSVGSVGElement14finishCreationERN3JSC2VME
-__ZN7WebCore18JSSVGStyledElement14finishCreationERN3JSC2VME
+__ZN7WebCore18JSSVGElement14finishCreationERN3JSC2VME
 __ZN7WebCore12JSSVGElement14finishCreationERN3JSC2VME
 __ZN7WebCore12cacheWrapperINS_13SVGSVGElementEEEvPNS_15DOMWrapperWorldEPT_PNS_12JSDOMWrapperE
 __ZN7WebCore15JSSVGSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
-__ZN7WebCore18JSSVGStyledElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
+__ZN7WebCore18JSSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
 __ZN7WebCore12JSSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
 __ZN3JSC18getStaticValueSlotIN7WebCore12JSSVGElementENS1_9JSElementEEEbPNS_9ExecStateEPKNS_9HashTableEPT_NS_12PropertyNameERNS_12PropertySlotE
 __ZN7WebCore24JSSVGSVGElementPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
@@ -13611,7 +13610,7 @@ __ZNK7WebCore9FillLayer9xPositionEv
 __ZNK7WebCore9FillLayer9yPositionEv
 __ZNK7WebCore9FillLayer10sizeLengthEv
 __ZNK3WTF12StringAppendIPKcNS_6StringEEcvNS_12AtomicStringEEv
-__ZNK7WebCore16SVGStyledElement22instanceUpdatesBlockedEv
+__ZNK7WebCore16SVGElement22instanceUpdatesBlockedEv
 __ZNK7WebCore10SVGElement19instancesForElementEv
 __ZN7WebCore11SVGGElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
 __ZN7WebCore11SVGGElement20isSupportedAttributeERKNS_13QualifiedNameE
@@ -16827,8 +16826,8 @@ __ZN3WTF9HashTableIPN7WebCore11RenderLayerES3_NS_17IdentityExtractorENS_7PtrHash
 __ZNK7WebCore17KeyframeAnimation23hasAnimationForPropertyENS_13CSSPropertyIDE
 __ZN7WebCore15GraphicsLayerCA21setAnimationKeyframesERKNS_17KeyframeValueListEPKNS_9AnimationEPNS_19PlatformCAAnimationE
 __ZN7WebCore19PlatformCAAnimation9setValuesERKN3WTF6VectorIfLm0ENS1_15CrashOnOverflowEEE
-__ZN7WebCore23jsSVGStyledElementStyleEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
-__ZN7WebCore27JSSVGStyledElementPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
+__ZN7WebCore23jsSVGElementStyleEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
+__ZN7WebCore27JSSVGElementPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
 __ZN7WebCoreL15descConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
 __ZN7WebCore14SVGDescElement6createERKNS_13QualifiedNameEPNS_8DocumentE
 __ZN7WebCoreL27createSVGDescElementWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_10SVGElementEEE
@@ -18781,7 +18780,7 @@ __ZN7WebCore23SVGFEColorMatrixElement32detachAnimatedValuesListWrappersEj
 __ZN3WTF6VectorIfLm0ENS_15CrashOnOverflowEEaSERKS2_
 __ZN7WebCore36SVGFilterPrimitiveStandardAttributes16rendererIsNeededERKNS_20NodeRenderingContextE
 __ZN7WebCore36SVGFilterPrimitiveStandardAttributes14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
-__ZN7WebCore24RenderSVGHiddenContainerC2EPNS_16SVGStyledElementE
+__ZN7WebCore24RenderSVGHiddenContainerC2EPNS_16SVGElementE
 __ZN7WebCore32RenderSVGResourceFilterPrimitive14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
 __ZThn128_N7WebCore23RenderSVGResourceFilter25removeAllClientsFromCacheEb
 __ZN7WebCoreL15maskConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
@@ -23749,7 +23748,7 @@ __ZTVN7WebCore13SVGSetElementE
 __ZTVN7WebCore14SVGSMILElementE
 __ZTVN7WebCore22ConditionEventListenerE
 __ZTVN7WebCore14SVGStopElementE
-__ZTVN7WebCore16SVGStyledElementE
+__ZTVN7WebCore16SVGElementE
 __ZTVN7WebCore29SVGGraphicsElementE
 __ZTTN7WebCore29SVGGraphicsElementE
 __ZTCN7WebCore29SVGGraphicsElementE144_NS_16SVGTransformableE
@@ -29621,11 +29620,11 @@ __ZZN7WebCore14SVGStopElement22attributeToPropertyMapEvE24s_attributeToPropertyM
 __ZGVZN7WebCore14SVGStopElement22attributeToPropertyMapEvE24s_attributeToPropertyMap.b
 __ZZN7WebCore14SVGStopElement20isSupportedAttributeERKNS_13QualifiedNameEE19supportedAttributes
 __ZGVZN7WebCore14SVGStopElement20isSupportedAttributeERKNS_13QualifiedNameEE19supportedAttributes.b
-__ZZN7WebCore16SVGStyledElement21classNamePropertyInfoEvE14s_propertyInfo
-__ZGVZN7WebCore16SVGStyledElement21classNamePropertyInfoEvE14s_propertyInfo.b
-__ZZN7WebCore16SVGStyledElement22attributeToPropertyMapEvE24s_attributeToPropertyMap
-__ZGVZN7WebCore16SVGStyledElement22attributeToPropertyMapEvE24s_attributeToPropertyMap.b
-__ZZN7WebCore16SVGStyledElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameEE19propertyNameToIdMap
+__ZZN7WebCore16SVGElement21classNamePropertyInfoEvE14s_propertyInfo
+__ZGVZN7WebCore16SVGElement21classNamePropertyInfoEvE14s_propertyInfo.b
+__ZZN7WebCore16SVGElement22attributeToPropertyMapEvE24s_attributeToPropertyMap
+__ZGVZN7WebCore16SVGElement22attributeToPropertyMapEvE24s_attributeToPropertyMap.b
+__ZZN7WebCore16SVGElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameEE19propertyNameToIdMap
 __ZZN7WebCore29SVGGraphicsElement21transformPropertyInfoEvE14s_propertyInfo
 __ZGVZN7WebCore29SVGGraphicsElement21transformPropertyInfoEvE14s_propertyInfo.b
 __ZZN7WebCore29SVGGraphicsElement22attributeToPropertyMapEvE24s_attributeToPropertyMap
index d025fce..c726ff7 100644 (file)
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\svg\SVGStyledElement.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="..\svg\SVGStyleElement.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     <ClInclude Include="..\svg\SVGSetElement.h" />
     <ClInclude Include="..\svg\SVGStopElement.h" />
     <ClInclude Include="..\svg\SVGStringList.h" />
-    <ClInclude Include="..\svg\SVGStyledElement.h" />
     <ClInclude Include="..\svg\SVGGraphicsElement.h" />
     <ClInclude Include="..\svg\SVGStyleElement.h" />
     <ClInclude Include="..\svg\SVGSVGElement.h" />
index e1b75b8..88b4f58 100644 (file)
     <ClCompile Include="..\svg\SVGMaskElement.cpp">
       <Filter>rendering\svg</Filter>
     </ClCompile>
-    <ClCompile Include="..\svg\SVGStyledElement.cpp">
-      <Filter>rendering\svg</Filter>
-    </ClCompile>
     <ClCompile Include="..\svg\SVGStyleElement.cpp">
       <Filter>rendering\svg</Filter>
     </ClCompile>
     <ClInclude Include="..\svg\SVGStringList.h">
       <Filter>rendering\svg</Filter>
     </ClInclude>
-    <ClInclude Include="..\svg\SVGStyledElement.h">
-      <Filter>rendering\svg</Filter>
-    </ClInclude>
     <ClInclude Include="..\svg\SVGGraphicsElement.h">
       <Filter>rendering\svg</Filter>
     </ClInclude>
index cbe345f..42c83d2 100644 (file)
                B2227AB50D00BF220071B782 /* SVGGraphicsElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B222791F0D00BF210071B782 /* SVGGraphicsElement.cpp */; };
                B2227AB60D00BF220071B782 /* SVGGraphicsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279200D00BF210071B782 /* SVGGraphicsElement.h */; };
                B2227AB70D00BF220071B782 /* SVGStyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279210D00BF210071B782 /* SVGStyleElement.cpp */; };
-               B2227AB70D00BF220071B783 /* SVGStyledElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279210D00BF210071B783 /* SVGStyledElement.cpp */; };
                B2227AB80D00BF220071B782 /* SVGStyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279220D00BF210071B782 /* SVGStyleElement.h */; };
-               B2227AB80D00BF220071B783 /* SVGStyledElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279220D00BF210071B783 /* SVGStyledElement.h */; };
                B2227ABA0D00BF220071B782 /* SVGSVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279240D00BF210071B782 /* SVGSVGElement.cpp */; };
                B2227ABB0D00BF220071B782 /* SVGSVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279250D00BF210071B782 /* SVGSVGElement.h */; };
                B2227ABD0D00BF220071B782 /* SVGSwitchElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279270D00BF210071B782 /* SVGSwitchElement.cpp */; };
                B2FA3DF80AB75A6F000E5AC4 /* JSSVGStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D100AB75A6E000E5AC4 /* JSSVGStringList.cpp */; };
                B2FA3DF90AB75A6F000E5AC4 /* JSSVGStringList.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */; };
                B2FA3DFA0AB75A6F000E5AC4 /* JSSVGStyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */; };
-               B2FA3DFA0AB75A6F000E5AC5 /* JSSVGStyledElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */; };
                B2FA3DFB0AB75A6F000E5AC4 /* JSSVGStyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */; };
-               B2FA3DFB0AB75A6F000E5AC5 /* JSSVGStyledElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */; };
                B2FA3DFC0AB75A6F000E5AC4 /* JSSVGSVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D140AB75A6F000E5AC4 /* JSSVGSVGElement.cpp */; };
                B2FA3DFD0AB75A6F000E5AC4 /* JSSVGSVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D150AB75A6F000E5AC4 /* JSSVGSVGElement.h */; };
                B2FA3DFE0AB75A6F000E5AC4 /* JSSVGSwitchElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D160AB75A6F000E5AC4 /* JSSVGSwitchElement.cpp */; };
                B222791F0D00BF210071B782 /* SVGGraphicsElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGGraphicsElement.cpp; sourceTree = "<group>"; };
                B22279200D00BF210071B782 /* SVGGraphicsElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGGraphicsElement.h; sourceTree = "<group>"; };
                B22279210D00BF210071B782 /* SVGStyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGStyleElement.cpp; sourceTree = "<group>"; };
-               B22279210D00BF210071B783 /* SVGStyledElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGStyledElement.cpp; sourceTree = "<group>"; };
                B22279220D00BF210071B782 /* SVGStyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGStyleElement.h; sourceTree = "<group>"; };
-               B22279220D00BF210071B783 /* SVGStyledElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGStyledElement.h; sourceTree = "<group>"; };
                B22279230D00BF210071B782 /* SVGStyleElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGStyleElement.idl; sourceTree = "<group>"; };
-               B22279230D00BF210071B783 /* SVGStyledElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGStyledElement.idl; sourceTree = "<group>"; };
                B22279240D00BF210071B782 /* SVGSVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGSVGElement.cpp; sourceTree = "<group>"; };
                B22279250D00BF210071B782 /* SVGSVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGSVGElement.h; sourceTree = "<group>"; };
                B22279260D00BF210071B782 /* SVGSVGElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGSVGElement.idl; sourceTree = "<group>"; };
                B2FA3D100AB75A6E000E5AC4 /* JSSVGStringList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGStringList.cpp; sourceTree = "<group>"; };
                B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStringList.h; sourceTree = "<group>"; };
                B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGStyleElement.cpp; sourceTree = "<group>"; };
-               B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGStyledElement.cpp; sourceTree = "<group>"; };
                B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStyleElement.h; sourceTree = "<group>"; };
-               B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStyledElement.h; sourceTree = "<group>"; };
                B2FA3D140AB75A6F000E5AC4 /* JSSVGSVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGSVGElement.cpp; sourceTree = "<group>"; };
                B2FA3D150AB75A6F000E5AC4 /* JSSVGSVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGSVGElement.h; sourceTree = "<group>"; };
                B2FA3D160AB75A6F000E5AC4 /* JSSVGSwitchElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGSwitchElement.cpp; sourceTree = "<group>"; };
                                B2FA3D0F0AB75A6E000E5AC4 /* JSSVGStopElement.h */,
                                B2FA3D100AB75A6E000E5AC4 /* JSSVGStringList.cpp */,
                                B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */,
-                               B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */,
-                               B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */,
                                B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */,
                                B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */,
                                B2FA3D140AB75A6F000E5AC4 /* JSSVGSVGElement.cpp */,
                                B22279150D00BF210071B782 /* SVGStringList.cpp */,
                                B22279160D00BF210071B782 /* SVGStringList.h */,
                                B22279170D00BF210071B782 /* SVGStringList.idl */,
-                               B22279210D00BF210071B783 /* SVGStyledElement.cpp */,
-                               B22279220D00BF210071B783 /* SVGStyledElement.h */,
-                               B22279230D00BF210071B783 /* SVGStyledElement.idl */,
                                B22279210D00BF210071B782 /* SVGStyleElement.cpp */,
                                B22279220D00BF210071B782 /* SVGStyleElement.h */,
                                B22279230D00BF210071B782 /* SVGStyleElement.idl */,
                                B2FA3DF50AB75A6F000E5AC4 /* JSSVGSetElement.h in Headers */,
                                B2FA3DF70AB75A6F000E5AC4 /* JSSVGStopElement.h in Headers */,
                                B2FA3DF90AB75A6F000E5AC4 /* JSSVGStringList.h in Headers */,
-                               B2FA3DFB0AB75A6F000E5AC5 /* JSSVGStyledElement.h in Headers */,
                                B2FA3DFB0AB75A6F000E5AC4 /* JSSVGStyleElement.h in Headers */,
                                B2FA3DFD0AB75A6F000E5AC4 /* JSSVGSVGElement.h in Headers */,
                                B2FA3DFF0AB75A6F000E5AC4 /* JSSVGSwitchElement.h in Headers */,
                                08CA3D4412894A3800FFF260 /* SVGStaticPropertyWithParentTearOff.h in Headers */,
                                B2227AA90D00BF220071B782 /* SVGStopElement.h in Headers */,
                                B2227AAC0D00BF220071B782 /* SVGStringList.h in Headers */,
-                               B2227AB80D00BF220071B783 /* SVGStyledElement.h in Headers */,
                                B2227AB80D00BF220071B782 /* SVGStyleElement.h in Headers */,
                                B2227ABB0D00BF220071B782 /* SVGSVGElement.h in Headers */,
                                B2227ABE0D00BF220071B782 /* SVGSwitchElement.h in Headers */,
                                B2FA3DF40AB75A6F000E5AC4 /* JSSVGSetElement.cpp in Sources */,
                                B2FA3DF60AB75A6F000E5AC4 /* JSSVGStopElement.cpp in Sources */,
                                B2FA3DF80AB75A6F000E5AC4 /* JSSVGStringList.cpp in Sources */,
-                               B2FA3DFA0AB75A6F000E5AC5 /* JSSVGStyledElement.cpp in Sources */,
                                B2FA3DFA0AB75A6F000E5AC4 /* JSSVGStyleElement.cpp in Sources */,
                                B2FA3DFC0AB75A6F000E5AC4 /* JSSVGSVGElement.cpp in Sources */,
                                B2FA3DFE0AB75A6F000E5AC4 /* JSSVGSwitchElement.cpp in Sources */,
                                E4AFD00F0DAF335500F5F55C /* SVGSMILElement.cpp in Sources */,
                                B2227AA80D00BF220071B782 /* SVGStopElement.cpp in Sources */,
                                B2227AAB0D00BF220071B782 /* SVGStringList.cpp in Sources */,
-                               B2227AB70D00BF220071B783 /* SVGStyledElement.cpp in Sources */,
                                B2227AB70D00BF220071B782 /* SVGStyleElement.cpp in Sources */,
                                B2227ABA0D00BF220071B782 /* SVGSVGElement.cpp in Sources */,
                                B2227ABD0D00BF220071B782 /* SVGSwitchElement.cpp in Sources */,
index 5bf56de..35b738a 100644 (file)
@@ -68,7 +68,6 @@
 #include "ProgressTracker.h"
 #include "SVGElement.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "Text.h"
 #include "TextControlInnerElements.h"
 #include "TextIterator.h"
@@ -1222,8 +1221,8 @@ void AccessibilityNodeObject::alternativeText(Vector<AccessibilityText>& textOrd
     
 #if ENABLE(SVG)
     // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
-    if (node->isSVGElement() && toSVGElement(node)->isSVGStyledElement())
-        textOrder.append(AccessibilityText(toSVGStyledElement(node)->title(), AlternativeText));
+    if (node->isSVGElement())
+        textOrder.append(AccessibilityText(toSVGElement(node)->title(), AlternativeText));
 #endif
     
 #if ENABLE(MATHML)
@@ -1421,8 +1420,8 @@ String AccessibilityNodeObject::accessibilityDescription() const
 
 #if ENABLE(SVG)
     // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
-    if (m_node && m_node->isSVGElement() && toSVGElement(m_node)->isSVGStyledElement())
-        return toSVGStyledElement(m_node)->title();
+    if (m_node && m_node->isSVGElement())
+        return toSVGElement(m_node)->title();
 #endif
     
 #if ENABLE(MATHML)
index 6f87231..c39723c 100644 (file)
 #include "Document.h"
 #include "ShadowValue.h"
 #include "SVGColor.h"
+#include "SVGElement.h"
 #include "SVGNames.h"
 #include "SVGPaint.h"
 #include "SVGRenderStyle.h"
 #include "SVGRenderStyleDefs.h"
-#include "SVGStyledElement.h"
 #include "SVGURIReference.h"
 #include <stdlib.h>
 #include <wtf/MathExtras.h>
index aca245a..e571b1b 100644 (file)
@@ -34,7 +34,7 @@
 #include "CSSValueList.h"
 #include "IntRect.h"
 #include "NodeRenderStyle.h"
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 using namespace std;
 
index 9305dc6..8cc0565 100644 (file)
 #include "RenderSVGResource.h"
 #include "RenderSVGResourceFilter.h"
 #include "RenderView.h"
+#include "SVGElement.h"
 #include "SVGRenderingContext.h"
 #include "SVGResources.h"
 #include "SVGResourcesCache.h"
-#include "SVGStyledElement.h"
 #include <wtf/StackStats.h>
 
 namespace WebCore {
 
-RenderSVGContainer::RenderSVGContainer(SVGStyledElement* node)
+RenderSVGContainer::RenderSVGContainer(SVGElement* node)
     : RenderSVGModelObject(node)
     , m_objectBoundingBoxValid(false)
     , m_needsBoundariesUpdate(true)
index 474ddb5..d3f7ab3 100644 (file)
@@ -33,7 +33,7 @@ class SVGElement;
 
 class RenderSVGContainer : public RenderSVGModelObject {
 public:
-    explicit RenderSVGContainer(SVGStyledElement*);
+    explicit RenderSVGContainer(SVGElement*);
     virtual ~RenderSVGContainer();
 
     RenderObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
index 2a015a5..49c86a4 100644 (file)
 #include "RenderSVGHiddenContainer.h"
 
 #include "RenderSVGPath.h"
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 #include <wtf/StackStats.h>
 
 namespace WebCore {
 
-RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGStyledElement* element)
+RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGElement* element)
     : RenderSVGContainer(element)
 {
 }
index 298cd3c..499449a 100644 (file)
 
 namespace WebCore {
     
-class SVGStyledElement;
+class SVGElement;
 
 // This class is for containers which are never drawn, but do need to support style
 // <defs>, <linearGradient>, <radialGradient> are all good examples
 class RenderSVGHiddenContainer : public RenderSVGContainer {
 public:
-    explicit RenderSVGHiddenContainer(SVGStyledElement*);
+    explicit RenderSVGHiddenContainer(SVGElement*);
 
     virtual const char* renderName() const OVERRIDE { return "RenderSVGHiddenContainer"; }
 
index a338e1f..519609b 100644 (file)
 
 #include "RenderLayerModelObject.h"
 #include "RenderSVGResource.h"
+#include "SVGElement.h"
 #include "SVGNames.h"
 #include "SVGResourcesCache.h"
-#include "SVGStyledElement.h"
 #include "ShadowRoot.h"
 
 namespace WebCore {
 
-RenderSVGModelObject::RenderSVGModelObject(SVGStyledElement* node)
+RenderSVGModelObject::RenderSVGModelObject(SVGElement* node)
     : RenderObject(node)
     , m_hasSVGShadow(false)
 {
@@ -133,10 +133,8 @@ static void getElementCTM(SVGElement* element, AffineTransform& transform)
 
     while (current && current->isSVGElement()) {
         SVGElement* currentElement = toSVGElement(current);
-        if (currentElement->isSVGStyledElement()) {
-            localTransform = currentElement->renderer()->localToParentTransform();
-            transform = localTransform.multiply(transform);
-        }
+        localTransform = currentElement->renderer()->localToParentTransform();
+        transform = localTransform.multiply(transform);
         // For getCTM() computation, stop at the nearest viewport element
         if (currentElement == stopAtElement)
             break;
index eb87947..59ad200 100644 (file)
@@ -43,11 +43,11 @@ namespace WebCore {
 // required by SVG renders need to be declared on RenderObject, but shared
 // logic can go in this class or in SVGRenderSupport.
 
-class SVGStyledElement;
+class SVGElement;
 
 class RenderSVGModelObject : public RenderObject {
 public:
-    explicit RenderSVGModelObject(SVGStyledElement*);
+    explicit RenderSVGModelObject(SVGElement*);
 
     virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const OVERRIDE;
     virtual void computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed = false) const OVERRIDE FINAL;
index 9967d70..90c7993 100644 (file)
@@ -45,7 +45,6 @@
 #include "SVGRenderingContext.h"
 #include "SVGResources.h"
 #include "SVGResourcesCache.h"
-#include "SVGStyledElement.h"
 #include "SVGUnitTypes.h"
 #include "SVGUseElement.h"
 
@@ -233,7 +232,7 @@ bool RenderSVGResourceClipper::drawContentIntoMaskImage(ClipperData* clipperData
     // Draw all clipPath children into a global mask.
     for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
         RenderObject* renderer = childNode->renderer();
-        if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
+        if (!childNode->isSVGElement() || !renderer)
             continue;
         if (renderer->needsLayout()) {
             frame()->view()->setPaintBehavior(oldBehavior);
@@ -275,7 +274,7 @@ void RenderSVGResourceClipper::calculateClipContentRepaintRect()
     // This is a rough heuristic to appraise the clip size and doesn't consider clip on clip.
     for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
         RenderObject* renderer = childNode->renderer();
-        if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
+        if (!childNode->isSVGElement() || !renderer)
             continue;
         if (!renderer->isSVGShape() && !renderer->isSVGText() && !childNode->hasTagName(SVGNames::useTag))
             continue;
@@ -305,7 +304,7 @@ bool RenderSVGResourceClipper::hitTestClipContent(const FloatRect& objectBoundin
 
     for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
         RenderObject* renderer = childNode->renderer();
-        if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
+        if (!childNode->isSVGElement() || !renderer)
             continue;
         if (!renderer->isSVGShape() && !renderer->isSVGText() && !childNode->hasTagName(SVGNames::useTag))
             continue;
index 38bd67a..00c5f07 100644 (file)
@@ -39,7 +39,7 @@ static inline SVGDocumentExtensions* svgExtensionsFromNode(Node* node)
     return node->document()->accessSVGExtensions();
 }
 
-RenderSVGResourceContainer::RenderSVGResourceContainer(SVGStyledElement* node)
+RenderSVGResourceContainer::RenderSVGResourceContainer(SVGElement* node)
     : RenderSVGHiddenContainer(node)
     , m_id(node->getIdAttribute())
     , m_registered(false)
index b34b5e2..da72cc9 100644 (file)
@@ -31,7 +31,7 @@ class RenderLayer;
 class RenderSVGResourceContainer : public RenderSVGHiddenContainer,
                                    public RenderSVGResource {
 public:
-    RenderSVGResourceContainer(SVGStyledElement*);
+    RenderSVGResourceContainer(SVGElement*);
     virtual ~RenderSVGResourceContainer();
 
     virtual void layout() OVERRIDE;
index aec1e7c..ace0553 100644 (file)
@@ -44,7 +44,6 @@
 #include "SVGFilterPrimitiveStandardAttributes.h"
 #include "SVGNames.h"
 #include "SVGRenderingContext.h"
-#include "SVGStyledElement.h"
 #include "SVGUnitTypes.h"
 #include "Settings.h"
 #include "SourceAlpha.h"
index 1397c7f..111f904 100644 (file)
@@ -38,7 +38,7 @@ class FilterEffect;
 
 class RenderSVGResourceFilterPrimitive FINAL : public RenderSVGHiddenContainer {
 public:
-    explicit RenderSVGResourceFilterPrimitive(SVGStyledElement* filterPrimitiveElement)
+    explicit RenderSVGResourceFilterPrimitive(SVGElement* filterPrimitiveElement)
         : RenderSVGHiddenContainer(filterPrimitiveElement)
     {
     }
index bcf517a..126e515 100644 (file)
@@ -31,7 +31,6 @@
 #include "SVGGraphicsElement.h"
 #include "SVGMarkerElement.h"
 #include "SVGRenderSupport.h"
-#include "SVGStyledElement.h"
 #include <wtf/StackStats.h>
 
 namespace WebCore {
index 78cce8f..6f8915e 100644 (file)
@@ -23,8 +23,8 @@
 #if ENABLE(SVG)
 #include "FloatRect.h"
 #include "RenderSVGResourceContainer.h"
+#include "SVGElement.h"
 #include "SVGMarkerElement.h"
-#include "SVGStyledElement.h"
 
 #include <wtf/HashSet.h>
 
index a3bdec7..d0161e3 100644 (file)
@@ -34,7 +34,6 @@
 #include "SVGElement.h"
 #include "SVGMaskElement.h"
 #include "SVGRenderingContext.h"
-#include "SVGStyledElement.h"
 #include "SVGUnitTypes.h"
 #include <wtf/Vector.h>
 
@@ -135,7 +134,7 @@ bool RenderSVGResourceMasker::drawContentIntoMaskImage(MaskerData* maskerData, C
     // Draw the content into the ImageBuffer.
     for (Node* node = maskElement->firstChild(); node; node = node->nextSibling()) {
         RenderObject* renderer = node->renderer();
-        if (!node->isSVGElement() || !toSVGElement(node)->isSVGStyledElement() || !renderer)
+        if (!node->isSVGElement() || !renderer)
             continue;
         if (renderer->needsLayout())
             return false;
@@ -164,7 +163,7 @@ void RenderSVGResourceMasker::calculateMaskContentRepaintRect()
 {
     for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
         RenderObject* renderer = childNode->renderer();
-        if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
+        if (!childNode->isSVGElement() || !renderer)
             continue;
         RenderStyle* style = renderer->style();
         if (!style || style->display() == NONE || style->visibility() != VISIBLE)
index b96f919..607d579 100644 (file)
@@ -273,7 +273,7 @@ PassOwnPtr<ImageBuffer> RenderSVGResourcePattern::createTileImage(const PatternA
 
     // Draw the content into the ImageBuffer.
     for (Node* node = attributes.patternContentElement()->firstChild(); node; node = node->nextSibling()) {
-        if (!node->isSVGElement() || !toSVGElement(node)->isSVGStyledElement() || !node->renderer())
+        if (!node->isSVGElement() || !node->renderer())
             continue;
         if (node->renderer()->needsLayout())
             return nullptr;
index b89e8de..6271dfa 100644 (file)
 #include "RenderSVGResource.h"
 #include "RenderSVGResourceContainer.h"
 #include "RenderView.h"
+#include "SVGElement.h"
 #include "SVGImage.h"
 #include "SVGLength.h"
 #include "SVGRenderingContext.h"
 #include "SVGResources.h"
 #include "SVGResourcesCache.h"
 #include "SVGSVGElement.h"
-#include "SVGStyledElement.h"
 #include "SVGViewSpec.h"
 #include "TransformState.h"
 #include <wtf/StackStats.h>
@@ -57,7 +57,7 @@ using namespace std;
 
 namespace WebCore {
 
-RenderSVGRoot::RenderSVGRoot(SVGStyledElement* node)
+RenderSVGRoot::RenderSVGRoot(SVGElement* node)
     : RenderReplaced(node)
     , m_objectBoundingBoxValid(false)
     , m_isLayoutSizeChanged(false)
index 379cca3..3eb041f 100644 (file)
 namespace WebCore {
 
 class AffineTransform;
-class SVGStyledElement;
+class SVGElement;
 
 class RenderSVGRoot FINAL : public RenderReplaced {
 public:
-    explicit RenderSVGRoot(SVGStyledElement*);
+    explicit RenderSVGRoot(SVGElement*);
     virtual ~RenderSVGRoot();
 
     bool isEmbeddedThroughSVGImage() const;
index 834452d..25b90ce 100644 (file)
@@ -34,7 +34,7 @@
 
 namespace WebCore {
 
-RenderSVGViewportContainer::RenderSVGViewportContainer(SVGStyledElement* node)
+RenderSVGViewportContainer::RenderSVGViewportContainer(SVGElement* node)
     : RenderSVGContainer(node)
     , m_didTransformToRootUpdate(false)
     , m_isLayoutSizeChanged(false)
index d7c43e8..7ad94a5 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 // thus we inherit from RenderSVGContainer instead of RenderSVGTransformableContainer
 class RenderSVGViewportContainer FINAL : public RenderSVGContainer {
 public:
-    explicit RenderSVGViewportContainer(SVGStyledElement*);
+    explicit RenderSVGViewportContainer(SVGElement*);
     FloatRect viewport() const { return m_viewport; }
 
     bool isLayoutSizeChanged() const { return m_isLayoutSizeChanged; }
index 4fba774..c68411a 100644 (file)
@@ -38,9 +38,9 @@
 #include "RenderSVGRoot.h"
 #include "RenderSVGText.h"
 #include "RenderSVGViewportContainer.h"
+#include "SVGElement.h"
 #include "SVGResources.h"
 #include "SVGResourcesCache.h"
-#include "SVGStyledElement.h"
 #include "TransformState.h"
 
 namespace WebCore {
@@ -254,7 +254,7 @@ void SVGRenderSupport::layoutChildren(RenderObject* start, bool selfNeedsLayout)
         if (layoutSizeChanged) {
             // When selfNeedsLayout is false and the layout size changed, we have to check whether this child uses relative lengths
             if (SVGElement* element = child->node()->isSVGElement() ? toSVGElement(child->node()) : 0) {
-                if (element->isSVGStyledElement() && toSVGStyledElement(element)->hasRelativeLengths()) {
+                if (element->hasRelativeLengths()) {
                     // When the layout size changed and when using relative values tell the RenderSVGShape to update its shape object
                     if (child->isSVGShape())
                         toRenderSVGShape(child)->setNeedsShapeUpdate();
index 48823bc..197c286 100644 (file)
@@ -59,6 +59,7 @@
 #include "RenderSVGText.h"
 #include "RenderTreeAsText.h"
 #include "SVGCircleElement.h"
+#include "SVGElement.h"
 #include "SVGEllipseElement.h"
 #include "SVGInlineTextBox.h"
 #include "SVGLineElement.h"
@@ -73,7 +74,6 @@
 #include "SVGRectElement.h"
 #include "SVGRootInlineBox.h"
 #include "SVGStopElement.h"
-#include "SVGStyledElement.h"
 
 #include <math.h>
 
index 3b5c5e8..473a9e3 100644 (file)
@@ -179,8 +179,7 @@ static inline RenderSVGResourceContainer* paintingResourceFromSVGPaint(Document*
 static inline void registerPendingResource(SVGDocumentExtensions* extensions, const AtomicString& id, SVGElement* element)
 {
     ASSERT(element);
-    ASSERT_WITH_SECURITY_IMPLICATION(element->isSVGStyledElement());
-    extensions->addPendingResource(id, toSVGStyledElement(element));
+    extensions->addPendingResource(id, element);
 }
 
 bool SVGResources::buildCachedResources(const RenderObject* object, const SVGRenderStyle* style)
index 3f6e7de..1f6877d 100644 (file)
@@ -24,9 +24,9 @@
 #include "HTMLNames.h"
 #include "RenderSVGResourceContainer.h"
 #include "SVGDocumentExtensions.h"
+#include "SVGElement.h"
 #include "SVGResources.h"
 #include "SVGResourcesCycleSolver.h"
-#include "SVGStyledElement.h"
 
 namespace WebCore {
 
index 784d560..d5ec6f6 100644 (file)
@@ -83,7 +83,7 @@ String SVGAElement::title() const
         return title;
 
     // Otherwise, use the title of this element.
-    return SVGStyledElement::title();
+    return SVGElement::title();
 }
 
 bool SVGAElement::isSupportedAttribute(const QualifiedName& attrName)
index a1c50e8..7b8185d 100644 (file)
 #include "SVGStopElement.cpp"
 #include "SVGStringList.cpp"
 #include "SVGStyleElement.cpp"
-#include "SVGStyledElement.cpp"
 #include "SVGSwitchElement.cpp"
 #include "SVGSymbolElement.cpp"
 #include "SVGTRefElement.cpp"
index ced3a10..0f409df 100644 (file)
@@ -34,6 +34,8 @@ public:
 
 private:
     SVGAltGlyphDefElement(const QualifiedName&, Document*);
+
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 }
index 10dbab6..03c5a85 100644 (file)
@@ -34,6 +34,8 @@ public:
 
 private:
     SVGAltGlyphItemElement(const QualifiedName&, Document*);
+
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 }
index dab7026..16595d1 100644 (file)
@@ -30,8 +30,8 @@
 #include "QualifiedName.h"
 #include "RenderObject.h"
 #include "SVGAnimatorFactory.h"
+#include "SVGElement.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "StylePropertySet.h"
 
 namespace WebCore {
index 33a18a7..b3fd7a0 100644 (file)
@@ -251,7 +251,7 @@ String SVGAnimatedType::valueAsString()
         ASSERT(m_data.string);
         return *m_data.string;
 
-    // These types don't appear in the table in SVGStyledElement::cssPropertyToTypeMap() and thus don't need valueAsString() support.
+    // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need valueAsString() support.
     case AnimatedAngle:
     case AnimatedBoolean:
     case AnimatedEnumeration:
@@ -302,7 +302,7 @@ bool SVGAnimatedType::setValueAsString(const QualifiedName& attrName, const Stri
         *m_data.string = value;
         break;
 
-    // These types don't appear in the table in SVGStyledElement::cssPropertyToTypeMap() and thus don't need setValueAsString() support. 
+    // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need setValueAsString() support. 
     case AnimatedAngle:
     case AnimatedBoolean:
     case AnimatedEnumeration:
index f5de47a..2d2d7eb 100644 (file)
 #include "FloatConversion.h"
 #include "RenderObject.h"
 #include "SVGAnimateElement.h"
+#include "SVGElement.h"
 #include "SVGElementInstance.h"
 #include "SVGNames.h"
 #include "SVGParserUtilities.h"
-#include "SVGStyledElement.h"
 #include <wtf/MathExtras.h>
 
 namespace WebCore {
@@ -351,13 +351,9 @@ bool SVGAnimationElement::isAccumulated() const
     return value == sum && animationMode() != ToAnimation;
 }
 
-bool SVGAnimationElement::isTargetAttributeCSSProperty(SVGElement* targetElement, const QualifiedName& attributeName)
+bool SVGAnimationElement::isTargetAttributeCSSProperty(SVGElement*, const QualifiedName& attributeName)
 {
-    ASSERT(targetElement);
-    if (!targetElement->isSVGStyledElement())
-        return false;
-
-    return SVGStyledElement::isAnimatableCSSProperty(attributeName);
+    return SVGElement::isAnimatableCSSProperty(attributeName);
 }
 
 SVGAnimationElement::ShouldApplyAnimation SVGAnimationElement::shouldApplyAnimation(SVGElement* targetElement, const QualifiedName& attributeName)
@@ -634,7 +630,6 @@ void SVGAnimationElement::updateAnimation(float percent, unsigned repeatCount, S
 void SVGAnimationElement::computeCSSPropertyValue(SVGElement* element, CSSPropertyID id, String& valueString)
 {
     ASSERT(element);
-    ASSERT(element->isSVGStyledElement());
 
     // Don't include any properties resulting from CSS Transitions/Animations or SMIL animations, as we want to retrieve the "base value".
     element->setUseOverrideComputedStyle(true);
@@ -654,19 +649,16 @@ void SVGAnimationElement::adjustForInheritance(SVGElement* targetElement, const
         return;
 
     SVGElement* svgParent = toSVGElement(parent);
-    if (!svgParent->isSVGStyledElement())
-        return;
     computeCSSPropertyValue(svgParent, cssPropertyID(attributeName.localName()), value);
 }
 
-static bool inheritsFromProperty(SVGElement* targetElement, const QualifiedName& attributeName, const String& value)
+static bool inheritsFromProperty(SVGElement*, const QualifiedName& attributeName, const String& value)
 {
-    ASSERT(targetElement);
     DEFINE_STATIC_LOCAL(const AtomicString, inherit, ("inherit", AtomicString::ConstructFromLiteral));
     
-    if (value.isEmpty() || value != inherit || !targetElement->isSVGStyledElement())
+    if (value.isEmpty() || value != inherit)
         return false;
-    return SVGStyledElement::isAnimatableCSSProperty(attributeName);
+    return SVGElement::isAnimatableCSSProperty(attributeName);
 }
 
 void SVGAnimationElement::determinePropertyValueTypes(const String& from, const String& to)
index 3ecb1f7..d5bf25f 100644 (file)
@@ -80,6 +80,8 @@ protected:
     bool isSupportedAttribute(const QualifiedName&);
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void svgAttributeChanged(const QualifiedName&);
+
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     
 private:
     BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGComponentTransferFunctionElement)
index a17ee36..8c5b3b3 100644 (file)
@@ -54,6 +54,8 @@ private:
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void svgAttributeChanged(const QualifiedName&);
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
 
     BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGCursorElement)
index 200f748..dcebfb5 100644 (file)
@@ -26,7 +26,7 @@
 namespace WebCore {
 
 inline SVGDescElement::SVGDescElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     ASSERT(hasTagName(SVGNames::descTag));
 }
index 12fee82..8a5cc42 100644 (file)
 #define SVGDescElement_h
 
 #if ENABLE(SVG)
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 namespace WebCore {
 
-class SVGDescElement FINAL : public SVGStyledElement {
+class SVGDescElement FINAL : public SVGElement {
 public:
     static PassRefPtr<SVGDescElement> create(const QualifiedName&, Document*);
 
index 1346b47..db7b7d8 100644 (file)
@@ -25,6 +25,6 @@
 
 [
     Conditional=SVG
-] interface SVGDescElement : SVGStyledElement {
+] interface SVGDescElement : SVGElement {
 };
 
index 703af9e..541e48f 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (C) 2008 Apple Inc. All rights reserved.
  * Copyright (C) 2008 Alp Toker <alp@atoker.com>
  * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #if ENABLE(SVG)
 #include "SVGElement.h"
 
+#include "Attr.h"
 #include "CSSCursorImageValue.h"
+#include "CSSParser.h"
 #include "DOMImplementation.h"
 #include "Document.h"
+#include "ElementTraversal.h"
 #include "Event.h"
+#include "EventNames.h"
 #include "HTMLNames.h"
 #include "RenderObject.h"
+#include "RenderSVGResource.h"
+#include "RenderSVGResourceClipper.h"
+#include "RenderSVGResourceFilter.h"
+#include "RenderSVGResourceMasker.h"
 #include "SVGCursorElement.h"
 #include "SVGDocumentExtensions.h"
 #include "SVGElementInstance.h"
 #include "SVGGraphicsElement.h"
 #include "SVGImageElement.h"
 #include "SVGNames.h"
+#include "SVGRenderStyle.h"
+#include "SVGRenderSupport.h"
 #include "SVGSVGElement.h"
+#include "SVGUseElement.h"
 #include "ScriptEventListener.h"
 #include "ShadowRoot.h"
 #include "XLinkNames.h"
 #include "XMLNames.h"
+#include <wtf/Assertions.h>
+#include <wtf/HashMap.h>
+#include <wtf/StdLibExtras.h>
+#include <wtf/text/WTFString.h>
+
 
 namespace WebCore {
 
+// Animated property definitions
+DEFINE_ANIMATED_STRING(SVGElement, HTMLNames::classAttr, ClassName, className)
+
+BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGElement)
+    REGISTER_LOCAL_ANIMATED_PROPERTY(className)
+END_REGISTER_ANIMATED_PROPERTIES
+
 using namespace HTMLNames;
+using namespace SVGNames;
+
+void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName)
+{
+    // FIXME: when CSS supports "transform-origin" the special case for transform_originAttr can be removed.
+    CSSPropertyID propertyId = cssPropertyID(attrName.localName());
+    if (!propertyId && attrName == transform_originAttr)
+        propertyId = CSSPropertyWebkitTransformOrigin; // cssPropertyID("-webkit-transform-origin")
+    ASSERT(propertyId > 0);
+    propertyNameToIdMap->set(attrName.localName().impl(), propertyId);
+}
+
+typedef HashMap<QualifiedName, AnimatedPropertyType> AttributeToPropertyTypeMap;
+static inline AttributeToPropertyTypeMap& cssPropertyToTypeMap()
+{
+    DEFINE_STATIC_LOCAL(AttributeToPropertyTypeMap, s_cssPropertyMap, ());
+
+    if (!s_cssPropertyMap.isEmpty())
+        return s_cssPropertyMap;
+
+    // Fill the map for the first use.
+    s_cssPropertyMap.set(alignment_baselineAttr, AnimatedString);
+    s_cssPropertyMap.set(baseline_shiftAttr, AnimatedString);
+    s_cssPropertyMap.set(buffered_renderingAttr, AnimatedString);
+    s_cssPropertyMap.set(clipAttr, AnimatedRect);
+    s_cssPropertyMap.set(clip_pathAttr, AnimatedString);
+    s_cssPropertyMap.set(clip_ruleAttr, AnimatedString);
+    s_cssPropertyMap.set(SVGNames::colorAttr, AnimatedColor);
+    s_cssPropertyMap.set(color_interpolationAttr, AnimatedString);
+    s_cssPropertyMap.set(color_interpolation_filtersAttr, AnimatedString);
+    s_cssPropertyMap.set(color_profileAttr, AnimatedString);
+    s_cssPropertyMap.set(color_renderingAttr, AnimatedString);
+    s_cssPropertyMap.set(cursorAttr, AnimatedString);
+    s_cssPropertyMap.set(displayAttr, AnimatedString);
+    s_cssPropertyMap.set(dominant_baselineAttr, AnimatedString);
+    s_cssPropertyMap.set(fillAttr, AnimatedColor);
+    s_cssPropertyMap.set(fill_opacityAttr, AnimatedNumber);
+    s_cssPropertyMap.set(fill_ruleAttr, AnimatedString);
+    s_cssPropertyMap.set(filterAttr, AnimatedString);
+    s_cssPropertyMap.set(flood_colorAttr, AnimatedColor);
+    s_cssPropertyMap.set(flood_opacityAttr, AnimatedNumber);
+    s_cssPropertyMap.set(font_familyAttr, AnimatedString);
+    s_cssPropertyMap.set(font_sizeAttr, AnimatedLength);
+    s_cssPropertyMap.set(font_stretchAttr, AnimatedString);
+    s_cssPropertyMap.set(font_styleAttr, AnimatedString);
+    s_cssPropertyMap.set(font_variantAttr, AnimatedString);
+    s_cssPropertyMap.set(font_weightAttr, AnimatedString);
+    s_cssPropertyMap.set(image_renderingAttr, AnimatedString);
+    s_cssPropertyMap.set(kerningAttr, AnimatedLength);
+    s_cssPropertyMap.set(letter_spacingAttr, AnimatedLength);
+    s_cssPropertyMap.set(lighting_colorAttr, AnimatedColor);
+    s_cssPropertyMap.set(marker_endAttr, AnimatedString);
+    s_cssPropertyMap.set(marker_midAttr, AnimatedString);
+    s_cssPropertyMap.set(marker_startAttr, AnimatedString);
+    s_cssPropertyMap.set(maskAttr, AnimatedString);
+    s_cssPropertyMap.set(mask_typeAttr, AnimatedString);
+    s_cssPropertyMap.set(opacityAttr, AnimatedNumber);
+    s_cssPropertyMap.set(overflowAttr, AnimatedString);
+    s_cssPropertyMap.set(pointer_eventsAttr, AnimatedString);
+    s_cssPropertyMap.set(shape_renderingAttr, AnimatedString);
+    s_cssPropertyMap.set(stop_colorAttr, AnimatedColor);
+    s_cssPropertyMap.set(stop_opacityAttr, AnimatedNumber);
+    s_cssPropertyMap.set(strokeAttr, AnimatedColor);
+    s_cssPropertyMap.set(stroke_dasharrayAttr, AnimatedLengthList);
+    s_cssPropertyMap.set(stroke_dashoffsetAttr, AnimatedLength);
+    s_cssPropertyMap.set(stroke_linecapAttr, AnimatedString);
+    s_cssPropertyMap.set(stroke_linejoinAttr, AnimatedString);
+    s_cssPropertyMap.set(stroke_miterlimitAttr, AnimatedNumber);
+    s_cssPropertyMap.set(stroke_opacityAttr, AnimatedNumber);
+    s_cssPropertyMap.set(stroke_widthAttr, AnimatedLength);
+    s_cssPropertyMap.set(text_anchorAttr, AnimatedString);
+    s_cssPropertyMap.set(text_decorationAttr, AnimatedString);
+    s_cssPropertyMap.set(text_renderingAttr, AnimatedString);
+    s_cssPropertyMap.set(vector_effectAttr, AnimatedString);
+    s_cssPropertyMap.set(visibilityAttr, AnimatedString);
+    s_cssPropertyMap.set(word_spacingAttr, AnimatedLength);
+    return s_cssPropertyMap;
+}
 
 SVGElement::SVGElement(const QualifiedName& tagName, Document* document)
     : StyledElement(tagName, document, CreateSVGElement)
 {
+    registerAnimatedPropertiesForSVGElement();
 }
 
 SVGElement::~SVGElement()
@@ -76,6 +179,11 @@ SVGElement::~SVGElement()
         it = rareDataMap.find(this);
         ASSERT(it != rareDataMap.end());
         rareDataMap.remove(it);
+
+        // Clear HasSVGRareData flag now so that we are in a consistent state when
+        // calling rebuildAllElementReferencesForTarget() and
+        // removeAllElementReferencesForTarget() below.
+        clearHasSVGRareData();
     }
     ASSERT(document());
     document()->accessSVGExtensions()->rebuildAllElementReferencesForTarget(this);
@@ -174,6 +282,8 @@ void SVGElement::setXmlbase(const String& value, ExceptionCode&)
 void SVGElement::removedFrom(ContainerNode* rootParent)
 {
     bool wasInDocument = rootParent->inDocument();
+    if (wasInDocument)
+        updateRelativeLengthsInformation(false, this);
 
     StyledElement::removedFrom(rootParent);
 
@@ -181,6 +291,7 @@ void SVGElement::removedFrom(ContainerNode* rootParent)
         document()->accessSVGExtensions()->rebuildAllElementReferencesForTarget(this);
         document()->accessSVGExtensions()->removeAllElementReferencesForTarget(this);
     }
+    SVGElementInstance::invalidateAllInstancesOfElement(this);
 }
 
 SVGSVGElement* SVGElement::ownerSVGElement() const
@@ -329,6 +440,8 @@ void SVGElement::parseAttribute(const QualifiedName& name, const AtomicString& v
         setAttributeEventListener(eventNames().focusoutEvent, createAttributeEventListener(this, name, value));
     else if (name == SVGNames::onactivateAttr)
         setAttributeEventListener(eventNames().DOMActivateEvent, createAttributeEventListener(this, name, value));
+    else if (name == HTMLNames::classAttr)
+        setClassNameBaseValue(value);
     else if (SVGLangSpace::parseAttribute(name, value)) {
     } else
         StyledElement::parseAttribute(name, value);
@@ -337,6 +450,13 @@ void SVGElement::parseAttribute(const QualifiedName& name, const AtomicString& v
 void SVGElement::animatedPropertyTypeForAttribute(const QualifiedName& attributeName, Vector<AnimatedPropertyType>& propertyTypes)
 {
     localAttributeToPropertyMap().animatedPropertyTypeForAttribute(attributeName, propertyTypes);
+
+    if (!propertyTypes.isEmpty())
+        return;
+
+    AttributeToPropertyTypeMap& cssPropertyTypeMap = cssPropertyToTypeMap();
+    if (cssPropertyTypeMap.contains(attributeName))
+        propertyTypes.append(cssPropertyTypeMap.get(attributeName));
 }
 
 bool SVGElement::haveLoadedRequiredResources()
@@ -356,13 +476,9 @@ static inline void collectInstancesForSVGElement(SVGElement* element, HashSet<SV
     if (element->containingShadowRoot())
         return;
 
-    if (!element->isSVGStyledElement())
-        return;
-
-    SVGStyledElement* styledElement = toSVGStyledElement(element);
-    ASSERT(!styledElement->instanceUpdatesBlocked());
+    ASSERT(!element->instanceUpdatesBlocked());
 
-    instances = styledElement->instancesForElement();
+    instances = element->instancesForElement();
 }
 
 bool SVGElement::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> prpListener, bool useCapture)
@@ -563,12 +679,6 @@ void SVGElement::synchronizeAnimatedSVGAttribute(const QualifiedName& name) cons
         nonConstThis->localAttributeToPropertyMap().synchronizeProperty(nonConstThis, name);
 }
 
-SVGAttributeToPropertyMap& SVGElement::localAttributeToPropertyMap()
-{
-    DEFINE_STATIC_LOCAL(SVGAttributeToPropertyMap, emptyMap, ());
-    return emptyMap;
-}
-
 void SVGElement::synchronizeRequiredFeatures(SVGElement* contextElement)
 {
     ASSERT(contextElement);
@@ -735,12 +845,312 @@ bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const
     }
 
     if (name == classAttr)
-        return isSVGStyledElement();
+        return true;
 
     return animatableAttributes.contains(name);
 }
 #endif
 
+String SVGElement::title() const
+{
+    // According to spec, we should not return titles when hovering over root <svg> elements (those
+    // <title> elements are the title of the document, not a tooltip) so we instantly return.
+    if (isOutermostSVGSVGElement())
+        return String();
+
+    // Walk up the tree, to find out whether we're inside a <use> shadow tree, to find the right title.
+    if (isInShadowTree()) {
+        Element* shadowHostElement = toShadowRoot(treeScope()->rootNode())->hostElement();
+        // At this time, SVG nodes are not allowed in non-<use> shadow trees, so any shadow root we do
+        // have should be a use. The assert and following test is here to catch future shadow DOM changes
+        // that do enable SVG in a shadow tree.
+        ASSERT(!shadowHostElement || shadowHostElement->hasTagName(SVGNames::useTag));
+        if (shadowHostElement && shadowHostElement->hasTagName(SVGNames::useTag)) {
+            SVGUseElement* useElement = toSVGUseElement(shadowHostElement);
+
+            // If the <use> title is not empty we found the title to use.
+            String useTitle(useElement->title());
+            if (!useTitle.isEmpty())
+                return useTitle;
+        }
+    }
+
+    // If we aren't an instance in a <use> or the <use> title was not found, then find the first
+    // <title> child of this element.
+    Element* titleElement = ElementTraversal::firstWithin(this);
+    for (; titleElement; titleElement = ElementTraversal::nextSibling(titleElement)) {
+        if (titleElement->hasTagName(SVGNames::titleTag) && titleElement->isSVGElement())
+            break;
+    }
+
+    // If a title child was found, return the text contents.
+    if (titleElement)
+        return titleElement->innerText();
+
+    // Otherwise return a null/empty string.
+    return String();
+}
+
+bool SVGElement::rendererIsNeeded(const RenderStyle& style)
+{
+    // http://www.w3.org/TR/SVG/extend.html#PrivateData
+    // Prevent anything other than SVG renderers from appearing in our render tree
+    // Spec: SVG allows inclusion of elements from foreign namespaces anywhere
+    // with the SVG content. In general, the SVG user agent will include the unknown
+    // elements in the DOM but will otherwise ignore unknown elements.
+    if (!parentOrShadowHostElement() || parentOrShadowHostElement()->isSVGElement())
+        return StyledElement::rendererIsNeeded(style);
+
+    return false;
+}
+
+CSSPropertyID SVGElement::cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
+{
+    if (!attrName.namespaceURI().isNull())
+        return CSSPropertyInvalid;
+
+    static HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap = 0;
+    if (!propertyNameToIdMap) {
+        propertyNameToIdMap = new HashMap<AtomicStringImpl*, 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_profileAttr);
+        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, kerningAttr);
+        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, 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);
+    }
+
+    return propertyNameToIdMap->get(attrName.localName().impl());
+}
+
+bool SVGElement::isAnimatableCSSProperty(const QualifiedName& attrName)
+{
+    return cssPropertyToTypeMap().contains(attrName);
+}
+
+bool SVGElement::isPresentationAttribute(const QualifiedName& name) const
+{
+    if (cssPropertyIdForSVGAttributeName(name) > 0)
+        return true;
+    return StyledElement::isPresentationAttribute(name);
+}
+
+void SVGElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style)
+{
+    CSSPropertyID propertyID = cssPropertyIdForSVGAttributeName(name);
+    if (propertyID > 0)
+        addPropertyToPresentationAttributeStyle(style, propertyID, value);
+}
+
+bool SVGElement::isKnownAttribute(const QualifiedName& attrName)
+{
+    return isIdAttributeName(attrName);
+}
+
+void SVGElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+    CSSPropertyID propId = cssPropertyIdForSVGAttributeName(attrName);
+    if (propId > 0) {
+        SVGElementInstance::invalidateAllInstancesOfElement(this);
+        return;
+    }
+
+    if (attrName == HTMLNames::classAttr) {
+        classAttributeChanged(className());
+        SVGElementInstance::invalidateAllInstancesOfElement(this);
+        return;
+    }
+
+    if (isIdAttributeName(attrName)) {
+        RenderObject* object = renderer();
+        // Notify resources about id changes, this is important as we cache resources by id in SVGDocumentExtensions
+        if (object && object->isSVGResourceContainer())
+            object->toRenderSVGResourceContainer()->idChanged();
+        if (inDocument())
+            buildPendingResourcesIfNeeded();
+        SVGElementInstance::invalidateAllInstancesOfElement(this);
+        return;
+    }
+}
+
+Node::InsertionNotificationRequest SVGElement::insertedInto(ContainerNode* rootParent)
+{
+    StyledElement::insertedInto(rootParent);
+    updateRelativeLengthsInformation();
+    buildPendingResourcesIfNeeded();
+    return InsertionDone;
+}
+
+void SVGElement::buildPendingResourcesIfNeeded()
+{
+    Document* document = this->document();
+    if (!needsPendingResourceHandling() || !document || !inDocument() || isInShadowTree())
+        return;
+
+    SVGDocumentExtensions* extensions = document->accessSVGExtensions();
+    String resourceId = getIdAttribute();
+    if (!extensions->hasPendingResource(resourceId))
+        return;
+
+    // Mark pending resources as pending for removal.
+    extensions->markPendingResourcesForRemoval(resourceId);
+
+    // Rebuild pending resources for each client of a pending resource that is being removed.
+    while (Element* clientElement = extensions->removeElementFromPendingResourcesForRemoval(resourceId)) {
+        ASSERT(clientElement->hasPendingResources());
+        if (clientElement->hasPendingResources()) {
+            clientElement->buildPendingResource();
+            extensions->clearHasPendingResourcesIfPossible(clientElement);
+        }
+    }
+}
+
+void SVGElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
+{
+    StyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+
+    // Invalidate all SVGElementInstances associated with us
+    if (!changedByParser)
+        SVGElementInstance::invalidateAllInstancesOfElement(this);
+}
+
+PassRefPtr<CSSValue> SVGElement::getPresentationAttribute(const String& name)
+{
+    if (!hasAttributesWithoutUpdate())
+        return 0;
+
+    QualifiedName attributeName(nullAtom, name, nullAtom);
+    const Attribute* attribute = findAttributeByName(attributeName);
+    if (!attribute)
+        return 0;
+
+    RefPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(SVGAttributeMode);
+    CSSPropertyID propertyID = cssPropertyIdForSVGAttributeName(attribute->name());
+    style->setProperty(propertyID, attribute->value());
+    RefPtr<CSSValue> cssValue = style->getPropertyCSSValue(propertyID);
+    return cssValue ? cssValue->cloneForCSSOM() : 0;
+}
+
+bool SVGElement::instanceUpdatesBlocked() const
+{
+    return hasSVGRareData() && svgRareData()->instanceUpdatesBlocked();
+}
+
+void SVGElement::setInstanceUpdatesBlocked(bool value)
+{
+    if (hasSVGRareData())
+        svgRareData()->setInstanceUpdatesBlocked(value);
+}
+
+AffineTransform SVGElement::localCoordinateSpaceTransform(SVGLocatable::CTMScope) const
+{
+    // To be overriden by SVGGraphicsElement (or as special case SVGTextElement and SVGPatternElement)
+    return AffineTransform();
+}
+
+void SVGElement::updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement* element)
+{
+    // If we're not yet in a document, this function will be called again from insertedInto(). Do nothing now.
+    if (!inDocument())
+        return;
+
+    // An element wants to notify us that its own relative lengths state changed.
+    // Register it in the relative length map, and register us in the parent relative length map.
+    // Register the parent in the grandparents map, etc. Repeat procedure until the root of the SVG tree.
+
+    if (hasRelativeLengths)
+        m_elementsWithRelativeLengths.add(element);
+    else {
+        if (!m_elementsWithRelativeLengths.contains(element)) {
+            // We were never registered. Do nothing.
+            return;
+        }
+
+        m_elementsWithRelativeLengths.remove(element);
+    }
+
+    // Find first styled parent node, and notify it that we've changed our relative length state.
+    ContainerNode* node = parentNode();
+    while (node) {
+        if (!node->isSVGElement())
+            break;
+
+        // Register us in the parent element map.
+        toSVGElement(node)->updateRelativeLengthsInformation(hasRelativeLengths, this);
+        break;
+    }
+}
+
+bool SVGElement::isMouseFocusable() const
+{
+    if (!isFocusable())
+        return false;
+    Element* eventTarget = const_cast<SVGElement*>(this);
+    return eventTarget->hasEventListeners(eventNames().focusinEvent) || eventTarget->hasEventListeners(eventNames().focusoutEvent);
+}
+
+bool SVGElement::isKeyboardFocusable(KeyboardEvent*) const
+{
+    return isMouseFocusable();
+}
+
 }
 
 #endif // ENABLE(SVG)
index 75e05f9..f833521 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
  * Copyright (C) 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,6 +24,8 @@
 #define SVGElement_h
 
 #if ENABLE(SVG)
+#include "CSSPropertyNames.h"
+#include "SVGAnimatedString.h"
 #include "SVGLangSpace.h"
 #include "SVGLocatable.h"
 #include "SVGParsingError.h"
 #include "StyledElement.h"
 #include "Timer.h"
 #include <wtf/HashMap.h>
+#include <wtf/HashSet.h>
+#include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
 class AffineTransform;
 class CSSCursorImageValue;
+class CSSStyleDeclaration;
+class CSSValue;
 class Document;
 class SVGAttributeToPropertyMap;
 class SVGCursorElement;
@@ -43,6 +50,8 @@ class SVGElementInstance;
 class SVGElementRareData;
 class SVGSVGElement;
 
+void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName);
+
 class SVGElement : public StyledElement, public SVGLangSpace {
 public:
     bool isOutermostSVGSVGElement() const;
@@ -53,9 +62,19 @@ public:
     SVGSVGElement* ownerSVGElement() const;
     SVGElement* viewportElement() const;
 
+    virtual String title() const OVERRIDE;
+    static bool isAnimatableCSSProperty(const QualifiedName&);
+    bool isKnownAttribute(const QualifiedName&);
+    PassRefPtr<CSSValue> getPresentationAttribute(const String& name);
+    virtual bool supportsMarkers() const { return false; }
+    bool hasRelativeLengths() const { return !m_elementsWithRelativeLengths.isEmpty(); }
+    virtual bool needsPendingResourceHandling() const { return true; }
+    bool instanceUpdatesBlocked() const;
+    void setInstanceUpdatesBlocked(bool);
+    virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const;
+
     SVGDocumentExtensions* accessDocumentSVGExtensions();
 
-    virtual bool isSVGStyledElement() const { return false; }
     virtual bool isSVGGraphicsElement() const { return false; }
     virtual bool isSVGSVGElement() const { return false; }
     virtual bool isFilterEffect() const { return false; }
@@ -65,7 +84,7 @@ public:
     // For SVGTests
     virtual bool isValid() const { return true; }
 
-    virtual void svgAttributeChanged(const QualifiedName&) { }
+    virtual void svgAttributeChanged(const QualifiedName&);
 
     virtual void animatedPropertyTypeForAttribute(const QualifiedName&, Vector<AnimatedPropertyType>&);
 
@@ -102,8 +121,6 @@ public:
     virtual void synchronizeRequiredExtensions() { }
     virtual void synchronizeSystemLanguage() { }
 
-    virtual SVGAttributeToPropertyMap& localAttributeToPropertyMap();
-
 #ifndef NDEBUG
     bool isAnimatableAttribute(const QualifiedName&) const;
 #endif
@@ -125,6 +142,7 @@ protected:
     SVGElement(const QualifiedName&, Document*);
     virtual ~SVGElement();
 
+    virtual bool rendererIsNeeded(const RenderStyle&);
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
 
     virtual void finishParsingChildren();
@@ -137,6 +155,15 @@ protected:
     SVGElementRareData& ensureSVGRareData();
 
     void reportAttributeParsingError(SVGParsingError, const QualifiedName&, const AtomicString&);
+    static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName&);
+
+    virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;
+    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE;
+    virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
+    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+    virtual bool selfHasRelativeLengths() const { return false; }
+    void updateRelativeLengthsInformation() { updateRelativeLengthsInformation(selfHasRelativeLengths(), this); }
+    void updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement*);
 
 private:
     friend class SVGElementInstance;
@@ -149,13 +176,21 @@ private:
     virtual RenderStyle* virtualComputedStyle(PseudoId pseudoElementSpecifier = NOPSEUDO) { return computedStyle(pseudoElementSpecifier); }
     virtual bool willRecalcStyle(Style::Change);
 
-    virtual bool rendererIsNeeded(const RenderStyle&) { return false; }
-
     virtual bool isSupported(StringImpl* feature, StringImpl* version) const;
 
     void mapInstanceToElement(SVGElementInstance*);
     void removeInstanceMapping(SVGElementInstance*);
 
+    void buildPendingResourcesIfNeeded();
+    virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE;
+    virtual bool isMouseFocusable() const OVERRIDE;
+
+    HashSet<SVGElement*> m_elementsWithRelativeLengths;
+
+    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGElement)
+        DECLARE_ANIMATED_STRING(ClassName, className)
+    END_DECLARE_ANIMATED_PROPERTIES
+
 };
 
 struct SVGAttributeHashTranslator {
index ecef281..24f067b 100644 (file)
 
     attribute DOMString xmllang;
     attribute DOMString xmlspace;
+
+    readonly attribute SVGAnimatedString className;
+    readonly attribute CSSStyleDeclaration style;
+
+    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
 };
 
index c3c625b..89da2b9 100644 (file)
@@ -185,7 +185,7 @@ void SVGElementInstance::invalidateAllInstancesOfElement(SVGElement* element)
     if (!element || !element->inDocument())
         return;
 
-    if (element->isSVGStyledElement() && toSVGStyledElement(element)->instanceUpdatesBlocked())
+    if (element->instanceUpdatesBlocked())
         return;
 
     const HashSet<SVGElementInstance*>& set = element->instancesForElement();
@@ -259,7 +259,7 @@ EventTargetData& SVGElementInstance::ensureEventTargetData()
 }
 
 SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker(SVGElement* targetElement)
-    : m_targetElement(targetElement->isSVGStyledElement() ? toSVGStyledElement(targetElement) : 0)
+    : m_targetElement(targetElement)
 {
     if (m_targetElement)
         m_targetElement->setInstanceUpdatesBlocked(true);
index b30d35d..40b08ac 100644 (file)
@@ -35,7 +35,7 @@ void addChildNodesToDeletionQueue(GenericNode*& head, GenericNode*& tail, Generi
 class Document;
 class SVGElement;
 class SVGElementInstanceList;
-class SVGStyledElement;
+class SVGElement;
 class SVGUseElement;
 
 // SVGElementInstance mimics Node, but without providing all its functionality
@@ -91,7 +91,7 @@ public:
         ~InstanceUpdateBlocker();
 
     private:
-        SVGStyledElement* m_targetElement;
+        SVGElement* m_targetElement;
     };
     
     static void invalidateAllInstancesOfElement(SVGElement*);
index d70f297..48334e1 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFEBlendElement : SVGStyledElement {
+] interface SVGFEBlendElement : SVGElement {
     // Blend Mode Types
     const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;
     const unsigned short SVG_FEBLEND_MODE_NORMAL   = 1;
index 656ee40..fe2de50 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFEColorMatrixElement : SVGStyledElement {
+] interface SVGFEColorMatrixElement : SVGElement {
     // Color Matrix Types
     const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;
     const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX           = 1;
index 5052549..84fe938 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEComponentTransferElement : SVGStyledElement {
+] interface SVGFEComponentTransferElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
 };
 
index a64cc47..8022698 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFECompositeElement : SVGStyledElement {
+] interface SVGFECompositeElement : SVGElement {
     // Composite Operators
     const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;
     const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER       = 1;
index fcd8c57..275582a 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFEConvolveMatrixElement : SVGStyledElement {
+] interface SVGFEConvolveMatrixElement : SVGElement {
     // Edge Mode Values
     const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;
     const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
index c436669..f5d2ecc 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEDiffuseLightingElement : SVGStyledElement {
+] interface SVGFEDiffuseLightingElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber diffuseConstant;
index b8a0525..e9efab8 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFEDisplacementMapElement : SVGStyledElement {
+] interface SVGFEDisplacementMapElement : SVGElement {
     // Channel Selectors
     const unsigned short SVG_CHANNEL_UNKNOWN = 0;
     const unsigned short SVG_CHANNEL_R       = 1;
index 6a5a96a..a531fe4 100644 (file)
@@ -19,7 +19,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEDropShadowElement : SVGStyledElement {
+] interface SVGFEDropShadowElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
index d408925..bd5abc8 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEFloodElement : SVGStyledElement {
+] interface SVGFEFloodElement : SVGElement {
 };
 
 SVGFEFloodElement implements SVGFilterPrimitiveStandardAttributes;
index 88eb5d0..2a78e17 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEGaussianBlurElement : SVGStyledElement {
+] interface SVGFEGaussianBlurElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber stdDeviationX;
     readonly attribute SVGAnimatedNumber stdDeviationY;
index dc0d99b..0ac6055 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEImageElement : SVGStyledElement {
+] interface SVGFEImageElement : SVGElement {
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
index 755c652..833c240 100644 (file)
@@ -38,6 +38,8 @@ public:
 protected:
     SVGFELightElement(const QualifiedName&, Document*);
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
 private:
     bool isSupportedAttribute(const QualifiedName&);
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
index ed25f7e..6a99009 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEMergeElement : SVGStyledElement {
+] interface SVGFEMergeElement : SVGElement {
 };
 
 SVGFEMergeElement implements SVGFilterPrimitiveStandardAttributes;
index 50b9ba2..bd248f8 100644 (file)
@@ -38,6 +38,8 @@ private:
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void svgAttributeChanged(const QualifiedName&);
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGFEMergeNodeElement)
         DECLARE_ANIMATED_STRING(In1, in1)
     END_DECLARE_ANIMATED_PROPERTIES
index ba6481c..ec4c423 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFEMorphologyElement : SVGStyledElement {
+] interface SVGFEMorphologyElement : SVGElement {
     // Morphology Operators
     const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN  = 0;
     const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE    = 1;
index 7a9f15a..eb95e74 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFEOffsetElement : SVGStyledElement {
+] interface SVGFEOffsetElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
index 93ad773..0e4e9ee 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFESpecularLightingElement : SVGStyledElement {
+] interface SVGFESpecularLightingElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber specularConstant;
index 251a548..5cae1a1 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFETileElement : SVGStyledElement {
+] interface SVGFETileElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
 };
 
index 76d1913..0804fb5 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG&FILTERS,
     DoNotCheckConstants
-] interface SVGFETurbulenceElement : SVGStyledElement {
+] interface SVGFETurbulenceElement : SVGElement {
     // Turbulence Types
     const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;
     const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
index afd85b4..36e1923 100644 (file)
@@ -63,7 +63,7 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFilterElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_filterUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_primitiveUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     , m_x(LengthModeWidth, "-10%")
@@ -126,7 +126,7 @@ void SVGFilterElement::parseAttribute(const QualifiedName& name, const AtomicStr
     SVGParsingError parseError = NoError;
 
     if (!isSupportedAttribute(name))
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     else if (name == SVGNames::filterUnitsAttr) {
         SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
         if (propertyValue > 0)
@@ -161,7 +161,7 @@ void SVGFilterElement::parseAttribute(const QualifiedName& name, const AtomicStr
 void SVGFilterElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -179,7 +179,7 @@ void SVGFilterElement::svgAttributeChanged(const QualifiedName& attrName)
 
 void SVGFilterElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (changedByParser)
         return;
index 3351c60..bce6ea6 100644 (file)
 #include "SVGAnimatedEnumeration.h"
 #include "SVGAnimatedInteger.h"
 #include "SVGAnimatedLength.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "SVGURIReference.h"
 #include "SVGUnitTypes.h"
 
 namespace WebCore {
 
-class SVGFilterElement FINAL : public SVGStyledElement,
+class SVGFilterElement FINAL : public SVGElement,
                                public SVGURIReference,
                                public SVGExternalResourcesRequired {
 public:
index f3e252d..8f5be1d 100644 (file)
@@ -26,7 +26,7 @@
 
 [
     Conditional=SVG&FILTERS
-] interface SVGFilterElement : SVGStyledElement {
+] interface SVGFilterElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration filterUnits;
     readonly attribute SVGAnimatedEnumeration primitiveUnits;
     readonly attribute SVGAnimatedLength      x;
index 65d8063..2bd43f8 100644 (file)
 #include "Attribute.h"
 #include "FilterEffect.h"
 #include "RenderSVGResourceFilterPrimitive.h"
+#include "SVGElement.h"
 #include "SVGElementInstance.h"
 #include "SVGFilterBuilder.h"
 #include "SVGLength.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "SVGUnitTypes.h"
 
 namespace WebCore {
@@ -49,11 +49,11 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
     REGISTER_LOCAL_ANIMATED_PROPERTY(width)
     REGISTER_LOCAL_ANIMATED_PROPERTY(height)
     REGISTER_LOCAL_ANIMATED_PROPERTY(result)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_x(LengthModeWidth, "0%")
     , m_y(LengthModeHeight, "0%")
     , m_width(LengthModeWidth, "100%")
@@ -82,7 +82,7 @@ void SVGFilterPrimitiveStandardAttributes::parseAttribute(const QualifiedName& n
     SVGParsingError parseError = NoError;
 
     if (!isSupportedAttribute(name))
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     else if (name == SVGNames::xAttr)
         setXBaseValue(SVGLength::construct(LengthModeWidth, value, parseError));
     else if (name == SVGNames::yAttr)
@@ -109,7 +109,7 @@ bool SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute(FilterEffect
 void SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -119,7 +119,7 @@ void SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(const QualifiedNa
 
 void SVGFilterPrimitiveStandardAttributes::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (!changedByParser)
         invalidate();
@@ -149,7 +149,7 @@ RenderObject* SVGFilterPrimitiveStandardAttributes::createRenderer(RenderArena*
 bool SVGFilterPrimitiveStandardAttributes::rendererIsNeeded(const RenderStyle& style)
 {
     if (parentNode() && (parentNode()->hasTagName(SVGNames::filterTag)))
-        return SVGStyledElement::rendererIsNeeded(style);
+        return SVGElement::rendererIsNeeded(style);
 
     return false;
 }
index ee6b70f..98f91d4 100644 (file)
@@ -26,7 +26,7 @@
 #include "RenderSVGResourceFilterPrimitive.h"
 #include "SVGAnimatedLength.h"
 #include "SVGAnimatedString.h"
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
@@ -37,7 +37,7 @@ class Filter;
 class FilterEffect;
 class SVGFilterBuilder;
 
-class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement {
+class SVGFilterPrimitiveStandardAttributes : public SVGElement {
 public:
     void setStandardAttributes(FilterEffect*) const;
 
index c8ea3c8..ada5562 100644 (file)
@@ -41,11 +41,11 @@ DEFINE_ANIMATED_BOOLEAN(SVGFontElement, SVGNames::externalResourcesRequiredAttr,
 
 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFontElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document) 
+    : SVGElement(tagName, document) 
     , m_missingGlyph(0)
     , m_isGlyphCacheValid(false)
 {
index d8703ec..01fe6c2 100644 (file)
 
 #if ENABLE(SVG_FONTS)
 #include "SVGAnimatedBoolean.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGGlyphMap.h"
 #include "SVGNames.h"
 #include "SVGParserUtilities.h"
-#include "SVGStyledElement.h"
 
 namespace WebCore {
 
@@ -52,7 +52,7 @@ typedef Vector<SVGKerningPair> KerningPairVector;
 
 class SVGMissingGlyphElement;    
 
-class SVGFontElement FINAL : public SVGStyledElement
+class SVGFontElement FINAL : public SVGElement
                            , public SVGExternalResourcesRequired {
 public:
     static PassRefPtr<SVGFontElement> create(const QualifiedName&, Document*);
index ffeed32..f350256 100644 (file)
@@ -60,54 +60,6 @@ PassRefPtr<SVGFontFaceElement> SVGFontFaceElement::create(const QualifiedName& t
     return adoptRef(new SVGFontFaceElement(tagName, document));
 }
 
-static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
-{
-    if (!attrName.namespaceURI().isNull())
-        return CSSPropertyInvalid;
-    
-    static HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap = 0;
-    if (!propertyNameToIdMap) {
-        propertyNameToIdMap = new HashMap<AtomicStringImpl*, CSSPropertyID>;
-        // This is a list of all @font-face CSS properties which are exposed as SVG XML attributes
-        // Those commented out are not yet supported by WebCore's style system
-        // mapAttributeToCSSProperty(propertyNameToIdMap, accent_heightAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, alphabeticAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, ascentAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, bboxAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, cap_heightAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, descentAttr);
-        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, hangingAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, ideographicAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, mathematicalAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, overline_positionAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, overline_thicknessAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, panose_1Attr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, slopeAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, stemhAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, stemvAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, strikethrough_positionAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, strikethrough_thicknessAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, underline_positionAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, underline_thicknessAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, unicode_rangeAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, units_per_emAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, v_alphabeticAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, v_hangingAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, v_ideographicAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, v_mathematicalAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, widthsAttr);
-        // mapAttributeToCSSProperty(propertyNameToIdMap, x_heightAttr);
-    }
-    
-    return propertyNameToIdMap->get(attrName.localName().impl());
-}
-
 void SVGFontFaceElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {    
     CSSPropertyID propId = cssPropertyIdForSVGAttributeName(name);
index b34e65c..5a551ec 100644 (file)
@@ -61,6 +61,8 @@ private:
     virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
     virtual void removedFrom(ContainerNode*) OVERRIDE;
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     RefPtr<StyleRuleFontFace> m_fontFaceRule;
     SVGFontElement* m_fontElement;
 };
index 9e61daa..6fa77b8 100644 (file)
@@ -33,6 +33,7 @@ private:
     SVGFontFaceFormatElement(const QualifiedName&, Document*);
 
     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 } // namespace WebCore
index 068d577..03253b9 100644 (file)
@@ -35,6 +35,8 @@ public:
 
 private:
     SVGFontFaceNameElement(const QualifiedName&, Document*);
+
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 } // namespace WebCore
index d2b1977..150ac69 100644 (file)
@@ -37,6 +37,7 @@ private:
     SVGFontFaceSrcElement(const QualifiedName&, Document*);
     
     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 } // namespace WebCore
index 1640c6a..dcc6e87 100644 (file)
@@ -43,6 +43,7 @@ private:
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 
     void loadFont();
 
index 31c0a0c..492ac9f 100644 (file)
@@ -103,7 +103,7 @@ RenderObject* SVGGElement::createRenderer(RenderArena* arena, RenderStyle* style
 
 bool SVGGElement::rendererIsNeeded(const RenderStyle&)
 {
-    // Unlike SVGStyledElement::rendererIsNeeded(), we still create renderers, even if
+    // Unlike SVGElement::rendererIsNeeded(), we still create renderers, even if
     // display is set to 'none' - which is special to SVG <g> container elements.
     return parentOrShadowHostElement() && parentOrShadowHostElement()->isSVGElement();
 }
index 83d053b..1c493a3 100644 (file)
@@ -34,7 +34,7 @@
 namespace WebCore {
 
 inline SVGGlyphElement::SVGGlyphElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     ASSERT(hasTagName(SVGNames::glyphTag));
 }
@@ -56,20 +56,20 @@ void SVGGlyphElement::parseAttribute(const QualifiedName& name, const AtomicStri
     if (name == SVGNames::dAttr)
         invalidateGlyphCache();
     else
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
 }
 
 Node::InsertionNotificationRequest SVGGlyphElement::insertedInto(ContainerNode* rootParent)
 {
     invalidateGlyphCache();
-    return SVGStyledElement::insertedInto(rootParent);
+    return SVGElement::insertedInto(rootParent);
 }
 
 void SVGGlyphElement::removedFrom(ContainerNode* rootParent)
 {
     if (rootParent->inDocument())
         invalidateGlyphCache();
-    SVGStyledElement::removedFrom(rootParent);
+    SVGElement::removedFrom(rootParent);
 }
 
 static inline SVGGlyph::ArabicForm parseArabicForm(const AtomicString& value)
index 668bb86..27cc092 100644 (file)
 #define SVGGlyphElement_h
 
 #if ENABLE(SVG_FONTS)
+#include "SVGElement.h"
 #include "SVGGlyph.h"
-#include "SVGStyledElement.h"
 
 namespace WebCore {
 
 class SVGFontData;
 
-class SVGGlyphElement FINAL : public SVGStyledElement {
+class SVGGlyphElement FINAL : public SVGElement {
 public:
     static PassRefPtr<SVGGlyphElement> create(const QualifiedName&, Document*);
 
index 7283749..11b8e1f 100644 (file)
@@ -35,11 +35,11 @@ DEFINE_ANIMATED_STRING(SVGGlyphRefElement, XLinkNames::hrefAttr, Href, href)
 
 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGGlyphRefElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(href)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGGlyphRefElement::SVGGlyphRefElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_x(0)
     , m_y(0)
     , m_dx(0)
@@ -81,7 +81,7 @@ void SVGGlyphRefElement::parseAttribute(const QualifiedName& name, const AtomicS
     else {
         if (SVGURIReference::parseAttribute(name, value))
             return;
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     }
 }
 
index 62c5bef..b4a44ae 100644 (file)
 #define SVGGlyphRefElement_h
 
 #if ENABLE(SVG) && ENABLE(SVG_FONTS)
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
-class SVGGlyphRefElement FINAL : public SVGStyledElement,
+class SVGGlyphRefElement FINAL : public SVGElement,
                                  public SVGURIReference {
 public:
     static PassRefPtr<SVGGlyphRefElement> create(const QualifiedName&, Document*);
index 9fc9fee..8602710 100644 (file)
@@ -19,7 +19,7 @@
 
 [
     Conditional=SVG&SVG_FONTS
-] interface SVGGlyphRefElement : SVGStyledElement {
+] interface SVGGlyphRefElement : SVGElement {
     // FIXME: Use [Reflect] after https://bugs.webkit.org/show_bug.cgi?id=64843 is fixed.
     [SetterRaisesException] attribute DOMString glyphRef;
     [Reflect] attribute DOMString format;
index 8d398b6..bef44fa 100644 (file)
@@ -52,11 +52,11 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGGradientElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(gradientTransform)
     REGISTER_LOCAL_ANIMATED_PROPERTY(href)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
  
 SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_spreadMethod(SVGSpreadMethodPad)
     , m_gradientUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
 {
@@ -79,7 +79,7 @@ bool SVGGradientElement::isSupportedAttribute(const QualifiedName& attrName)
 void SVGGradientElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
     if (!isSupportedAttribute(name)) {
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
         return;
     }
 
@@ -116,7 +116,7 @@ void SVGGradientElement::parseAttribute(const QualifiedName& name, const AtomicS
 void SVGGradientElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -128,7 +128,7 @@ void SVGGradientElement::svgAttributeChanged(const QualifiedName& attrName)
     
 void SVGGradientElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (changedByParser)
         return;
index ae8a4cf..661ac4e 100644 (file)
@@ -26,9 +26,9 @@
 #include "SVGAnimatedBoolean.h"
 #include "SVGAnimatedEnumeration.h"
 #include "SVGAnimatedTransformList.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "SVGURIReference.h"
 #include "SVGUnitTypes.h"
 
@@ -74,7 +74,7 @@ struct SVGPropertyTraits<SVGSpreadMethodType> {
     }
 };
 
-class SVGGradientElement : public SVGStyledElement,
+class SVGGradientElement : public SVGElement,
                            public SVGURIReference,
                            public SVGExternalResourcesRequired {
 public:
index 762bbe9..993be34 100644 (file)
@@ -26,7 +26,7 @@
 [
     Conditional=SVG,
     DoNotCheckConstants
-] interface SVGGradientElement : SVGStyledElement {
+] interface SVGGradientElement : SVGElement {
     // Spread Method Types
     const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
     const unsigned short SVG_SPREADMETHOD_PAD     = 1;
index 3814d86..f6d0a4a 100644 (file)
@@ -38,12 +38,12 @@ DEFINE_ANIMATED_TRANSFORM_LIST(SVGGraphicsElement, SVGNames::transformAttr, Tran
 
 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGGraphicsElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(transform)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
 END_REGISTER_ANIMATED_PROPERTIES
 
 SVGGraphicsElement::SVGGraphicsElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     registerAnimatedPropertiesForSVGGraphicsElement();
 }
@@ -104,7 +104,7 @@ bool SVGGraphicsElement::isSupportedAttribute(const QualifiedName& attrName)
 void SVGGraphicsElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
     if (!isSupportedAttribute(name)) {
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
         return;
     }
 
@@ -125,7 +125,7 @@ void SVGGraphicsElement::parseAttribute(const QualifiedName& name, const AtomicS
 void SVGGraphicsElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
index b8aa818..764692c 100644 (file)
@@ -23,7 +23,7 @@
 
 #if ENABLE(SVG)
 #include "SVGAnimatedTransformList.h"
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 #include "SVGTests.h"
 #include "SVGTransformable.h"
 
@@ -32,7 +32,7 @@ namespace WebCore {
 class AffineTransform;
 class Path;
 
-class SVGGraphicsElement : public SVGStyledElement, public SVGTransformable, public SVGTests {
+class SVGGraphicsElement : public SVGElement, public SVGTransformable, public SVGTests {
 public:
     virtual ~SVGGraphicsElement();
 
index f96e231..9fb0b62 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGGraphicsElement : SVGStyledElement {
+] interface SVGGraphicsElement : SVGElement {
     readonly attribute SVGAnimatedTransformList transform;
 
     readonly attribute SVGElement nearestViewportElement;
index 006d45d..5ffdb5e 100644 (file)
@@ -89,8 +89,7 @@ AffineTransform SVGLocatable::computeCTM(SVGElement* element, CTMScope mode, Sty
         if (!currentElement->isSVGElement())
             break;
 
-        if (toSVGElement(currentElement)->isSVGStyledElement())
-            ctm = toSVGStyledElement(currentElement)->localCoordinateSpaceTransform(mode).multiply(ctm);
+        ctm = toSVGElement(currentElement)->localCoordinateSpaceTransform(mode).multiply(ctm);
 
         // For getCTM() computation, stop at the nearest viewport element
         if (currentElement == stopAtElement)
index 79d4f10..654cfde 100644 (file)
@@ -56,6 +56,8 @@ private:
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE;
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     void notifyParentOfPathChange(ContainerNode*);
 
     BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGMPathElement)
index 1d41db8..6eef257 100644 (file)
@@ -70,11 +70,11 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGMarkerElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
     REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
     REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_refX(LengthModeWidth)
     , m_refY(LengthModeHeight)
     , m_markerWidth(LengthModeWidth, "3")
@@ -131,7 +131,7 @@ void SVGMarkerElement::parseAttribute(const QualifiedName& name, const AtomicStr
     SVGParsingError parseError = NoError;
 
     if (!isSupportedAttribute(name))
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     else if (name == SVGNames::markerUnitsAttr) {
         SVGMarkerUnitsType propertyValue = SVGPropertyTraits<SVGMarkerUnitsType>::fromString(value);
         if (propertyValue > 0)
@@ -163,7 +163,7 @@ void SVGMarkerElement::parseAttribute(const QualifiedName& name, const AtomicStr
 void SVGMarkerElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -181,7 +181,7 @@ void SVGMarkerElement::svgAttributeChanged(const QualifiedName& attrName)
 
 void SVGMarkerElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (changedByParser)
         return;
index 6844349..321bef5 100644 (file)
@@ -28,9 +28,9 @@
 #include "SVGAnimatedLength.h"
 #include "SVGAnimatedPreserveAspectRatio.h"
 #include "SVGAnimatedRect.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
-#include "SVGStyledElement.h"
 
 namespace WebCore {
 
@@ -94,7 +94,7 @@ struct SVGPropertyTraits<SVGMarkerOrientType> {
     }
 };
 
-class SVGMarkerElement FINAL : public SVGStyledElement,
+class SVGMarkerElement FINAL : public SVGElement,
                                public SVGExternalResourcesRequired,
                                public SVGFitToViewBox {
 public:
index 7186389..e44b025 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGMarkerElement : SVGStyledElement {
+] interface SVGMarkerElement : SVGElement {
     // Marker Unit Types
     const unsigned short SVG_MARKERUNITS_UNKNOWN        = 0;
     const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;
index 099aadf..aaf6efa 100644 (file)
@@ -53,12 +53,12 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGMaskElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(width)
     REGISTER_LOCAL_ANIMATED_PROPERTY(height)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGMaskElement::SVGMaskElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_maskUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_maskContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     , m_x(LengthModeWidth, "-10%")
@@ -99,7 +99,7 @@ void SVGMaskElement::parseAttribute(const QualifiedName& name, const AtomicStrin
     SVGParsingError parseError = NoError;
 
     if (!isSupportedAttribute(name))
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     else if (name == SVGNames::maskUnitsAttr) {
         SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
         if (propertyValue > 0)
@@ -130,7 +130,7 @@ void SVGMaskElement::parseAttribute(const QualifiedName& name, const AtomicStrin
 void SVGMaskElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -148,7 +148,7 @@ void SVGMaskElement::svgAttributeChanged(const QualifiedName& attrName)
 
 void SVGMaskElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (changedByParser)
         return;
index 7c9d4a0..595ec3e 100644 (file)
 #include "SVGAnimatedBoolean.h"
 #include "SVGAnimatedEnumeration.h"
 #include "SVGAnimatedLength.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "SVGTests.h"
 #include "SVGUnitTypes.h"
 
 namespace WebCore {
 
-class SVGMaskElement FINAL : public SVGStyledElement,
+class SVGMaskElement FINAL : public SVGElement,
                              public SVGTests,
                              public SVGExternalResourcesRequired {
 public:
index 049a8db..62969f2 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGMaskElement : SVGStyledElement {
+] interface SVGMaskElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration maskUnits;
     readonly attribute SVGAnimatedEnumeration maskContentUnits;
 
index 7ec6d54..ba6c660 100644 (file)
@@ -32,6 +32,8 @@ public:
 
 private:
     SVGMetadataElement(const QualifiedName&, Document*);
+
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 };
 
 } // namespace WebCore
index 5c98015..dc72d33 100644 (file)
@@ -26,7 +26,7 @@
 namespace WebCore {
 
 inline SVGMissingGlyphElement::SVGMissingGlyphElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     ASSERT(hasTagName(SVGNames::missing_glyphTag));
 }
index 48140ad..5e611c5 100644 (file)
 #define SVGMissingGlyphElement_h
 
 #if ENABLE(SVG_FONTS)
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 namespace WebCore {
 
-class SVGMissingGlyphElement FINAL : public SVGStyledElement {
+class SVGMissingGlyphElement FINAL : public SVGElement {
 public:
     static PassRefPtr<SVGMissingGlyphElement> create(const QualifiedName&, Document*);
 
index 647741a..9a0e3e6 100644 (file)
@@ -25,6 +25,6 @@
 
 [
     Conditional=SVG&SVG_FONTS
-] interface SVGMissingGlyphElement : SVGStyledElement {
+] interface SVGMissingGlyphElement : SVGElement {
 };
 
index 0cd3df9..0241500 100644 (file)
@@ -69,12 +69,12 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGPatternElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
     REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
     REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio) 
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_x(LengthModeWidth)
     , m_y(LengthModeHeight)
     , m_width(LengthModeWidth)
@@ -116,7 +116,7 @@ void SVGPatternElement::parseAttribute(const QualifiedName& name, const AtomicSt
     SVGParsingError parseError = NoError;
 
     if (!isSupportedAttribute(name))
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
     else if (name == SVGNames::patternUnitsAttr) {
         SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
         if (propertyValue > 0)
@@ -155,7 +155,7 @@ void SVGPatternElement::parseAttribute(const QualifiedName& name, const AtomicSt
 void SVGPatternElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
@@ -173,7 +173,7 @@ void SVGPatternElement::svgAttributeChanged(const QualifiedName& attrName)
 
 void SVGPatternElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
 {
-    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
 
     if (changedByParser)
         return;
index 2dabad4..6db6596 100644 (file)
 #include "SVGAnimatedPreserveAspectRatio.h"
 #include "SVGAnimatedRect.h"
 #include "SVGAnimatedTransformList.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGNames.h"
-#include "SVGStyledElement.h"
 #include "SVGTests.h"
 #include "SVGURIReference.h"
 #include "SVGUnitTypes.h"
@@ -40,7 +40,7 @@ namespace WebCore {
 
 struct PatternAttributes;
  
-class SVGPatternElement FINAL : public SVGStyledElement,
+class SVGPatternElement FINAL : public SVGElement,
                                 public SVGURIReference,
                                 public SVGTests,
                                 public SVGExternalResourcesRequired,
index 262a033..50d1385 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGPatternElement : SVGStyledElement {
+] interface SVGPatternElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration   patternUnits;
     readonly attribute SVGAnimatedEnumeration   patternContentUnits;
     readonly attribute SVGAnimatedTransformList patternTransform;
index 43c2411..99b9d87 100644 (file)
@@ -71,6 +71,7 @@ private:
     virtual void dispatchLoadEvent() { SVGExternalResourcesRequired::dispatchLoadEvent(this); }
 
     virtual PassRefPtr<Element> cloneElementWithoutAttributesAndChildren();
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
 
     // SVGExternalResourcesRequired
     virtual void setHaveFiredLoadEvent(bool haveFiredLoadEvent) { ScriptElement::setHaveFiredLoadEvent(haveFiredLoadEvent); }
index 7309ecd..52626b3 100644 (file)
@@ -38,11 +38,11 @@ DEFINE_ANIMATED_NUMBER(SVGStopElement, SVGNames::offsetAttr, Offset, offset)
 
 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGStopElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(offset)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGStopElement::SVGStopElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_offset(0)
 {
     ASSERT(hasTagName(SVGNames::stopTag));
@@ -65,7 +65,7 @@ bool SVGStopElement::isSupportedAttribute(const QualifiedName& attrName)
 void SVGStopElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
     if (!isSupportedAttribute(name)) {
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
         return;
     }
 
@@ -83,7 +83,7 @@ void SVGStopElement::parseAttribute(const QualifiedName& name, const AtomicStrin
 void SVGStopElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
index c93a9ff..6679a71 100644 (file)
 
 #if ENABLE(SVG)
 #include "SVGAnimatedNumber.h"
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 namespace WebCore {
 
-class SVGStopElement FINAL : public SVGStyledElement {
+class SVGStopElement FINAL : public SVGElement {
 public:
     static PassRefPtr<SVGStopElement> create(const QualifiedName&, Document*);
 
index 86413f7..8411974 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGStopElement : SVGStyledElement {
+] interface SVGStopElement : SVGElement {
     readonly attribute SVGAnimatedNumber offset;
 };
 
index 033ee59..3d23871 100644 (file)
@@ -56,6 +56,8 @@ private:
     virtual void removedFrom(ContainerNode*) OVERRIDE;
     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     virtual void finishParsingChildren();
 
     virtual bool isLoading() const { return m_styleSheetOwner.isLoading(); }
diff --git a/Source/WebCore/svg/SVGStyledElement.cpp b/Source/WebCore/svg/SVGStyledElement.cpp
deleted file mode 100644 (file)
index b5da77d..0000000
+++ /dev/null
@@ -1,487 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "SVGStyledElement.h"
-
-#include "Attr.h"
-#include "CSSParser.h"
-#include "Document.h"
-#include "ElementTraversal.h"
-#include "EventNames.h"
-#include "HTMLNames.h"
-#include "RenderObject.h"
-#include "RenderSVGResource.h"
-#include "RenderSVGResourceClipper.h"
-#include "RenderSVGResourceFilter.h"
-#include "RenderSVGResourceMasker.h"
-#include "SVGElement.h"
-#include "SVGElementInstance.h"
-#include "SVGElementRareData.h"
-#include "SVGNames.h"
-#include "SVGRenderStyle.h"
-#include "SVGRenderSupport.h"
-#include "SVGSVGElement.h"
-#include "SVGUseElement.h"
-#include "ShadowRoot.h"
-#include <wtf/Assertions.h>
-#include <wtf/HashMap.h>
-#include <wtf/StdLibExtras.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-// Animated property definitions
-DEFINE_ANIMATED_STRING(SVGStyledElement, HTMLNames::classAttr, ClassName, className)
-
-BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGStyledElement)
-    REGISTER_LOCAL_ANIMATED_PROPERTY(className)
-END_REGISTER_ANIMATED_PROPERTIES
-
-using namespace SVGNames;
-
-void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName)
-{
-    // FIXME: when CSS supports "transform-origin" the special case for transform_originAttr can be removed.
-    CSSPropertyID propertyId = cssPropertyID(attrName.localName());
-    if (!propertyId && attrName == transform_originAttr)
-        propertyId = CSSPropertyWebkitTransformOrigin; // cssPropertyID("-webkit-transform-origin")
-    ASSERT(propertyId > 0);
-    propertyNameToIdMap->set(attrName.localName().impl(), propertyId);
-}
-
-SVGStyledElement::SVGStyledElement(const QualifiedName& tagName, Document* document)
-    : SVGElement(tagName, document)
-{
-    registerAnimatedPropertiesForSVGStyledElement();
-}
-
-String SVGStyledElement::title() const
-{
-    // According to spec, we should not return titles when hovering over root <svg> elements (those
-    // <title> elements are the title of the document, not a tooltip) so we instantly return.
-    if (isOutermostSVGSVGElement())
-        return String();
-
-    // Walk up the tree, to find out whether we're inside a <use> shadow tree, to find the right title.
-    if (isInShadowTree()) {
-        Element* shadowHostElement = toShadowRoot(treeScope()->rootNode())->hostElement();
-        // At this time, SVG nodes are not allowed in non-<use> shadow trees, so any shadow root we do
-        // have should be a use. The assert and following test is here to catch future shadow DOM changes
-        // that do enable SVG in a shadow tree.
-        ASSERT(!shadowHostElement || shadowHostElement->hasTagName(SVGNames::useTag));
-        if (shadowHostElement && shadowHostElement->hasTagName(SVGNames::useTag)) {
-            SVGUseElement* useElement = toSVGUseElement(shadowHostElement);
-            // If the <use> title is not empty we found the title to use.
-            String useTitle(useElement->title());
-            if (!useTitle.isEmpty())
-               return useTitle;
-        }
-    }
-
-    // If we aren't an instance in a <use> or the <use> title was not found, then find the first
-    // <title> child of this element.
-    Element* titleElement = ElementTraversal::firstWithin(this);
-    for (; titleElement; titleElement = ElementTraversal::nextSibling(titleElement)) {
-        if (titleElement->hasTagName(SVGNames::titleTag) && titleElement->isSVGElement())
-            break;
-    }
-
-    // If a title child was found, return the text contents.
-    if (titleElement)
-        return titleElement->innerText();
-    
-    // Otherwise return a null/empty string.
-    return String();
-}
-
-bool SVGStyledElement::rendererIsNeeded(const RenderStyle& style)
-{
-    // http://www.w3.org/TR/SVG/extend.html#PrivateData
-    // Prevent anything other than SVG renderers from appearing in our render tree
-    // Spec: SVG allows inclusion of elements from foreign namespaces anywhere
-    // with the SVG content. In general, the SVG user agent will include the unknown
-    // elements in the DOM but will otherwise ignore unknown elements. 
-    if (!parentOrShadowHostElement() || parentOrShadowHostElement()->isSVGElement())
-        return StyledElement::rendererIsNeeded(style);
-
-    return false;
-}
-
-CSSPropertyID SVGStyledElement::cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
-{
-    if (!attrName.namespaceURI().isNull())
-        return CSSPropertyInvalid;
-    
-    static HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap = 0;
-    if (!propertyNameToIdMap) {
-        propertyNameToIdMap = new HashMap<AtomicStringImpl*, 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_profileAttr);
-        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, kerningAttr);
-        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, 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);
-    }
-    
-    return propertyNameToIdMap->get(attrName.localName().impl());
-}
-
-typedef HashMap<QualifiedName, AnimatedPropertyType> AttributeToPropertyTypeMap;
-static inline AttributeToPropertyTypeMap& cssPropertyToTypeMap()
-{
-    DEFINE_STATIC_LOCAL(AttributeToPropertyTypeMap, s_cssPropertyMap, ());
-
-    if (!s_cssPropertyMap.isEmpty())
-        return s_cssPropertyMap;
-
-    // Fill the map for the first use.
-    s_cssPropertyMap.set(alignment_baselineAttr, AnimatedString);
-    s_cssPropertyMap.set(baseline_shiftAttr, AnimatedString);
-    s_cssPropertyMap.set(buffered_renderingAttr, AnimatedString);
-    s_cssPropertyMap.set(clipAttr, AnimatedRect);
-    s_cssPropertyMap.set(clip_pathAttr, AnimatedString);
-    s_cssPropertyMap.set(clip_ruleAttr, AnimatedString);
-    s_cssPropertyMap.set(SVGNames::colorAttr, AnimatedColor);
-    s_cssPropertyMap.set(color_interpolationAttr, AnimatedString);
-    s_cssPropertyMap.set(color_interpolation_filtersAttr, AnimatedString);
-    s_cssPropertyMap.set(color_profileAttr, AnimatedString);
-    s_cssPropertyMap.set(color_renderingAttr, AnimatedString); 
-    s_cssPropertyMap.set(cursorAttr, AnimatedString);
-    s_cssPropertyMap.set(displayAttr, AnimatedString);
-    s_cssPropertyMap.set(dominant_baselineAttr, AnimatedString);
-    s_cssPropertyMap.set(fillAttr, AnimatedColor);
-    s_cssPropertyMap.set(fill_opacityAttr, AnimatedNumber);
-    s_cssPropertyMap.set(fill_ruleAttr, AnimatedString);
-    s_cssPropertyMap.set(filterAttr, AnimatedString);
-    s_cssPropertyMap.set(flood_colorAttr, AnimatedColor);
-    s_cssPropertyMap.set(flood_opacityAttr, AnimatedNumber);
-    s_cssPropertyMap.set(font_familyAttr, AnimatedString);
-    s_cssPropertyMap.set(font_sizeAttr, AnimatedLength);
-    s_cssPropertyMap.set(font_stretchAttr, AnimatedString);
-    s_cssPropertyMap.set(font_styleAttr, AnimatedString);
-    s_cssPropertyMap.set(font_variantAttr, AnimatedString);
-    s_cssPropertyMap.set(font_weightAttr, AnimatedString);
-    s_cssPropertyMap.set(image_renderingAttr, AnimatedString);
-    s_cssPropertyMap.set(kerningAttr, AnimatedLength);
-    s_cssPropertyMap.set(letter_spacingAttr, AnimatedLength);
-    s_cssPropertyMap.set(lighting_colorAttr, AnimatedColor);
-    s_cssPropertyMap.set(marker_endAttr, AnimatedString);
-    s_cssPropertyMap.set(marker_midAttr, AnimatedString);
-    s_cssPropertyMap.set(marker_startAttr, AnimatedString);
-    s_cssPropertyMap.set(maskAttr, AnimatedString);
-    s_cssPropertyMap.set(mask_typeAttr, AnimatedString);
-    s_cssPropertyMap.set(opacityAttr, AnimatedNumber);
-    s_cssPropertyMap.set(overflowAttr, AnimatedString);
-    s_cssPropertyMap.set(pointer_eventsAttr, AnimatedString);
-    s_cssPropertyMap.set(shape_renderingAttr, AnimatedString);
-    s_cssPropertyMap.set(stop_colorAttr, AnimatedColor);
-    s_cssPropertyMap.set(stop_opacityAttr, AnimatedNumber);
-    s_cssPropertyMap.set(strokeAttr, AnimatedColor);
-    s_cssPropertyMap.set(stroke_dasharrayAttr, AnimatedLengthList);
-    s_cssPropertyMap.set(stroke_dashoffsetAttr, AnimatedLength);
-    s_cssPropertyMap.set(stroke_linecapAttr, AnimatedString);
-    s_cssPropertyMap.set(stroke_linejoinAttr, AnimatedString);
-    s_cssPropertyMap.set(stroke_miterlimitAttr, AnimatedNumber);
-    s_cssPropertyMap.set(stroke_opacityAttr, AnimatedNumber);
-    s_cssPropertyMap.set(stroke_widthAttr, AnimatedLength);
-    s_cssPropertyMap.set(text_anchorAttr, AnimatedString);
-    s_cssPropertyMap.set(text_decorationAttr, AnimatedString);
-    s_cssPropertyMap.set(text_renderingAttr, AnimatedString);
-    s_cssPropertyMap.set(vector_effectAttr, AnimatedString);
-    s_cssPropertyMap.set(visibilityAttr, AnimatedString);
-    s_cssPropertyMap.set(word_spacingAttr, AnimatedLength);
-    return s_cssPropertyMap;
-}
-
-void SVGStyledElement::animatedPropertyTypeForAttribute(const QualifiedName& attrName, Vector<AnimatedPropertyType>& propertyTypes)
-{
-    SVGElement::animatedPropertyTypeForAttribute(attrName, propertyTypes);
-    if (!propertyTypes.isEmpty())
-        return;
-
-    AttributeToPropertyTypeMap& cssPropertyTypeMap = cssPropertyToTypeMap();
-    if (cssPropertyTypeMap.contains(attrName))
-        propertyTypes.append(cssPropertyTypeMap.get(attrName));
-}
-
-bool SVGStyledElement::isAnimatableCSSProperty(const QualifiedName& attrName)
-{
-    return cssPropertyToTypeMap().contains(attrName);
-}
-
-bool SVGStyledElement::isPresentationAttribute(const QualifiedName& name) const
-{
-    if (SVGStyledElement::cssPropertyIdForSVGAttributeName(name) > 0)
-        return true;
-    return SVGElement::isPresentationAttribute(name);
-}
-
-void SVGStyledElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style)
-{
-    CSSPropertyID propertyID = SVGStyledElement::cssPropertyIdForSVGAttributeName(name);
-    if (propertyID > 0)
-        addPropertyToPresentationAttributeStyle(style, propertyID, value);
-}
-
-void SVGStyledElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
-{
-    // SVG animation has currently requires special storage of values so we set
-    // the className here.  svgAttributeChanged actually causes the resulting
-    // style updates (instead of StyledElement::parseAttribute). We don't
-    // tell StyledElement about the change to avoid parsing the class list twice
-    if (name == HTMLNames::classAttr) {
-        setClassNameBaseValue(value);
-        return;
-    }
-
-    // id is handled by StyledElement which SVGElement inherits from
-    SVGElement::parseAttribute(name, value);
-}
-
-bool SVGStyledElement::isKnownAttribute(const QualifiedName& attrName)
-{
-    return isIdAttributeName(attrName);
-}
-
-void SVGStyledElement::svgAttributeChanged(const QualifiedName& attrName)
-{
-    CSSPropertyID propId = SVGStyledElement::cssPropertyIdForSVGAttributeName(attrName);
-    if (propId > 0) {
-        SVGElementInstance::invalidateAllInstancesOfElement(this);
-        return;
-    }
-
-    if (attrName == HTMLNames::classAttr) {
-        classAttributeChanged(className());
-        SVGElementInstance::invalidateAllInstancesOfElement(this);
-        return;
-    }
-
-    if (isIdAttributeName(attrName)) {
-        RenderObject* object = renderer();
-        // Notify resources about id changes, this is important as we cache resources by id in SVGDocumentExtensions
-        if (object && object->isSVGResourceContainer())
-            object->toRenderSVGResourceContainer()->idChanged();
-        if (inDocument())
-            buildPendingResourcesIfNeeded();
-        SVGElementInstance::invalidateAllInstancesOfElement(this);
-        return;
-    }
-}
-
-Node::InsertionNotificationRequest SVGStyledElement::insertedInto(ContainerNode* rootParent)
-{
-    SVGElement::insertedInto(rootParent);
-    updateRelativeLengthsInformation();
-    buildPendingResourcesIfNeeded();
-    return InsertionDone;
-}
-
-void SVGStyledElement::buildPendingResourcesIfNeeded()
-{
-    Document* document = this->document();
-    if (!needsPendingResourceHandling() || !document || !inDocument() || isInShadowTree())
-        return;
-
-    SVGDocumentExtensions* extensions = document->accessSVGExtensions();
-    String resourceId = getIdAttribute();
-    if (!extensions->hasPendingResource(resourceId))
-        return;
-
-    // Mark pending resources as pending for removal.
-    extensions->markPendingResourcesForRemoval(resourceId);
-
-    // Rebuild pending resources for each client of a pending resource that is being removed.
-    while (Element* clientElement = extensions->removeElementFromPendingResourcesForRemoval(resourceId)) {
-        ASSERT(clientElement->hasPendingResources());
-        if (clientElement->hasPendingResources()) {
-            clientElement->buildPendingResource();
-            extensions->clearHasPendingResourcesIfPossible(clientElement);
-        }
-    }
-}
-
-void SVGStyledElement::removedFrom(ContainerNode* rootParent)
-{
-    if (rootParent->inDocument())
-        updateRelativeLengthsInformation(false, this);
-    SVGElement::removedFrom(rootParent);
-    SVGElementInstance::invalidateAllInstancesOfElement(this);
-}
-
-void SVGStyledElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
-{
-    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
-
-    // Invalidate all SVGElementInstances associated with us
-    if (!changedByParser)
-        SVGElementInstance::invalidateAllInstancesOfElement(this);
-}
-
-PassRefPtr<CSSValue> SVGStyledElement::getPresentationAttribute(const String& name)
-{
-    if (!hasAttributesWithoutUpdate())
-        return 0;
-
-    QualifiedName attributeName(nullAtom, name, nullAtom);
-    const Attribute* attribute = findAttributeByName(attributeName);
-    if (!attribute)
-        return 0;
-
-    RefPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(SVGAttributeMode);
-    CSSPropertyID propertyID = SVGStyledElement::cssPropertyIdForSVGAttributeName(attribute->name());
-    style->setProperty(propertyID, attribute->value());
-    RefPtr<CSSValue> cssValue = style->getPropertyCSSValue(propertyID);
-    return cssValue ? cssValue->cloneForCSSOM() : 0;
-}
-
-bool SVGStyledElement::instanceUpdatesBlocked() const
-{
-    return hasSVGRareData() && svgRareData()->instanceUpdatesBlocked();
-}
-
-void SVGStyledElement::setInstanceUpdatesBlocked(bool value)
-{
-    if (hasSVGRareData())
-        svgRareData()->setInstanceUpdatesBlocked(value);
-}
-
-AffineTransform SVGStyledElement::localCoordinateSpaceTransform(SVGLocatable::CTMScope) const
-{
-    // To be overriden by SVGGraphicsElement (or as special case SVGTextElement and SVGPatternElement)
-    return AffineTransform();
-}
-
-void SVGStyledElement::updateRelativeLengthsInformation(bool hasRelativeLengths, SVGStyledElement* element)
-{
-    // If we're not yet in a document, this function will be called again from insertedInto(). Do nothing now.
-    if (!inDocument())
-        return;
-
-    // An element wants to notify us that its own relative lengths state changed.
-    // Register it in the relative length map, and register us in the parent relative length map.
-    // Register the parent in the grandparents map, etc. Repeat procedure until the root of the SVG tree.
-
-    if (hasRelativeLengths)
-        m_elementsWithRelativeLengths.add(element);
-    else {
-        if (!m_elementsWithRelativeLengths.contains(element)) {
-            // We were never registered. Do nothing.
-            return;
-        }
-
-        m_elementsWithRelativeLengths.remove(element);
-    }
-
-    // Find first styled parent node, and notify it that we've changed our relative length state.
-    ContainerNode* node = parentNode();
-    while (node) {
-        if (!node->isSVGElement())
-            break;
-
-        SVGElement* element = toSVGElement(node);
-        if (!element->isSVGStyledElement()) {
-            node = node->parentNode();
-            continue;
-        }
-
-        // Register us in the parent element map.
-        toSVGStyledElement(element)->updateRelativeLengthsInformation(hasRelativeLengths, this);
-        break;
-    }
-}
-
-bool SVGStyledElement::isMouseFocusable() const
-{
-    if (!isFocusable())
-        return false;
-    Element* eventTarget = const_cast<SVGStyledElement *>(this);
-    return eventTarget->hasEventListeners(eventNames().focusinEvent) || eventTarget->hasEventListeners(eventNames().focusoutEvent);
-}
-
-bool SVGStyledElement::isKeyboardFocusable(KeyboardEvent*) const
-{
-    return isMouseFocusable();
-}
-
-}
-
-#endif // ENABLE(SVG)
diff --git a/Source/WebCore/svg/SVGStyledElement.h b/Source/WebCore/svg/SVGStyledElement.h
deleted file mode 100644 (file)
index 38c947c..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGStyledElement_h
-#define SVGStyledElement_h
-
-#if ENABLE(SVG)
-#include "CSSPropertyNames.h"
-#include "SVGAnimatedString.h"
-#include "SVGElement.h"
-#include "SVGLocatable.h"
-#include <wtf/HashSet.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
-void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName);
-
-class CSSValue;
-class CSSStyleDeclaration;
-
-// FIXME(webkit.org/b/107386): SVGStyledElement should be merged into SVGElement as specified by SVG2.
-class SVGStyledElement : public SVGElement {
-public:
-    virtual String title() const OVERRIDE;
-
-    bool hasRelativeLengths() const { return !m_elementsWithRelativeLengths.isEmpty(); }
-
-    virtual bool supportsMarkers() const { return false; }
-
-    PassRefPtr<CSSValue> getPresentationAttribute(const String& name);
-
-    bool isKnownAttribute(const QualifiedName&);
-
-    bool instanceUpdatesBlocked() const;
-    void setInstanceUpdatesBlocked(bool);
-
-    virtual void animatedPropertyTypeForAttribute(const QualifiedName&, Vector<AnimatedPropertyType>&);
-    static bool isAnimatableCSSProperty(const QualifiedName&);
-
-    virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const;
-
-    virtual bool needsPendingResourceHandling() const { return true; }
-
-protected: 
-    SVGStyledElement(const QualifiedName&, Document*);
-    virtual bool rendererIsNeeded(const RenderStyle&);
-
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
-    virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE;
-    virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE;
-
-    virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
-    virtual void removedFrom(ContainerNode*) OVERRIDE;
-    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
-
-    static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName&);
-    void updateRelativeLengthsInformation() { updateRelativeLengthsInformation(selfHasRelativeLengths(), this); }
-    void updateRelativeLengthsInformation(bool hasRelativeLengths, SVGStyledElement*);
-
-    virtual bool selfHasRelativeLengths() const { return false; }
-
-private:
-    virtual bool isSVGStyledElement() const OVERRIDE FINAL { return true; }
-
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE;
-    virtual bool isMouseFocusable() const OVERRIDE;
-
-    void buildPendingResourcesIfNeeded();
-
-    HashSet<SVGStyledElement*> m_elementsWithRelativeLengths;
-
-    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGStyledElement)
-        DECLARE_ANIMATED_STRING(ClassName, className)
-    END_DECLARE_ANIMATED_PROPERTIES
-};
-
-inline SVGStyledElement* toSVGStyledElement(Node* node)
-{
-    ASSERT_WITH_SECURITY_IMPLICATION(!node || (node->isStyledElement() && node->isSVGElement()));
-    return static_cast<SVGStyledElement*>(node);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG)
-#endif // SVGStyledElement
diff --git a/Source/WebCore/svg/SVGStyledElement.idl b/Source/WebCore/svg/SVGStyledElement.idl
deleted file mode 100644 (file)
index f7f9490..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2007 Rob Buis <rwlbuis@gmail.com>
- * Copyright (C) 2006 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-[
-    NoInterfaceObject,
-    Conditional=SVG
-] interface SVGStyledElement : SVGElement {
-    readonly attribute SVGAnimatedString className;
-    readonly attribute CSSStyleDeclaration style;
-
-    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
-};
-
index ddc7675..2d6d05d 100644 (file)
@@ -39,11 +39,11 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGSymbolElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
     REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
     REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio) 
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGSymbolElement::SVGSymbolElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     ASSERT(hasTagName(SVGNames::symbolTag));
     registerAnimatedPropertiesForSVGSymbolElement();
@@ -68,7 +68,7 @@ bool SVGSymbolElement::isSupportedAttribute(const QualifiedName& attrName)
 void SVGSymbolElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
     if (!isSupportedAttribute(name)) {
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
         return;
     }
 
@@ -85,7 +85,7 @@ void SVGSymbolElement::parseAttribute(const QualifiedName& name, const AtomicStr
 void SVGSymbolElement::svgAttributeChanged(const QualifiedName& attrName)
 {
     if (!isSupportedAttribute(attrName)) {
-        SVGStyledElement::svgAttributeChanged(attrName);
+        SVGElement::svgAttributeChanged(attrName);
         return;
     }
 
index 6bbdfd7..d3e24f5 100644 (file)
 #include "SVGAnimatedBoolean.h"
 #include "SVGAnimatedPreserveAspectRatio.h"
 #include "SVGAnimatedRect.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
-#include "SVGStyledElement.h"
 
 namespace WebCore {
 
-class SVGSymbolElement FINAL : public SVGStyledElement,
+class SVGSymbolElement FINAL : public SVGElement,
                                public SVGExternalResourcesRequired,
                                public SVGFitToViewBox {
 public:
index 17914ef..75b9913 100644 (file)
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG
-] interface SVGSymbolElement : SVGStyledElement {
+] interface SVGSymbolElement : SVGElement {
 };
 
 SVGSymbolElement implements SVGExternalResourcesRequired;
index 6fdbf9a..7fe07a7 100644 (file)
@@ -277,7 +277,7 @@ void SVGTRefElement::buildPendingResource()
 
 Node::InsertionNotificationRequest SVGTRefElement::insertedInto(ContainerNode* rootParent)
 {
-    SVGStyledElement::insertedInto(rootParent);
+    SVGElement::insertedInto(rootParent);
     if (rootParent->inDocument())
         buildPendingResource();
     return InsertionDone;
@@ -285,7 +285,7 @@ Node::InsertionNotificationRequest SVGTRefElement::insertedInto(ContainerNode* r
 
 void SVGTRefElement::removedFrom(ContainerNode* rootParent)
 {
-    SVGStyledElement::removedFrom(rootParent);
+    SVGElement::removedFrom(rootParent);
     if (rootParent->inDocument())
         m_targetListener->detach();
 }
index 51706f0..ae939a9 100644 (file)
@@ -28,7 +28,7 @@
 namespace WebCore {
 
 inline SVGTitleElement::SVGTitleElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
 {
     ASSERT(hasTagName(SVGNames::titleTag));
 }
@@ -40,7 +40,7 @@ PassRefPtr<SVGTitleElement> SVGTitleElement::create(const QualifiedName& tagName
 
 Node::InsertionNotificationRequest SVGTitleElement::insertedInto(ContainerNode* rootParent)
 {
-    SVGStyledElement::insertedInto(rootParent);
+    SVGElement::insertedInto(rootParent);
     if (!rootParent->inDocument())
         return InsertionDone;
     if (firstChild())
index 0e3b99d..e4de48c 100644 (file)
 #define SVGTitleElement_h
 #if ENABLE(SVG)
 
-#include "SVGStyledElement.h"
+#include "SVGElement.h"
 
 namespace WebCore {
 
-class SVGTitleElement FINAL : public SVGStyledElement {
+class SVGTitleElement FINAL : public SVGElement {
 public:
     static PassRefPtr<SVGTitleElement> create(const QualifiedName&, Document*);
 
index 9895c7a..8b506c9 100644 (file)
@@ -25,6 +25,6 @@
 
 [
     Conditional=SVG
-] interface SVGTitleElement : SVGStyledElement {
+] interface SVGTitleElement : SVGElement {
 };
 
index 094ced9..99c5537 100644 (file)
@@ -26,9 +26,9 @@
 
 #include "AffineTransform.h"
 #include "FloatConversion.h"
+#include "SVGElement.h"
 #include "SVGNames.h"
 #include "SVGParserUtilities.h"
-#include "SVGStyledElement.h"
 #include "SVGTransformList.h"
 
 namespace WebCore {
index d0cbe70..d6b674b 100644 (file)
@@ -940,10 +940,10 @@ bool SVGUseElement::selfHasRelativeLengths() const
         return false;
 
     SVGElement* element = m_targetElementInstance->correspondingElement();
-    if (!element || !element->isSVGStyledElement())
+    if (!element)
         return false;
 
-    return toSVGStyledElement(element)->hasRelativeLengths();
+    return element->hasRelativeLengths();
 }
 
 void SVGUseElement::notifyFinished(CachedResource* resource)
index 7d010a4..e823dea 100644 (file)
@@ -40,11 +40,11 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGViewElement)
     REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
     REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
     REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
-    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
+    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
 END_REGISTER_ANIMATED_PROPERTIES
 
 inline SVGViewElement::SVGViewElement(const QualifiedName& tagName, Document* document)
-    : SVGStyledElement(tagName, document)
+    : SVGElement(tagName, document)
     , m_zoomAndPan(SVGZoomAndPanMagnify)
     , m_viewTarget(SVGNames::viewTargetAttr)
 {
@@ -72,7 +72,7 @@ bool SVGViewElement::isSupportedAttribute(const QualifiedName& attrName)
 void SVGViewElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
     if (!isSupportedAttribute(name)) {
-        SVGStyledElement::parseAttribute(name, value);
+        SVGElement::parseAttribute(name, value);
         return;
     }
 
index 4d2e603..983f984 100644 (file)
 #include "SVGAnimatedBoolean.h"
 #include "SVGAnimatedPreserveAspectRatio.h"
 #include "SVGAnimatedRect.h"
+#include "SVGElement.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGStringList.h"
-#include "SVGStyledElement.h"
 #include "SVGZoomAndPan.h"
 
 namespace WebCore {
 
-class SVGViewElement FINAL : public SVGStyledElement,
+class SVGViewElement FINAL : public SVGElement,
                              public SVGExternalResourcesRequired,
                              public SVGFitToViewBox,
                              public SVGZoomAndPan {
 public:
     static PassRefPtr<SVGViewElement> create(const QualifiedName&, Document*);
 
-    using SVGStyledElement::ref;
-    using SVGStyledElement::deref;
+    using SVGElement::ref;
+    using SVGElement::deref;
 
     SVGStringList& viewTarget() { return m_viewTarget; }
     SVGZoomAndPanType zoomAndPan() const { return m_zoomAndPan; }
index 16ba838..f7150f3 100644 (file)
@@ -116,6 +116,8 @@ protected:
 
     void setInactive() { m_activeState = Inactive; }
 
+    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
+
     // Sub-classes may need to take action when the target is changed.
     virtual void setTargetElement(SVGElement*);
     virtual void setAttributeName(const QualifiedName&);
index 092736d..57b8545 100644 (file)
 #include "GraphicsContext.h"
 #include "RenderObject.h"
 #include "RenderTreeAsText.h"
+#include "SVGElement.h"
 #include "SVGFilter.h"
 #include "SVGPreserveAspectRatio.h"
 #include "SVGRenderingContext.h"
-#include "SVGStyledElement.h"
 #include "SVGURIReference.h"
 #include "TextStream.h"
 
@@ -126,7 +126,7 @@ void FEImage::platformApplySoftware()
         resultImage->context()->concatCTM(absoluteTransform);
 
         SVGElement* contextNode = toSVGElement(renderer->node());
-        if (contextNode->isSVGStyledElement() && toSVGStyledElement(contextNode)->hasRelativeLengths()) {
+        if (contextNode->hasRelativeLengths()) {
             SVGLengthContext lengthContext(contextNode);
             float width = 0;
             float height = 0;