Changeset 154462 in webkit


Ignore:
Timestamp:
Aug 22, 2013 2:58:09 PM (11 years ago)
Author:
Christophe Dumez
Message:

[SVG2] Merge SVGStyledElement and SVGElement
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.
Location:
trunk
Files:
2 added
3 deleted
132 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r154460 r154462  
     12013-08-22  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        [SVG2] Merge SVGStyledElement and SVGElement
     4        https://bugs.webkit.org/show_bug.cgi?id=107386
     5
     6        Reviewed by Andreas Kling.
     7
     8        Add layout test to validate the SVG2 inheritance model.
     9
     10        * svg/dom/svg2-inheritance-expected.txt: Added.
     11        * svg/dom/svg2-inheritance.html: Added.
     12
    1132013-08-22  Gavin Barraclough  <barraclough@apple.com>
    214
  • trunk/Source/WebCore/CMakeLists.txt

    r154271 r154462  
    732732    svg/SVGStringList.idl
    733733    svg/SVGStyleElement.idl
    734     svg/SVGStyledElement.idl
    735734    svg/SVGSwitchElement.idl
    736735    svg/SVGSymbolElement.idl
     
    24562455    svg/SVGStringList.cpp
    24572456    svg/SVGStyleElement.cpp
    2458     svg/SVGStyledElement.cpp
    24592457    svg/SVGSwitchElement.cpp
    24602458    svg/SVGSymbolElement.cpp
  • trunk/Source/WebCore/ChangeLog

    r154458 r154462  
     12013-08-22  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        [SVG2] Merge SVGStyledElement and SVGElement
     4        https://bugs.webkit.org/show_bug.cgi?id=107386
     5
     6        Reviewed by Andreas Kling.
     7
     8        Merge SVGStyledElement into SVGElement to simplify the SVG inheritance
     9        model and match the SVG2 specification:
     10        https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGElement
     11
     12        Test: svg/dom/svg2-inheritance.html
     13
     14        * CMakeLists.txt:
     15        * DerivedSources.cpp:
     16        * DerivedSources.make:
     17        * DerivedSources.pri:
     18        * GNUmakefile.list.am:
     19        * Target.pri:
     20        * WebCore.order:
     21        * WebCore.vcxproj/WebCore.vcxproj:
     22        * WebCore.vcxproj/WebCore.vcxproj.filters:
     23        * WebCore.xcodeproj/project.pbxproj:
     24        * accessibility/AccessibilityNodeObject.cpp:
     25        (WebCore::AccessibilityNodeObject::alternativeText):
     26        (WebCore::AccessibilityNodeObject::accessibilityDescription):
     27        * css/SVGCSSStyleSelector.cpp:
     28        * rendering/style/SVGRenderStyle.cpp:
     29        * rendering/svg/RenderSVGContainer.cpp:
     30        (WebCore::RenderSVGContainer::RenderSVGContainer):
     31        * rendering/svg/RenderSVGContainer.h:
     32        * rendering/svg/RenderSVGHiddenContainer.cpp:
     33        (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
     34        * rendering/svg/RenderSVGHiddenContainer.h:
     35        * rendering/svg/RenderSVGModelObject.cpp:
     36        (WebCore::RenderSVGModelObject::RenderSVGModelObject):
     37        (WebCore::getElementCTM):
     38        * rendering/svg/RenderSVGModelObject.h:
     39        * rendering/svg/RenderSVGResourceClipper.cpp:
     40        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
     41        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
     42        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
     43        * rendering/svg/RenderSVGResourceContainer.cpp:
     44        (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
     45        * rendering/svg/RenderSVGResourceContainer.h:
     46        * rendering/svg/RenderSVGResourceFilter.cpp:
     47        * rendering/svg/RenderSVGResourceFilterPrimitive.h:
     48        * rendering/svg/RenderSVGResourceMarker.cpp:
     49        * rendering/svg/RenderSVGResourceMarker.h:
     50        * rendering/svg/RenderSVGResourceMasker.cpp:
     51        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
     52        (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
     53        * rendering/svg/RenderSVGResourcePattern.cpp:
     54        (WebCore::RenderSVGResourcePattern::createTileImage):
     55        * rendering/svg/RenderSVGRoot.cpp:
     56        (WebCore::RenderSVGRoot::RenderSVGRoot):
     57        * rendering/svg/RenderSVGRoot.h:
     58        * rendering/svg/RenderSVGViewportContainer.cpp:
     59        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
     60        * rendering/svg/RenderSVGViewportContainer.h:
     61        * rendering/svg/SVGRenderSupport.cpp:
     62        (WebCore::SVGRenderSupport::layoutChildren):
     63        * rendering/svg/SVGRenderTreeAsText.cpp:
     64        * rendering/svg/SVGResources.cpp:
     65        (WebCore::registerPendingResource):
     66        * rendering/svg/SVGResourcesCache.cpp:
     67        * svg/SVGAElement.cpp:
     68        (WebCore::SVGAElement::title):
     69        * svg/SVGAllInOne.cpp:
     70        * svg/SVGAltGlyphDefElement.h:
     71        * svg/SVGAltGlyphItemElement.h:
     72        * svg/SVGAnimateElement.cpp:
     73        * svg/SVGAnimatedType.cpp:
     74        (WebCore::SVGAnimatedType::valueAsString):
     75        (WebCore::SVGAnimatedType::setValueAsString):
     76        * svg/SVGAnimationElement.cpp:
     77        (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
     78        (WebCore::SVGAnimationElement::computeCSSPropertyValue):
     79        (WebCore::SVGAnimationElement::adjustForInheritance):
     80        (WebCore::inheritsFromProperty):
     81        * svg/SVGComponentTransferFunctionElement.h:
     82        * svg/SVGCursorElement.h:
     83        * svg/SVGDescElement.cpp:
     84        (WebCore::SVGDescElement::SVGDescElement):
     85        * svg/SVGDescElement.h:
     86        * svg/SVGDescElement.idl:
     87        * svg/SVGElement.cpp:
     88        (WebCore::mapAttributeToCSSProperty):
     89        (WebCore::cssPropertyToTypeMap):
     90        (WebCore::SVGElement::SVGElement):
     91        (WebCore::SVGElement::~SVGElement):
     92        (WebCore::SVGElement::removedFrom):
     93        (WebCore::SVGElement::parseAttribute):
     94        (WebCore::SVGElement::animatedPropertyTypeForAttribute):
     95        (WebCore::collectInstancesForSVGElement):
     96        (WebCore::SVGElement::isAnimatableAttribute):
     97        (WebCore::SVGElement::title):
     98        (WebCore::SVGElement::rendererIsNeeded):
     99        (WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
     100        (WebCore::SVGElement::isAnimatableCSSProperty):
     101        (WebCore::SVGElement::isPresentationAttribute):
     102        (WebCore::SVGElement::collectStyleForPresentationAttribute):
     103        (WebCore::SVGElement::isKnownAttribute):
     104        (WebCore::SVGElement::svgAttributeChanged):
     105        (WebCore::SVGElement::insertedInto):
     106        (WebCore::SVGElement::buildPendingResourcesIfNeeded):
     107        (WebCore::SVGElement::childrenChanged):
     108        (WebCore::SVGElement::getPresentationAttribute):
     109        (WebCore::SVGElement::instanceUpdatesBlocked):
     110        (WebCore::SVGElement::setInstanceUpdatesBlocked):
     111        (WebCore::SVGElement::localCoordinateSpaceTransform):
     112        (WebCore::SVGElement::updateRelativeLengthsInformation):
     113        (WebCore::SVGElement::isMouseFocusable):
     114        (WebCore::SVGElement::isKeyboardFocusable):
     115        * svg/SVGElement.h:
     116        (WebCore::SVGElement::supportsMarkers):
     117        (WebCore::SVGElement::hasRelativeLengths):
     118        (WebCore::SVGElement::needsPendingResourceHandling):
     119        (WebCore::SVGElement::selfHasRelativeLengths):
     120        (WebCore::SVGElement::updateRelativeLengthsInformation):
     121        * svg/SVGElement.idl:
     122        * svg/SVGElementInstance.cpp:
     123        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
     124        (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
     125        * svg/SVGElementInstance.h:
     126        * svg/SVGFEBlendElement.idl:
     127        * svg/SVGFEColorMatrixElement.idl:
     128        * svg/SVGFEComponentTransferElement.idl:
     129        * svg/SVGFECompositeElement.idl:
     130        * svg/SVGFEConvolveMatrixElement.idl:
     131        * svg/SVGFEDiffuseLightingElement.idl:
     132        * svg/SVGFEDisplacementMapElement.idl:
     133        * svg/SVGFEDropShadowElement.idl:
     134        * svg/SVGFEFloodElement.idl:
     135        * svg/SVGFEGaussianBlurElement.idl:
     136        * svg/SVGFEImageElement.idl:
     137        * svg/SVGFELightElement.h:
     138        * svg/SVGFEMergeElement.idl:
     139        * svg/SVGFEMergeNodeElement.h:
     140        * svg/SVGFEMorphologyElement.idl:
     141        * svg/SVGFEOffsetElement.idl:
     142        * svg/SVGFESpecularLightingElement.idl:
     143        * svg/SVGFETileElement.idl:
     144        * svg/SVGFETurbulenceElement.idl:
     145        * svg/SVGFilterElement.cpp:
     146        (WebCore::SVGFilterElement::SVGFilterElement):
     147        (WebCore::SVGFilterElement::parseAttribute):
     148        (WebCore::SVGFilterElement::svgAttributeChanged):
     149        (WebCore::SVGFilterElement::childrenChanged):
     150        * svg/SVGFilterElement.h:
     151        * svg/SVGFilterElement.idl:
     152        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
     153        (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
     154        (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
     155        (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
     156        (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
     157        (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
     158        * svg/SVGFilterPrimitiveStandardAttributes.h:
     159        * svg/SVGFontElement.cpp:
     160        (WebCore::SVGFontElement::SVGFontElement):
     161        * svg/SVGFontElement.h:
     162        * svg/SVGFontFaceElement.cpp:
     163        * svg/SVGFontFaceElement.h:
     164        * svg/SVGFontFaceFormatElement.h:
     165        * svg/SVGFontFaceNameElement.h:
     166        * svg/SVGFontFaceSrcElement.h:
     167        * svg/SVGFontFaceUriElement.h:
     168        * svg/SVGGElement.cpp:
     169        (WebCore::SVGGElement::rendererIsNeeded):
     170        * svg/SVGGlyphElement.cpp:
     171        (WebCore::SVGGlyphElement::SVGGlyphElement):
     172        (WebCore::SVGGlyphElement::parseAttribute):
     173        (WebCore::SVGGlyphElement::insertedInto):
     174        (WebCore::SVGGlyphElement::removedFrom):
     175        * svg/SVGGlyphElement.h:
     176        * svg/SVGGlyphRefElement.cpp:
     177        (WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
     178        (WebCore::SVGGlyphRefElement::parseAttribute):
     179        * svg/SVGGlyphRefElement.h:
     180        * svg/SVGGlyphRefElement.idl:
     181        * svg/SVGGradientElement.cpp:
     182        (WebCore::SVGGradientElement::SVGGradientElement):
     183        (WebCore::SVGGradientElement::parseAttribute):
     184        (WebCore::SVGGradientElement::svgAttributeChanged):
     185        (WebCore::SVGGradientElement::childrenChanged):
     186        * svg/SVGGradientElement.h:
     187        * svg/SVGGradientElement.idl:
     188        * svg/SVGGraphicsElement.cpp:
     189        (WebCore::SVGGraphicsElement::SVGGraphicsElement):
     190        (WebCore::SVGGraphicsElement::parseAttribute):
     191        (WebCore::SVGGraphicsElement::svgAttributeChanged):
     192        * svg/SVGGraphicsElement.h:
     193        * svg/SVGGraphicsElement.idl:
     194        * svg/SVGLocatable.cpp:
     195        (WebCore::SVGLocatable::computeCTM):
     196        * svg/SVGMPathElement.h:
     197        * svg/SVGMarkerElement.cpp:
     198        (WebCore::SVGMarkerElement::SVGMarkerElement):
     199        (WebCore::SVGMarkerElement::parseAttribute):
     200        (WebCore::SVGMarkerElement::svgAttributeChanged):
     201        (WebCore::SVGMarkerElement::childrenChanged):
     202        * svg/SVGMarkerElement.h:
     203        * svg/SVGMarkerElement.idl:
     204        * svg/SVGMaskElement.cpp:
     205        (WebCore::SVGMaskElement::SVGMaskElement):
     206        (WebCore::SVGMaskElement::parseAttribute):
     207        (WebCore::SVGMaskElement::svgAttributeChanged):
     208        (WebCore::SVGMaskElement::childrenChanged):
     209        * svg/SVGMaskElement.h:
     210        * svg/SVGMaskElement.idl:
     211        * svg/SVGMetadataElement.h:
     212        * svg/SVGMissingGlyphElement.cpp:
     213        (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
     214        * svg/SVGMissingGlyphElement.h:
     215        * svg/SVGMissingGlyphElement.idl:
     216        * svg/SVGPatternElement.cpp:
     217        (WebCore::SVGPatternElement::SVGPatternElement):
     218        (WebCore::SVGPatternElement::parseAttribute):
     219        (WebCore::SVGPatternElement::svgAttributeChanged):
     220        (WebCore::SVGPatternElement::childrenChanged):
     221        * svg/SVGPatternElement.h:
     222        * svg/SVGPatternElement.idl:
     223        * svg/SVGScriptElement.h:
     224        * svg/SVGStopElement.cpp:
     225        (WebCore::SVGStopElement::SVGStopElement):
     226        (WebCore::SVGStopElement::parseAttribute):
     227        (WebCore::SVGStopElement::svgAttributeChanged):
     228        * svg/SVGStopElement.h:
     229        * svg/SVGStopElement.idl:
     230        * svg/SVGStyleElement.h:
     231        * svg/SVGStyledElement.cpp: Removed.
     232        * svg/SVGStyledElement.h: Removed.
     233        * svg/SVGStyledElement.idl: Removed.
     234        * svg/SVGSymbolElement.cpp:
     235        (WebCore::SVGSymbolElement::SVGSymbolElement):
     236        (WebCore::SVGSymbolElement::parseAttribute):
     237        (WebCore::SVGSymbolElement::svgAttributeChanged):
     238        * svg/SVGSymbolElement.h:
     239        * svg/SVGSymbolElement.idl:
     240        * svg/SVGTRefElement.cpp:
     241        (WebCore::SVGTRefElement::insertedInto):
     242        (WebCore::SVGTRefElement::removedFrom):
     243        * svg/SVGTitleElement.cpp:
     244        (WebCore::SVGTitleElement::SVGTitleElement):
     245        (WebCore::SVGTitleElement::insertedInto):
     246        * svg/SVGTitleElement.h:
     247        * svg/SVGTitleElement.idl:
     248        * svg/SVGTransformable.cpp:
     249        * svg/SVGUseElement.cpp:
     250        (WebCore::SVGUseElement::selfHasRelativeLengths):
     251        * svg/SVGViewElement.cpp:
     252        (WebCore::SVGViewElement::SVGViewElement):
     253        (WebCore::SVGViewElement::parseAttribute):
     254        * svg/SVGViewElement.h:
     255        * svg/animation/SVGSMILElement.h:
     256        * svg/graphics/filters/SVGFEImage.cpp:
     257        (WebCore::FEImage::platformApplySoftware):
     258
    12592013-08-22  Andreas Kling  <akling@apple.com>
    2260
  • trunk/Source/WebCore/DerivedSources.cpp

    r154137 r154462  
    464464#include "JSSVGStringList.cpp"
    465465#include "JSSVGStyleElement.cpp"
    466 #include "JSSVGStyledElement.cpp"
    467466#include "JSSVGSwitchElement.cpp"
    468467#include "JSSVGSymbolElement.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r154127 r154462  
    588588    $(WebCore)/svg/SVGStringList.idl \
    589589    $(WebCore)/svg/SVGStyleElement.idl \
    590     $(WebCore)/svg/SVGStyledElement.idl \
    591590    $(WebCore)/svg/SVGSwitchElement.idl \
    592591    $(WebCore)/svg/SVGSymbolElement.idl \
  • trunk/Source/WebCore/DerivedSources.pri

    r154127 r154462  
    613613    $$PWD/svg/SVGStringList.idl \
    614614    $$PWD/svg/SVGStyleElement.idl \
    615     $$PWD/svg/SVGStyledElement.idl \
    616615    $$PWD/svg/SVGSVGElement.idl \
    617616    $$PWD/svg/SVGSwitchElement.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r154443 r154462  
    11411141        DerivedSources/WebCore/JSSVGStyleElement.cpp \
    11421142        DerivedSources/WebCore/JSSVGStyleElement.h \
    1143         DerivedSources/WebCore/JSSVGStyledElement.cpp \
    1144         DerivedSources/WebCore/JSSVGStyledElement.h \
    11451143        DerivedSources/WebCore/JSSVGSVGElement.cpp \
    11461144        DerivedSources/WebCore/JSSVGSVGElement.h \
     
    17301728        $(WebCore)/svg/SVGStringList.idl \
    17311729        $(WebCore)/svg/SVGStyleElement.idl \
    1732         $(WebCore)/svg/SVGStyledElement.idl \
    17331730        $(WebCore)/svg/SVGSwitchElement.idl \
    17341731        $(WebCore)/svg/SVGSymbolElement.idl \
     
    52735270        Source/WebCore/svg/SVGStyleElement.cpp \
    52745271        Source/WebCore/svg/SVGStyleElement.h \
    5275         Source/WebCore/svg/SVGStyledElement.cpp \
    5276         Source/WebCore/svg/SVGStyledElement.h \
    52775272        Source/WebCore/svg/SVGSVGElement.cpp \
    52785273        Source/WebCore/svg/SVGSVGElement.h \
  • trunk/Source/WebCore/Target.pri

    r154443 r154462  
    27952795    svg/SVGStringList.h \
    27962796    svg/SVGStyleElement.h \
    2797     svg/SVGStyledElement.h \
    27982797    svg/SVGSVGElement.h \
    27992798    svg/SVGSwitchElement.h \
     
    38623861        svg/SVGStringList.cpp \
    38633862        svg/SVGStyleElement.cpp \
    3864         svg/SVGStyledElement.cpp \
    38653863        svg/SVGSwitchElement.cpp \
    38663864        svg/SVGSymbolElement.cpp \
  • trunk/Source/WebCore/WebCore.order

    r153775 r154462  
    99489948__ZN7WebCore29SVGStyledTransformableElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
    99499949__ZN7WebCore25SVGStyledLocatableElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
    9950 __ZN7WebCore16SVGStyledElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
    99519950__ZN7WebCore10SVGElementC2ERKNS_13QualifiedNameEPNS_8DocumentENS_4Node16ConstructionTypeE
    99529951__ZN7WebCore25SVGAttributeToPropertyMap11addPropertyEPKNS_15SVGPropertyInfoE
     
    99579956__ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6VectorIPKNS1_15SVGPropertyInfoELm0ENS_15CrashOnOverflowEEEEEEENS_24KeyValuePairKeyExtractorISC_EENS1_17QualifiedNameHashENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSH_ISB_EEEESI_E6lookupINS_22IdentityHashTranslatorISF_EES2_EEPSC_RKT0_
    99589957__ZN3WTF9HashTableIN7WebCore13QualifiedNameENS_12KeyValuePairIS2_NS_6OwnPtrINS_6VectorIPKNS1_15SVGPropertyInfoELm0ENS_15CrashOnOverflowEEEEEEENS_24KeyValuePairKeyExtractorISC_EENS1_17QualifiedNameHashENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSH_ISB_EEEESI_E6rehashEi
    9959 __ZN7WebCore16SVGStyledElement22attributeToPropertyMapEv
     9958__ZN7WebCore16SVGElement22attributeToPropertyMapEv
    99609959__ZN7WebCore25SVGAttributeToPropertyMap13addPropertiesERKS0_
    99619960__ZN7WebCore8SVGTestsC2Ev
     
    99679966__ZN7WebCore8SVGTests22attributeToPropertyMapEv
    99689967__ZN7WebCore10SVGElement16attributeChangedERKNS_13QualifiedNameERKN3WTF12AtomicStringENS_7Element27AttributeModificationReasonE
    9969 __ZNK7WebCore16SVGStyledElement23isPresentationAttributeERKNS_13QualifiedNameE
    9970 __ZN7WebCore16SVGStyledElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameE
     9968__ZNK7WebCore16SVGElement23isPresentationAttributeERKNS_13QualifiedNameE
     9969__ZN7WebCore16SVGElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameE
    99719970__ZN3WTF9HashTableIPNS_16AtomicStringImplENS_12KeyValuePairIS2_N7WebCore13CSSPropertyIDEEENS_24KeyValuePairKeyExtractorIS6_EENS_7PtrHashIS2_EENS_18HashMapValueTraitsINS_10HashTraitsIS2_EENSC_IS5_EEEESD_E16lookupForWritingINS_22IdentityHashTranslatorISA_EES2_EENSt3__14pairIPS6_bEERKT0_
    99729971__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_
     
    99929991__ZNK7WebCore13SVGSVGElement6heightEv
    99939992__ZN7WebCore13SVGSVGElement18heightPropertyInfoEv
    9994 __ZN7WebCore16SVGStyledElement32updateRelativeLengthsInformationEbPS0_
     9993__ZN7WebCore16SVGElement32updateRelativeLengthsInformationEbPS0_
    99959994__ZN7WebCore15SVGFitToViewBox16isKnownAttributeERKNS_13QualifiedNameE
    99969995__ZN7WebCore8SVGTests21handleAttributeChangeEPNS_10SVGElementERKNS_13QualifiedNameE
     
    99999998__ZN7WebCore16HTMLElementStack28isMathMLTextIntegrationPointEPNS_13HTMLStackItemE
    100009999__ZN7WebCore13SVGSVGElement12insertedIntoEPNS_13ContainerNodeE
    10001 __ZN7WebCore16SVGStyledElement12insertedIntoEPNS_13ContainerNodeE
    10002 __ZN7WebCore16SVGStyledElement29buildPendingResourcesIfNeededEv
    10003 __ZNK7WebCore16SVGStyledElement28needsPendingResourceHandlingEv
     10000__ZN7WebCore16SVGElement12insertedIntoEPNS_13ContainerNodeE
     10001__ZN7WebCore16SVGElement29buildPendingResourcesIfNeededEv
     10002__ZNK7WebCore16SVGElement28needsPendingResourceHandlingEv
    1000410003__ZN7WebCore15HTMLTreeBuilder28processTokenInForeignContentEPNS_15AtomicHTMLTokenE
    10005 __ZN7WebCore16SVGStyledElement15childrenChangedEbPNS_4NodeES2_i
     10004__ZN7WebCore16SVGElement15childrenChangedEbPNS_4NodeES2_i
    1000610005__ZN7WebCoreL20adjustSVGTagNameCaseEPNS_15AtomicHTMLTokenE
    1000710006__ZN7WebCore8SVGNames10getSVGTagsEv
     
    1000910008__ZN7WebCore11SVGGElement6createERKNS_13QualifiedNameEPNS_8DocumentE
    1001010009__ZN7WebCoreL40registerAnimatedPropertiesForSVGGElementEv
    10011 __ZNK7WebCore16SVGStyledElement22selfHasRelativeLengthsEv
     10010__ZNK7WebCore16SVGElement22selfHasRelativeLengthsEv
    1001210011__ZN7WebCoreL17circleConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
    1001310012__ZN7WebCore16SVGCircleElement6createERKNS_13QualifiedNameEPNS_8DocumentE
     
    1003310032__ZN7WebCore16SVGCircleElement13rPropertyInfoEv
    1003410033__ZN7WebCore29SVGStyledTransformableElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
    10035 __ZN7WebCore16SVGStyledElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
     10034__ZN7WebCore16SVGElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
    1003610035__ZN7WebCore29SVGStyledTransformableElement19svgAttributeChangedERKNS_13QualifiedNameE
    10037 __ZN7WebCore16SVGStyledElement19svgAttributeChangedERKNS_13QualifiedNameE
    10038 __ZNK7WebCore16SVGStyledElement9classNameEv
     10036__ZN7WebCore16SVGElement19svgAttributeChangedERKNS_13QualifiedNameE
     10037__ZNK7WebCore16SVGElement9classNameEv
    1003910038__ZN7WebCore10SVGElement21finishParsingChildrenEv
    1004010039__ZNK7WebCore10SVGElement24isOutermostSVGSVGElementEv
     
    1015410153__ZN7WebCore21FormAssociatedElement19formRemovedFromTreeEPKNS_4NodeE
    1015510154__ZN7WebCore13SVGSVGElement11removedFromEPNS_13ContainerNodeE
    10156 __ZN7WebCore16SVGStyledElement11removedFromEPNS_13ContainerNodeE
     10155__ZN7WebCore16SVGElement11removedFromEPNS_13ContainerNodeE
    1015710156__ZN7WebCore10SVGElement11removedFromEPNS_13ContainerNodeE
    1015810157__ZN7WebCore14SVGPathElement11removedFromEPNS_13ContainerNodeE
     
    1016710166__ZN7WebCore17SMILTimeContainer16updateAnimationsENS_8SMILTimeEb
    1016810167__ZNK7WebCore21SVGDocumentExtensions18hasPendingResourceERKN3WTF12AtomicStringE
    10169 __ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E3addINS_22IdentityHashTranslatorIS6_EES3_S3_EENS_18HashTableAddResultINS_17HashTableIteratorIS3_S3_S4_S6_S8_S8_EEEERKT0_RKT1_
    10170 __ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6rehashEi
     10168__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E3addINS_22IdentityHashTranslatorIS6_EES3_S3_EENS_18HashTableAddResultINS_17HashTableIteratorIS3_S3_S4_S6_S8_S8_EEEERKT0_RKT1_
     10169__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6rehashEi
    1017110170__ZN7WebCore21jsHTMLElementChildrenEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
    1017210171__ZN7WebCore16JSHTMLCollection6createEPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_14HTMLCollectionEEE
     
    1050610505__ZN7WebCore27backgroundPositionShorthandEv
    1050710506__ZN7WebCore13SVGSVGElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
    10508 __ZN7WebCore13RenderSVGRootC1EPNS_16SVGStyledElementE
     10507__ZN7WebCore13RenderSVGRootC1EPNS_16SVGElementE
    1050910508__ZN7WebCore13RenderSVGRoot15styleWillChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
    1051010509__ZN7WebCore13RenderSVGRoot14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
     
    1051610515__ZNK7WebCore14SVGPolyElement7isValidEv
    1051710516__ZNK7WebCore8SVGTests7isValidEv
    10518 __ZN7WebCore16SVGStyledElement36collectStyleForPresentationAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringEPNS_23MutableStylePropertySetE
     10517__ZN7WebCore16SVGElement36collectStyleForPresentationAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringEPNS_23MutableStylePropertySetE
    1051910518__ZN7WebCore14SVGRenderStyle12setFillPaintENS_8SVGPaint12SVGPaintTypeERKNS_5ColorERKN3WTF6StringEbb
    1052010519__ZN7WebCore7DataRefINS_13StyleFillDataEE6accessEv
    1052110520__ZN7WebCore13StyleFillDataC1ERKS0_
    10522 __ZN7WebCore16SVGStyledElement16rendererIsNeededERKNS_20NodeRenderingContextE
     10521__ZN7WebCore16SVGElement16rendererIsNeededERKNS_20NodeRenderingContextE
    1052310522__ZN7WebCore29SVGStyledTransformableElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
    1052410523__ZN7WebCore13RenderSVGPathC1EPNS_29SVGStyledTransformableElementE
     
    1054910548__ZNK7WebCore14SVGDefsElement7isValidEv
    1055010549__ZN7WebCore14SVGDefsElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
    10551 __ZN7WebCore24RenderSVGHiddenContainerC1EPNS_16SVGStyledElementE
     10550__ZN7WebCore24RenderSVGHiddenContainerC1EPNS_16SVGElementE
    1055210551__ZNK7WebCore18RenderSVGContainer14isSVGContainerEv
    1055310552__ZNK7WebCore18RenderSVGContainer15virtualChildrenEv
     
    1055510554__ZN7WebCore24SVGLinearGradientElement14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
    1055610555__ZN7WebCore31RenderSVGResourceLinearGradientC1EPNS_24SVGLinearGradientElementE
    10557 __ZN7WebCore26RenderSVGResourceContainerC2EPNS_16SVGStyledElementE
     10556__ZN7WebCore26RenderSVGResourceContainerC2EPNS_16SVGElementE
    1055810557__ZN7WebCore24LinearGradientAttributesC2Ev
    1055910558__ZN7WebCore26RenderSVGResourceContainer14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
     
    1067210671__ZN7WebCore16SVGRenderSupport14layoutChildrenEPNS_12RenderObjectEb
    1067310672__ZN7WebCore13RenderSVGRoot21needsBoundariesUpdateEv
    10674 __ZNK7WebCore16SVGStyledElement18isSVGStyledElementEv
     10673__ZNK7WebCore16SVGElement18isSVGElementEv
    1067510674__ZN7WebCore14RenderSVGShape6layoutEv
    1067610675__ZN7WebCore13RenderSVGPath22updateShapeFromElementEv
     
    1119011189__ZN7WebCore9ClassListD0Ev
    1119111190__ZN7WebCore12StyleElement19removedFromDocumentEPNS_8DocumentEPNS_7ElementE
    11192 __ZN3WTF9HashTableIPN7WebCore16SVGStyledElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6lookupINS_22IdentityHashTranslatorIS6_EES3_EEPS3_RKT0_
    11193 __ZN3WTF7HashSetIPN7WebCore16SVGStyledElementENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE6removeERKS3_
     11191__ZN3WTF9HashTableIPN7WebCore16SVGElementES3_NS_17IdentityExtractorENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES8_E6lookupINS_22IdentityHashTranslatorIS6_EES3_EEPS3_RKT0_
     11192__ZN3WTF7HashSetIPN7WebCore16SVGElementENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE6removeERKS3_
    1119411193__ZN7WebCore19CachedCSSStyleSheetD0Ev
    1119511194__ZN7WebCore19CachedCSSStyleSheetD2Ev
     
    1136211361__ZN7WebCore15getDOMStructureINS_15JSSVGSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
    1136311362__ZN7WebCore15JSSVGSVGElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
    11364 __ZN7WebCore27JSSVGStyledElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
    11365 __ZN7WebCore15getDOMStructureINS_18JSSVGStyledElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
    11366 __ZN7WebCore18JSSVGStyledElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
     11363__ZN7WebCore27JSSVGElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
     11364__ZN7WebCore15getDOMStructureINS_18JSSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
     11365__ZN7WebCore18JSSVGElement15createPrototypeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
    1136711366__ZN7WebCore21JSSVGElementPrototype4selfEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
    1136811367__ZN7WebCore15getDOMStructureINS_12JSSVGElementEEEPN3JSC9StructureEPNS2_9ExecStateEPNS_17JSDOMGlobalObjectE
     
    1137011369__ZN7WebCore15JSSVGSVGElement6createEPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_13SVGSVGElementEEE
    1137111370__ZN7WebCore15JSSVGSVGElementC1EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_13SVGSVGElementEEE
    11372 __ZN7WebCore18JSSVGStyledElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_16SVGStyledElementEEE
     11371__ZN7WebCore18JSSVGElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_16SVGElementEEE
    1137311372__ZN7WebCore12JSSVGElementC2EPN3JSC9StructureEPNS_17JSDOMGlobalObjectEN3WTF10PassRefPtrINS_10SVGElementEEE
    1137411373__ZN7WebCore15JSSVGSVGElement14finishCreationERN3JSC2VME
    11375 __ZN7WebCore18JSSVGStyledElement14finishCreationERN3JSC2VME
     11374__ZN7WebCore18JSSVGElement14finishCreationERN3JSC2VME
    1137611375__ZN7WebCore12JSSVGElement14finishCreationERN3JSC2VME
    1137711376__ZN7WebCore12cacheWrapperINS_13SVGSVGElementEEEvPNS_15DOMWrapperWorldEPT_PNS_12JSDOMWrapperE
    1137811377__ZN7WebCore15JSSVGSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
    11379 __ZN7WebCore18JSSVGStyledElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
     11378__ZN7WebCore18JSSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
    1138011379__ZN7WebCore12JSSVGElement18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
    1138111380__ZN3JSC18getStaticValueSlotIN7WebCore12JSSVGElementENS1_9JSElementEEEbPNS_9ExecStateEPKNS_9HashTableEPT_NS_12PropertyNameERNS_12PropertySlotE
     
    1361213611__ZNK7WebCore9FillLayer10sizeLengthEv
    1361313612__ZNK3WTF12StringAppendIPKcNS_6StringEEcvNS_12AtomicStringEEv
    13614 __ZNK7WebCore16SVGStyledElement22instanceUpdatesBlockedEv
     13613__ZNK7WebCore16SVGElement22instanceUpdatesBlockedEv
    1361513614__ZNK7WebCore10SVGElement19instancesForElementEv
    1361613615__ZN7WebCore11SVGGElement14parseAttributeERKNS_13QualifiedNameERKN3WTF12AtomicStringE
     
    1682816827__ZN7WebCore15GraphicsLayerCA21setAnimationKeyframesERKNS_17KeyframeValueListEPKNS_9AnimationEPNS_19PlatformCAAnimationE
    1682916828__ZN7WebCore19PlatformCAAnimation9setValuesERKN3WTF6VectorIfLm0ENS1_15CrashOnOverflowEEE
    16830 __ZN7WebCore23jsSVGStyledElementStyleEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
    16831 __ZN7WebCore27JSSVGStyledElementPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
     16829__ZN7WebCore23jsSVGElementStyleEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
     16830__ZN7WebCore27JSSVGElementPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
    1683216831__ZN7WebCoreL15descConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
    1683316832__ZN7WebCore14SVGDescElement6createERKNS_13QualifiedNameEPNS_8DocumentE
     
    1878218781__ZN7WebCore36SVGFilterPrimitiveStandardAttributes16rendererIsNeededERKNS_20NodeRenderingContextE
    1878318782__ZN7WebCore36SVGFilterPrimitiveStandardAttributes14createRendererEPNS_11RenderArenaEPNS_11RenderStyleE
    18784 __ZN7WebCore24RenderSVGHiddenContainerC2EPNS_16SVGStyledElementE
     18783__ZN7WebCore24RenderSVGHiddenContainerC2EPNS_16SVGElementE
    1878518784__ZN7WebCore32RenderSVGResourceFilterPrimitive14styleDidChangeENS_15StyleDifferenceEPKNS_11RenderStyleE
    1878618785__ZThn128_N7WebCore23RenderSVGResourceFilter25removeAllClientsFromCacheEb
     
    2375023749__ZTVN7WebCore22ConditionEventListenerE
    2375123750__ZTVN7WebCore14SVGStopElementE
    23752 __ZTVN7WebCore16SVGStyledElementE
     23751__ZTVN7WebCore16SVGElementE
    2375323752__ZTVN7WebCore29SVGGraphicsElementE
    2375423753__ZTTN7WebCore29SVGGraphicsElementE
     
    2962229621__ZZN7WebCore14SVGStopElement20isSupportedAttributeERKNS_13QualifiedNameEE19supportedAttributes
    2962329622__ZGVZN7WebCore14SVGStopElement20isSupportedAttributeERKNS_13QualifiedNameEE19supportedAttributes.b
    29624 __ZZN7WebCore16SVGStyledElement21classNamePropertyInfoEvE14s_propertyInfo
    29625 __ZGVZN7WebCore16SVGStyledElement21classNamePropertyInfoEvE14s_propertyInfo.b
    29626 __ZZN7WebCore16SVGStyledElement22attributeToPropertyMapEvE24s_attributeToPropertyMap
    29627 __ZGVZN7WebCore16SVGStyledElement22attributeToPropertyMapEvE24s_attributeToPropertyMap.b
    29628 __ZZN7WebCore16SVGStyledElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameEE19propertyNameToIdMap
     29623__ZZN7WebCore16SVGElement21classNamePropertyInfoEvE14s_propertyInfo
     29624__ZGVZN7WebCore16SVGElement21classNamePropertyInfoEvE14s_propertyInfo.b
     29625__ZZN7WebCore16SVGElement22attributeToPropertyMapEvE24s_attributeToPropertyMap
     29626__ZGVZN7WebCore16SVGElement22attributeToPropertyMapEvE24s_attributeToPropertyMap.b
     29627__ZZN7WebCore16SVGElement32cssPropertyIdForSVGAttributeNameERKNS_13QualifiedNameEE19propertyNameToIdMap
    2962929628__ZZN7WebCore29SVGGraphicsElement21transformPropertyInfoEvE14s_propertyInfo
    2963029629__ZGVZN7WebCore29SVGGraphicsElement21transformPropertyInfoEvE14s_propertyInfo.b
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r154443 r154462  
    1759117591    </ClCompile>
    1759217592    <ClCompile Include="..\svg\SVGMaskElement.cpp">
    17593       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    17594       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    17595       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
    17596       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
    17597       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
    17598       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
    17599       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
    17600       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
    17601       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
    17602       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
    17603       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
    17604       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
    17605     </ClCompile>
    17606     <ClCompile Include="..\svg\SVGStyledElement.cpp">
    1760717593      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    1760817594      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     
    2091120897    <ClInclude Include="..\svg\SVGStopElement.h" />
    2091220898    <ClInclude Include="..\svg\SVGStringList.h" />
    20913     <ClInclude Include="..\svg\SVGStyledElement.h" />
    2091420899    <ClInclude Include="..\svg\SVGGraphicsElement.h" />
    2091520900    <ClInclude Include="..\svg\SVGStyleElement.h" />
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r154443 r154462  
    48044804      <Filter>rendering\svg</Filter>
    48054805    </ClCompile>
    4806     <ClCompile Include="..\svg\SVGStyledElement.cpp">
    4807       <Filter>rendering\svg</Filter>
    4808     </ClCompile>
    48094806    <ClCompile Include="..\svg\SVGStyleElement.cpp">
    48104807      <Filter>rendering\svg</Filter>
     
    1215312150    </ClInclude>
    1215412151    <ClInclude Include="..\svg\SVGStringList.h">
    12155       <Filter>rendering\svg</Filter>
    12156     </ClInclude>
    12157     <ClInclude Include="..\svg\SVGStyledElement.h">
    1215812152      <Filter>rendering\svg</Filter>
    1215912153    </ClInclude>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r154314 r154462  
    40744074                B2227AB60D00BF220071B782 /* SVGGraphicsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279200D00BF210071B782 /* SVGGraphicsElement.h */; };
    40754075                B2227AB70D00BF220071B782 /* SVGStyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279210D00BF210071B782 /* SVGStyleElement.cpp */; };
    4076                 B2227AB70D00BF220071B783 /* SVGStyledElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279210D00BF210071B783 /* SVGStyledElement.cpp */; };
    40774076                B2227AB80D00BF220071B782 /* SVGStyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279220D00BF210071B782 /* SVGStyleElement.h */; };
    4078                 B2227AB80D00BF220071B783 /* SVGStyledElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279220D00BF210071B783 /* SVGStyledElement.h */; };
    40794077                B2227ABA0D00BF220071B782 /* SVGSVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22279240D00BF210071B782 /* SVGSVGElement.cpp */; };
    40804078                B2227ABB0D00BF220071B782 /* SVGSVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22279250D00BF210071B782 /* SVGSVGElement.h */; };
     
    44664464                B2FA3DF90AB75A6F000E5AC4 /* JSSVGStringList.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */; };
    44674465                B2FA3DFA0AB75A6F000E5AC4 /* JSSVGStyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */; };
    4468                 B2FA3DFA0AB75A6F000E5AC5 /* JSSVGStyledElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */; };
    44694466                B2FA3DFB0AB75A6F000E5AC4 /* JSSVGStyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */; };
    4470                 B2FA3DFB0AB75A6F000E5AC5 /* JSSVGStyledElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */; };
    44714467                B2FA3DFC0AB75A6F000E5AC4 /* JSSVGSVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3D140AB75A6F000E5AC4 /* JSSVGSVGElement.cpp */; };
    44724468                B2FA3DFD0AB75A6F000E5AC4 /* JSSVGSVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2FA3D150AB75A6F000E5AC4 /* JSSVGSVGElement.h */; };
     
    1069010686                B22279200D00BF210071B782 /* SVGGraphicsElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGGraphicsElement.h; sourceTree = "<group>"; };
    1069110687                B22279210D00BF210071B782 /* SVGStyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGStyleElement.cpp; sourceTree = "<group>"; };
    10692                 B22279210D00BF210071B783 /* SVGStyledElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGStyledElement.cpp; sourceTree = "<group>"; };
    1069310688                B22279220D00BF210071B782 /* SVGStyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGStyleElement.h; sourceTree = "<group>"; };
    10694                 B22279220D00BF210071B783 /* SVGStyledElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGStyledElement.h; sourceTree = "<group>"; };
    1069510689                B22279230D00BF210071B782 /* SVGStyleElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGStyleElement.idl; sourceTree = "<group>"; };
    10696                 B22279230D00BF210071B783 /* SVGStyledElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGStyledElement.idl; sourceTree = "<group>"; };
    1069710690                B22279240D00BF210071B782 /* SVGSVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGSVGElement.cpp; sourceTree = "<group>"; };
    1069810691                B22279250D00BF210071B782 /* SVGSVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGSVGElement.h; sourceTree = "<group>"; };
     
    1111411107                B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStringList.h; sourceTree = "<group>"; };
    1111511108                B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGStyleElement.cpp; sourceTree = "<group>"; };
    11116                 B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGStyledElement.cpp; sourceTree = "<group>"; };
    1111711109                B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStyleElement.h; sourceTree = "<group>"; };
    11118                 B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGStyledElement.h; sourceTree = "<group>"; };
    1111911110                B2FA3D140AB75A6F000E5AC4 /* JSSVGSVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGSVGElement.cpp; sourceTree = "<group>"; };
    1112011111                B2FA3D150AB75A6F000E5AC4 /* JSSVGSVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGSVGElement.h; sourceTree = "<group>"; };
     
    1709717088                                B2FA3D100AB75A6E000E5AC4 /* JSSVGStringList.cpp */,
    1709817089                                B2FA3D110AB75A6E000E5AC4 /* JSSVGStringList.h */,
    17099                                 B2FA3D120AB75A6E000E5AC5 /* JSSVGStyledElement.cpp */,
    17100                                 B2FA3D130AB75A6E000E5AC5 /* JSSVGStyledElement.h */,
    1710117090                                B2FA3D120AB75A6E000E5AC4 /* JSSVGStyleElement.cpp */,
    1710217091                                B2FA3D130AB75A6E000E5AC4 /* JSSVGStyleElement.h */,
     
    1807618065                                B22279160D00BF210071B782 /* SVGStringList.h */,
    1807718066                                B22279170D00BF210071B782 /* SVGStringList.idl */,
    18078                                 B22279210D00BF210071B783 /* SVGStyledElement.cpp */,
    18079                                 B22279220D00BF210071B783 /* SVGStyledElement.h */,
    18080                                 B22279230D00BF210071B783 /* SVGStyledElement.idl */,
    1808118067                                B22279210D00BF210071B782 /* SVGStyleElement.cpp */,
    1808218068                                B22279220D00BF210071B782 /* SVGStyleElement.h */,
     
    2260322589                                B2FA3DF70AB75A6F000E5AC4 /* JSSVGStopElement.h in Headers */,
    2260422590                                B2FA3DF90AB75A6F000E5AC4 /* JSSVGStringList.h in Headers */,
    22605                                 B2FA3DFB0AB75A6F000E5AC5 /* JSSVGStyledElement.h in Headers */,
    2260622591                                B2FA3DFB0AB75A6F000E5AC4 /* JSSVGStyleElement.h in Headers */,
    2260722592                                B2FA3DFD0AB75A6F000E5AC4 /* JSSVGSVGElement.h in Headers */,
     
    2361723602                                B2227AA90D00BF220071B782 /* SVGStopElement.h in Headers */,
    2361823603                                B2227AAC0D00BF220071B782 /* SVGStringList.h in Headers */,
    23619                                 B2227AB80D00BF220071B783 /* SVGStyledElement.h in Headers */,
    2362023604                                B2227AB80D00BF220071B782 /* SVGStyleElement.h in Headers */,
    2362123605                                B2227ABB0D00BF220071B782 /* SVGSVGElement.h in Headers */,
     
    2579825782                                B2FA3DF60AB75A6F000E5AC4 /* JSSVGStopElement.cpp in Sources */,
    2579925783                                B2FA3DF80AB75A6F000E5AC4 /* JSSVGStringList.cpp in Sources */,
    25800                                 B2FA3DFA0AB75A6F000E5AC5 /* JSSVGStyledElement.cpp in Sources */,
    2580125784                                B2FA3DFA0AB75A6F000E5AC4 /* JSSVGStyleElement.cpp in Sources */,
    2580225785                                B2FA3DFC0AB75A6F000E5AC4 /* JSSVGSVGElement.cpp in Sources */,
     
    2665726640                                B2227AA80D00BF220071B782 /* SVGStopElement.cpp in Sources */,
    2665826641                                B2227AAB0D00BF220071B782 /* SVGStringList.cpp in Sources */,
    26659                                 B2227AB70D00BF220071B783 /* SVGStyledElement.cpp in Sources */,
    2666026642                                B2227AB70D00BF220071B782 /* SVGStyleElement.cpp in Sources */,
    2666126643                                B2227ABA0D00BF220071B782 /* SVGSVGElement.cpp in Sources */,
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r154058 r154462  
    6969#include "SVGElement.h"
    7070#include "SVGNames.h"
    71 #include "SVGStyledElement.h"
    7271#include "Text.h"
    7372#include "TextControlInnerElements.h"
     
    12231222#if ENABLE(SVG)
    12241223    // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
    1225     if (node->isSVGElement() && toSVGElement(node)->isSVGStyledElement())
    1226         textOrder.append(AccessibilityText(toSVGStyledElement(node)->title(), AlternativeText));
     1224    if (node->isSVGElement())
     1225        textOrder.append(AccessibilityText(toSVGElement(node)->title(), AlternativeText));
    12271226#endif
    12281227   
     
    14221421#if ENABLE(SVG)
    14231422    // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
    1424     if (m_node && m_node->isSVGElement() && toSVGElement(m_node)->isSVGStyledElement())
    1425         return toSVGStyledElement(m_node)->title();
     1423    if (m_node && m_node->isSVGElement())
     1424        return toSVGElement(m_node)->title();
    14261425#endif
    14271426   
  • trunk/Source/WebCore/css/SVGCSSStyleSelector.cpp

    r151783 r154462  
    3838#include "ShadowValue.h"
    3939#include "SVGColor.h"
     40#include "SVGElement.h"
    4041#include "SVGNames.h"
    4142#include "SVGPaint.h"
    4243#include "SVGRenderStyle.h"
    4344#include "SVGRenderStyleDefs.h"
    44 #include "SVGStyledElement.h"
    4545#include "SVGURIReference.h"
    4646#include <stdlib.h>
  • trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp

    r153914 r154462  
    3535#include "IntRect.h"
    3636#include "NodeRenderStyle.h"
    37 #include "SVGStyledElement.h"
     37#include "SVGElement.h"
    3838
    3939using namespace std;
  • trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp

    r150355 r154462  
    3232#include "RenderSVGResourceFilter.h"
    3333#include "RenderView.h"
     34#include "SVGElement.h"
    3435#include "SVGRenderingContext.h"
    3536#include "SVGResources.h"
    3637#include "SVGResourcesCache.h"
    37 #include "SVGStyledElement.h"
    3838#include <wtf/StackStats.h>
    3939
    4040namespace WebCore {
    4141
    42 RenderSVGContainer::RenderSVGContainer(SVGStyledElement* node)
     42RenderSVGContainer::RenderSVGContainer(SVGElement* node)
    4343    : RenderSVGModelObject(node)
    4444    , m_objectBoundingBoxValid(false)
  • trunk/Source/WebCore/rendering/svg/RenderSVGContainer.h

    r153380 r154462  
    3434class RenderSVGContainer : public RenderSVGModelObject {
    3535public:
    36     explicit RenderSVGContainer(SVGStyledElement*);
     36    explicit RenderSVGContainer(SVGElement*);
    3737    virtual ~RenderSVGContainer();
    3838
  • trunk/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp

    r148536 r154462  
    2424
    2525#include "RenderSVGPath.h"
    26 #include "SVGStyledElement.h"
     26#include "SVGElement.h"
    2727#include <wtf/StackStats.h>
    2828
    2929namespace WebCore {
    3030
    31 RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGStyledElement* element)
     31RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGElement* element)
    3232    : RenderSVGContainer(element)
    3333{
  • trunk/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h

    r153380 r154462  
    2626namespace WebCore {
    2727   
    28 class SVGStyledElement;
     28class SVGElement;
    2929
    3030// This class is for containers which are never drawn, but do need to support style
     
    3232class RenderSVGHiddenContainer : public RenderSVGContainer {
    3333public:
    34     explicit RenderSVGHiddenContainer(SVGStyledElement*);
     34    explicit RenderSVGHiddenContainer(SVGElement*);
    3535
    3636    virtual const char* renderName() const OVERRIDE { return "RenderSVGHiddenContainer"; }
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp

    r154165 r154462  
    3636#include "RenderLayerModelObject.h"
    3737#include "RenderSVGResource.h"
     38#include "SVGElement.h"
    3839#include "SVGNames.h"
    3940#include "SVGResourcesCache.h"
    40 #include "SVGStyledElement.h"
    4141#include "ShadowRoot.h"
    4242
    4343namespace WebCore {
    4444
    45 RenderSVGModelObject::RenderSVGModelObject(SVGStyledElement* node)
     45RenderSVGModelObject::RenderSVGModelObject(SVGElement* node)
    4646    : RenderObject(node)
    4747    , m_hasSVGShadow(false)
     
    134134    while (current && current->isSVGElement()) {
    135135        SVGElement* currentElement = toSVGElement(current);
    136         if (currentElement->isSVGStyledElement()) {
    137             localTransform = currentElement->renderer()->localToParentTransform();
    138             transform = localTransform.multiply(transform);
    139         }
     136        localTransform = currentElement->renderer()->localToParentTransform();
     137        transform = localTransform.multiply(transform);
    140138        // For getCTM() computation, stop at the nearest viewport element
    141139        if (currentElement == stopAtElement)
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h

    r153380 r154462  
    4444// logic can go in this class or in SVGRenderSupport.
    4545
    46 class SVGStyledElement;
     46class SVGElement;
    4747
    4848class RenderSVGModelObject : public RenderObject {
    4949public:
    50     explicit RenderSVGModelObject(SVGStyledElement*);
     50    explicit RenderSVGModelObject(SVGElement*);
    5151
    5252    virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const OVERRIDE;
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp

    r152963 r154462  
    4646#include "SVGResources.h"
    4747#include "SVGResourcesCache.h"
    48 #include "SVGStyledElement.h"
    4948#include "SVGUnitTypes.h"
    5049#include "SVGUseElement.h"
     
    234233    for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
    235234        RenderObject* renderer = childNode->renderer();
    236         if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
     235        if (!childNode->isSVGElement() || !renderer)
    237236            continue;
    238237        if (renderer->needsLayout()) {
     
    276275    for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
    277276        RenderObject* renderer = childNode->renderer();
    278         if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
     277        if (!childNode->isSVGElement() || !renderer)
    279278            continue;
    280279        if (!renderer->isSVGShape() && !renderer->isSVGText() && !childNode->hasTagName(SVGNames::useTag))
     
    306305    for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
    307306        RenderObject* renderer = childNode->renderer();
    308         if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
     307        if (!childNode->isSVGElement() || !renderer)
    309308            continue;
    310309        if (!renderer->isSVGShape() && !renderer->isSVGText() && !childNode->hasTagName(SVGNames::useTag))
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp

    r152167 r154462  
    4040}
    4141
    42 RenderSVGResourceContainer::RenderSVGResourceContainer(SVGStyledElement* node)
     42RenderSVGResourceContainer::RenderSVGResourceContainer(SVGElement* node)
    4343    : RenderSVGHiddenContainer(node)
    4444    , m_id(node->getIdAttribute())
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h

    r153380 r154462  
    3232                                   public RenderSVGResource {
    3333public:
    34     RenderSVGResourceContainer(SVGStyledElement*);
     34    RenderSVGResourceContainer(SVGElement*);
    3535    virtual ~RenderSVGResourceContainer();
    3636
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp

    r153927 r154462  
    4545#include "SVGNames.h"
    4646#include "SVGRenderingContext.h"
    47 #include "SVGStyledElement.h"
    4847#include "SVGUnitTypes.h"
    4948#include "Settings.h"
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h

    r153380 r154462  
    3939class RenderSVGResourceFilterPrimitive FINAL : public RenderSVGHiddenContainer {
    4040public:
    41     explicit RenderSVGResourceFilterPrimitive(SVGStyledElement* filterPrimitiveElement)
     41    explicit RenderSVGResourceFilterPrimitive(SVGElement* filterPrimitiveElement)
    4242        : RenderSVGHiddenContainer(filterPrimitiveElement)
    4343    {
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp

    r152826 r154462  
    3232#include "SVGMarkerElement.h"
    3333#include "SVGRenderSupport.h"
    34 #include "SVGStyledElement.h"
    3534#include <wtf/StackStats.h>
    3635
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h

    r153380 r154462  
    2424#include "FloatRect.h"
    2525#include "RenderSVGResourceContainer.h"
     26#include "SVGElement.h"
    2627#include "SVGMarkerElement.h"
    27 #include "SVGStyledElement.h"
    2828
    2929#include <wtf/HashSet.h>
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp

    r153687 r154462  
    3535#include "SVGMaskElement.h"
    3636#include "SVGRenderingContext.h"
    37 #include "SVGStyledElement.h"
    3837#include "SVGUnitTypes.h"
    3938#include <wtf/Vector.h>
     
    136135    for (Node* node = maskElement->firstChild(); node; node = node->nextSibling()) {
    137136        RenderObject* renderer = node->renderer();
    138         if (!node->isSVGElement() || !toSVGElement(node)->isSVGStyledElement() || !renderer)
     137        if (!node->isSVGElement() || !renderer)
    139138            continue;
    140139        if (renderer->needsLayout())
     
    165164    for (Node* childNode = node()->firstChild(); childNode; childNode = childNode->nextSibling()) {
    166165        RenderObject* renderer = childNode->renderer();
    167         if (!childNode->isSVGElement() || !toSVGElement(childNode)->isSVGStyledElement() || !renderer)
     166        if (!childNode->isSVGElement() || !renderer)
    168167            continue;
    169168        RenderStyle* style = renderer->style();
  • trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp

    r153297 r154462  
    274274    // Draw the content into the ImageBuffer.
    275275    for (Node* node = attributes.patternContentElement()->firstChild(); node; node = node->nextSibling()) {
    276         if (!node->isSVGElement() || !toSVGElement(node)->isSVGStyledElement() || !node->renderer())
     276        if (!node->isSVGElement() || !node->renderer())
    277277            continue;
    278278        if (node->renderer()->needsLayout())
  • trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp

    r153876 r154462  
    3939#include "RenderSVGResourceContainer.h"
    4040#include "RenderView.h"
     41#include "SVGElement.h"
    4142#include "SVGImage.h"
    4243#include "SVGLength.h"
     
    4546#include "SVGResourcesCache.h"
    4647#include "SVGSVGElement.h"
    47 #include "SVGStyledElement.h"
    4848#include "SVGViewSpec.h"
    4949#include "TransformState.h"
     
    5858namespace WebCore {
    5959
    60 RenderSVGRoot::RenderSVGRoot(SVGStyledElement* node)
     60RenderSVGRoot::RenderSVGRoot(SVGElement* node)
    6161    : RenderReplaced(node)
    6262    , m_objectBoundingBoxValid(false)
  • trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h

    r153380 r154462  
    3333
    3434class AffineTransform;
    35 class SVGStyledElement;
     35class SVGElement;
    3636
    3737class RenderSVGRoot FINAL : public RenderReplaced {
    3838public:
    39     explicit RenderSVGRoot(SVGStyledElement*);
     39    explicit RenderSVGRoot(SVGElement*);
    4040    virtual ~RenderSVGRoot();
    4141
  • trunk/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp

    r146495 r154462  
    3535namespace WebCore {
    3636
    37 RenderSVGViewportContainer::RenderSVGViewportContainer(SVGStyledElement* node)
     37RenderSVGViewportContainer::RenderSVGViewportContainer(SVGElement* node)
    3838    : RenderSVGContainer(node)
    3939    , m_didTransformToRootUpdate(false)
  • trunk/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h

    r153380 r154462  
    3333class RenderSVGViewportContainer FINAL : public RenderSVGContainer {
    3434public:
    35     explicit RenderSVGViewportContainer(SVGStyledElement*);
     35    explicit RenderSVGViewportContainer(SVGElement*);
    3636    FloatRect viewport() const { return m_viewport; }
    3737
  • trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp

    r149980 r154462  
    3939#include "RenderSVGText.h"
    4040#include "RenderSVGViewportContainer.h"
     41#include "SVGElement.h"
    4142#include "SVGResources.h"
    4243#include "SVGResourcesCache.h"
    43 #include "SVGStyledElement.h"
    4444#include "TransformState.h"
    4545
     
    255255            // When selfNeedsLayout is false and the layout size changed, we have to check whether this child uses relative lengths
    256256            if (SVGElement* element = child->node()->isSVGElement() ? toSVGElement(child->node()) : 0) {
    257                 if (element->isSVGStyledElement() && toSVGStyledElement(element)->hasRelativeLengths()) {
     257                if (element->hasRelativeLengths()) {
    258258                    // When the layout size changed and when using relative values tell the RenderSVGShape to update its shape object
    259259                    if (child->isSVGShape())
  • trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp

    r154440 r154462  
    6060#include "RenderTreeAsText.h"
    6161#include "SVGCircleElement.h"
     62#include "SVGElement.h"
    6263#include "SVGEllipseElement.h"
    6364#include "SVGInlineTextBox.h"
     
    7475#include "SVGRootInlineBox.h"
    7576#include "SVGStopElement.h"
    76 #include "SVGStyledElement.h"
    7777
    7878#include <math.h>
  • trunk/Source/WebCore/rendering/svg/SVGResources.cpp

    r153297 r154462  
    180180{
    181181    ASSERT(element);
    182     ASSERT_WITH_SECURITY_IMPLICATION(element->isSVGStyledElement());
    183     extensions->addPendingResource(id, toSVGStyledElement(element));
     182    extensions->addPendingResource(id, element);
    184183}
    185184
  • trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp

    r150259 r154462  
    2525#include "RenderSVGResourceContainer.h"
    2626#include "SVGDocumentExtensions.h"
     27#include "SVGElement.h"
    2728#include "SVGResources.h"
    2829#include "SVGResourcesCycleSolver.h"
    29 #include "SVGStyledElement.h"
    3030
    3131namespace WebCore {
  • trunk/Source/WebCore/svg/SVGAElement.cpp

    r154371 r154462  
    8484
    8585    // Otherwise, use the title of this element.
    86     return SVGStyledElement::title();
     86    return SVGElement::title();
    8787}
    8888
  • trunk/Source/WebCore/svg/SVGAllInOne.cpp

    r152553 r154462  
    158158#include "SVGStringList.cpp"
    159159#include "SVGStyleElement.cpp"
    160 #include "SVGStyledElement.cpp"
    161160#include "SVGSwitchElement.cpp"
    162161#include "SVGSymbolElement.cpp"
  • trunk/Source/WebCore/svg/SVGAltGlyphDefElement.h

    r149960 r154462  
    3535private:
    3636    SVGAltGlyphDefElement(const QualifiedName&, Document*);
     37
     38    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    3739};
    3840
  • trunk/Source/WebCore/svg/SVGAltGlyphItemElement.h

    r149960 r154462  
    3535private:
    3636    SVGAltGlyphItemElement(const QualifiedName&, Document*);
     37
     38    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    3739};
    3840
  • trunk/Source/WebCore/svg/SVGAnimateElement.cpp

    r154266 r154462  
    3131#include "RenderObject.h"
    3232#include "SVGAnimatorFactory.h"
     33#include "SVGElement.h"
    3334#include "SVGNames.h"
    34 #include "SVGStyledElement.h"
    3535#include "StylePropertySet.h"
    3636
  • trunk/Source/WebCore/svg/SVGAnimatedType.cpp

    r115950 r154462  
    252252        return *m_data.string;
    253253
    254     // These types don't appear in the table in SVGStyledElement::cssPropertyToTypeMap() and thus don't need valueAsString() support.
     254    // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need valueAsString() support.
    255255    case AnimatedAngle:
    256256    case AnimatedBoolean:
     
    303303        break;
    304304
    305     // These types don't appear in the table in SVGStyledElement::cssPropertyToTypeMap() and thus don't need setValueAsString() support.
     305    // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need setValueAsString() support.
    306306    case AnimatedAngle:
    307307    case AnimatedBoolean:
  • trunk/Source/WebCore/svg/SVGAnimationElement.cpp

    r154266 r154462  
    3636#include "RenderObject.h"
    3737#include "SVGAnimateElement.h"
     38#include "SVGElement.h"
    3839#include "SVGElementInstance.h"
    3940#include "SVGNames.h"
    4041#include "SVGParserUtilities.h"
    41 #include "SVGStyledElement.h"
    4242#include <wtf/MathExtras.h>
    4343
     
    352352}
    353353
    354 bool SVGAnimationElement::isTargetAttributeCSSProperty(SVGElement* targetElement, const QualifiedName& attributeName)
    355 {
    356     ASSERT(targetElement);
    357     if (!targetElement->isSVGStyledElement())
    358         return false;
    359 
    360     return SVGStyledElement::isAnimatableCSSProperty(attributeName);
     354bool SVGAnimationElement::isTargetAttributeCSSProperty(SVGElement*, const QualifiedName& attributeName)
     355{
     356    return SVGElement::isAnimatableCSSProperty(attributeName);
    361357}
    362358
     
    635631{
    636632    ASSERT(element);
    637     ASSERT(element->isSVGStyledElement());
    638633
    639634    // Don't include any properties resulting from CSS Transitions/Animations or SMIL animations, as we want to retrieve the "base value".
     
    655650
    656651    SVGElement* svgParent = toSVGElement(parent);
    657     if (!svgParent->isSVGStyledElement())
    658         return;
    659652    computeCSSPropertyValue(svgParent, cssPropertyID(attributeName.localName()), value);
    660653}
    661654
    662 static bool inheritsFromProperty(SVGElement* targetElement, const QualifiedName& attributeName, const String& value)
    663 {
    664     ASSERT(targetElement);
     655static bool inheritsFromProperty(SVGElement*, const QualifiedName& attributeName, const String& value)
     656{
    665657    DEFINE_STATIC_LOCAL(const AtomicString, inherit, ("inherit", AtomicString::ConstructFromLiteral));
    666658   
    667     if (value.isEmpty() || value != inherit || !targetElement->isSVGStyledElement())
     659    if (value.isEmpty() || value != inherit)
    668660        return false;
    669     return SVGStyledElement::isAnimatableCSSProperty(attributeName);
     661    return SVGElement::isAnimatableCSSProperty(attributeName);
    670662}
    671663
  • trunk/Source/WebCore/svg/SVGComponentTransferFunctionElement.h

    r135069 r154462  
    8181    virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
    8282    virtual void svgAttributeChanged(const QualifiedName&);
     83
     84    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    8385   
    8486private:
  • trunk/Source/WebCore/svg/SVGCursorElement.h

    r149960 r154462  
    5555    virtual void svgAttributeChanged(const QualifiedName&);
    5656
     57    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     58
    5759    virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
    5860
  • trunk/Source/WebCore/svg/SVGDescElement.cpp

    r86050 r154462  
    2727
    2828inline SVGDescElement::SVGDescElement(const QualifiedName& tagName, Document* document)
    29     : SVGStyledElement(tagName, document)
     29    : SVGElement(tagName, document)
    3030{
    3131    ASSERT(hasTagName(SVGNames::descTag));
  • trunk/Source/WebCore/svg/SVGDescElement.h

    r154358 r154462  
    2323
    2424#if ENABLE(SVG)
    25 #include "SVGStyledElement.h"
     25#include "SVGElement.h"
    2626
    2727namespace WebCore {
    2828
    29 class SVGDescElement FINAL : public SVGStyledElement {
     29class SVGDescElement FINAL : public SVGElement {
    3030public:
    3131    static PassRefPtr<SVGDescElement> create(const QualifiedName&, Document*);
  • trunk/Source/WebCore/svg/SVGDescElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGDescElement : SVGStyledElement {
     28] interface SVGDescElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGElement.cpp

    r154443 r154462  
    55 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
    66 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
     7 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
    78 *
    89 * This library is free software; you can redistribute it and/or
     
    2728#include "SVGElement.h"
    2829
     30#include "Attr.h"
    2931#include "CSSCursorImageValue.h"
     32#include "CSSParser.h"
    3033#include "DOMImplementation.h"
    3134#include "Document.h"
     35#include "ElementTraversal.h"
    3236#include "Event.h"
     37#include "EventNames.h"
    3338#include "HTMLNames.h"
    3439#include "RenderObject.h"
     40#include "RenderSVGResource.h"
     41#include "RenderSVGResourceClipper.h"
     42#include "RenderSVGResourceFilter.h"
     43#include "RenderSVGResourceMasker.h"
    3544#include "SVGCursorElement.h"
    3645#include "SVGDocumentExtensions.h"
     
    4049#include "SVGImageElement.h"
    4150#include "SVGNames.h"
     51#include "SVGRenderStyle.h"
     52#include "SVGRenderSupport.h"
    4253#include "SVGSVGElement.h"
     54#include "SVGUseElement.h"
    4355#include "ScriptEventListener.h"
    4456#include "ShadowRoot.h"
    4557#include "XLinkNames.h"
    4658#include "XMLNames.h"
     59#include <wtf/Assertions.h>
     60#include <wtf/HashMap.h>
     61#include <wtf/StdLibExtras.h>
     62#include <wtf/text/WTFString.h>
     63
    4764
    4865namespace WebCore {
    4966
     67// Animated property definitions
     68DEFINE_ANIMATED_STRING(SVGElement, HTMLNames::classAttr, ClassName, className)
     69
     70BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGElement)
     71    REGISTER_LOCAL_ANIMATED_PROPERTY(className)
     72END_REGISTER_ANIMATED_PROPERTIES
     73
    5074using namespace HTMLNames;
     75using namespace SVGNames;
     76
     77void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName)
     78{
     79    // FIXME: when CSS supports "transform-origin" the special case for transform_originAttr can be removed.
     80    CSSPropertyID propertyId = cssPropertyID(attrName.localName());
     81    if (!propertyId && attrName == transform_originAttr)
     82        propertyId = CSSPropertyWebkitTransformOrigin; // cssPropertyID("-webkit-transform-origin")
     83    ASSERT(propertyId > 0);
     84    propertyNameToIdMap->set(attrName.localName().impl(), propertyId);
     85}
     86
     87typedef HashMap<QualifiedName, AnimatedPropertyType> AttributeToPropertyTypeMap;
     88static inline AttributeToPropertyTypeMap& cssPropertyToTypeMap()
     89{
     90    DEFINE_STATIC_LOCAL(AttributeToPropertyTypeMap, s_cssPropertyMap, ());
     91
     92    if (!s_cssPropertyMap.isEmpty())
     93        return s_cssPropertyMap;
     94
     95    // Fill the map for the first use.
     96    s_cssPropertyMap.set(alignment_baselineAttr, AnimatedString);
     97    s_cssPropertyMap.set(baseline_shiftAttr, AnimatedString);
     98    s_cssPropertyMap.set(buffered_renderingAttr, AnimatedString);
     99    s_cssPropertyMap.set(clipAttr, AnimatedRect);
     100    s_cssPropertyMap.set(clip_pathAttr, AnimatedString);
     101    s_cssPropertyMap.set(clip_ruleAttr, AnimatedString);
     102    s_cssPropertyMap.set(SVGNames::colorAttr, AnimatedColor);
     103    s_cssPropertyMap.set(color_interpolationAttr, AnimatedString);
     104    s_cssPropertyMap.set(color_interpolation_filtersAttr, AnimatedString);
     105    s_cssPropertyMap.set(color_profileAttr, AnimatedString);
     106    s_cssPropertyMap.set(color_renderingAttr, AnimatedString);
     107    s_cssPropertyMap.set(cursorAttr, AnimatedString);
     108    s_cssPropertyMap.set(displayAttr, AnimatedString);
     109    s_cssPropertyMap.set(dominant_baselineAttr, AnimatedString);
     110    s_cssPropertyMap.set(fillAttr, AnimatedColor);
     111    s_cssPropertyMap.set(fill_opacityAttr, AnimatedNumber);
     112    s_cssPropertyMap.set(fill_ruleAttr, AnimatedString);
     113    s_cssPropertyMap.set(filterAttr, AnimatedString);
     114    s_cssPropertyMap.set(flood_colorAttr, AnimatedColor);
     115    s_cssPropertyMap.set(flood_opacityAttr, AnimatedNumber);
     116    s_cssPropertyMap.set(font_familyAttr, AnimatedString);
     117    s_cssPropertyMap.set(font_sizeAttr, AnimatedLength);
     118    s_cssPropertyMap.set(font_stretchAttr, AnimatedString);
     119    s_cssPropertyMap.set(font_styleAttr, AnimatedString);
     120    s_cssPropertyMap.set(font_variantAttr, AnimatedString);
     121    s_cssPropertyMap.set(font_weightAttr, AnimatedString);
     122    s_cssPropertyMap.set(image_renderingAttr, AnimatedString);
     123    s_cssPropertyMap.set(kerningAttr, AnimatedLength);
     124    s_cssPropertyMap.set(letter_spacingAttr, AnimatedLength);
     125    s_cssPropertyMap.set(lighting_colorAttr, AnimatedColor);
     126    s_cssPropertyMap.set(marker_endAttr, AnimatedString);
     127    s_cssPropertyMap.set(marker_midAttr, AnimatedString);
     128    s_cssPropertyMap.set(marker_startAttr, AnimatedString);
     129    s_cssPropertyMap.set(maskAttr, AnimatedString);
     130    s_cssPropertyMap.set(mask_typeAttr, AnimatedString);
     131    s_cssPropertyMap.set(opacityAttr, AnimatedNumber);
     132    s_cssPropertyMap.set(overflowAttr, AnimatedString);
     133    s_cssPropertyMap.set(pointer_eventsAttr, AnimatedString);
     134    s_cssPropertyMap.set(shape_renderingAttr, AnimatedString);
     135    s_cssPropertyMap.set(stop_colorAttr, AnimatedColor);
     136    s_cssPropertyMap.set(stop_opacityAttr, AnimatedNumber);
     137    s_cssPropertyMap.set(strokeAttr, AnimatedColor);
     138    s_cssPropertyMap.set(stroke_dasharrayAttr, AnimatedLengthList);
     139    s_cssPropertyMap.set(stroke_dashoffsetAttr, AnimatedLength);
     140    s_cssPropertyMap.set(stroke_linecapAttr, AnimatedString);
     141    s_cssPropertyMap.set(stroke_linejoinAttr, AnimatedString);
     142    s_cssPropertyMap.set(stroke_miterlimitAttr, AnimatedNumber);
     143    s_cssPropertyMap.set(stroke_opacityAttr, AnimatedNumber);
     144    s_cssPropertyMap.set(stroke_widthAttr, AnimatedLength);
     145    s_cssPropertyMap.set(text_anchorAttr, AnimatedString);
     146    s_cssPropertyMap.set(text_decorationAttr, AnimatedString);
     147    s_cssPropertyMap.set(text_renderingAttr, AnimatedString);
     148    s_cssPropertyMap.set(vector_effectAttr, AnimatedString);
     149    s_cssPropertyMap.set(visibilityAttr, AnimatedString);
     150    s_cssPropertyMap.set(word_spacingAttr, AnimatedLength);
     151    return s_cssPropertyMap;
     152}
    51153
    52154SVGElement::SVGElement(const QualifiedName& tagName, Document* document)
    53155    : StyledElement(tagName, document, CreateSVGElement)
    54156{
     157    registerAnimatedPropertiesForSVGElement();
    55158}
    56159
     
    77180        ASSERT(it != rareDataMap.end());
    78181        rareDataMap.remove(it);
     182
     183        // Clear HasSVGRareData flag now so that we are in a consistent state when
     184        // calling rebuildAllElementReferencesForTarget() and
     185        // removeAllElementReferencesForTarget() below.
     186        clearHasSVGRareData();
    79187    }
    80188    ASSERT(document());
     
    175283{
    176284    bool wasInDocument = rootParent->inDocument();
     285    if (wasInDocument)
     286        updateRelativeLengthsInformation(false, this);
    177287
    178288    StyledElement::removedFrom(rootParent);
     
    182292        document()->accessSVGExtensions()->removeAllElementReferencesForTarget(this);
    183293    }
     294    SVGElementInstance::invalidateAllInstancesOfElement(this);
    184295}
    185296
     
    330441    else if (name == SVGNames::onactivateAttr)
    331442        setAttributeEventListener(eventNames().DOMActivateEvent, createAttributeEventListener(this, name, value));
     443    else if (name == HTMLNames::classAttr)
     444        setClassNameBaseValue(value);
    332445    else if (SVGLangSpace::parseAttribute(name, value)) {
    333446    } else
     
    338451{
    339452    localAttributeToPropertyMap().animatedPropertyTypeForAttribute(attributeName, propertyTypes);
     453
     454    if (!propertyTypes.isEmpty())
     455        return;
     456
     457    AttributeToPropertyTypeMap& cssPropertyTypeMap = cssPropertyToTypeMap();
     458    if (cssPropertyTypeMap.contains(attributeName))
     459        propertyTypes.append(cssPropertyTypeMap.get(attributeName));
    340460}
    341461
     
    357477        return;
    358478
    359     if (!element->isSVGStyledElement())
    360         return;
    361 
    362     SVGStyledElement* styledElement = toSVGStyledElement(element);
    363     ASSERT(!styledElement->instanceUpdatesBlocked());
    364 
    365     instances = styledElement->instancesForElement();
     479    ASSERT(!element->instanceUpdatesBlocked());
     480
     481    instances = element->instancesForElement();
    366482}
    367483
     
    562678    } else
    563679        nonConstThis->localAttributeToPropertyMap().synchronizeProperty(nonConstThis, name);
    564 }
    565 
    566 SVGAttributeToPropertyMap& SVGElement::localAttributeToPropertyMap()
    567 {
    568     DEFINE_STATIC_LOCAL(SVGAttributeToPropertyMap, emptyMap, ());
    569     return emptyMap;
    570680}
    571681
     
    736846
    737847    if (name == classAttr)
    738         return isSVGStyledElement();
     848        return true;
    739849
    740850    return animatableAttributes.contains(name);
     
    742852#endif
    743853
     854String SVGElement::title() const
     855{
     856    // According to spec, we should not return titles when hovering over root <svg> elements (those
     857    // <title> elements are the title of the document, not a tooltip) so we instantly return.
     858    if (isOutermostSVGSVGElement())
     859        return String();
     860
     861    // Walk up the tree, to find out whether we're inside a <use> shadow tree, to find the right title.
     862    if (isInShadowTree()) {
     863        Element* shadowHostElement = toShadowRoot(treeScope()->rootNode())->hostElement();
     864        // At this time, SVG nodes are not allowed in non-<use> shadow trees, so any shadow root we do
     865        // have should be a use. The assert and following test is here to catch future shadow DOM changes
     866        // that do enable SVG in a shadow tree.
     867        ASSERT(!shadowHostElement || shadowHostElement->hasTagName(SVGNames::useTag));
     868        if (shadowHostElement && shadowHostElement->hasTagName(SVGNames::useTag)) {
     869            SVGUseElement* useElement = toSVGUseElement(shadowHostElement);
     870
     871            // If the <use> title is not empty we found the title to use.
     872            String useTitle(useElement->title());
     873            if (!useTitle.isEmpty())
     874                return useTitle;
     875        }
     876    }
     877
     878    // If we aren't an instance in a <use> or the <use> title was not found, then find the first
     879    // <title> child of this element.
     880    Element* titleElement = ElementTraversal::firstWithin(this);
     881    for (; titleElement; titleElement = ElementTraversal::nextSibling(titleElement)) {
     882        if (titleElement->hasTagName(SVGNames::titleTag) && titleElement->isSVGElement())
     883            break;
     884    }
     885
     886    // If a title child was found, return the text contents.
     887    if (titleElement)
     888        return titleElement->innerText();
     889
     890    // Otherwise return a null/empty string.
     891    return String();
     892}
     893
     894bool SVGElement::rendererIsNeeded(const RenderStyle& style)
     895{
     896    // http://www.w3.org/TR/SVG/extend.html#PrivateData
     897    // Prevent anything other than SVG renderers from appearing in our render tree
     898    // Spec: SVG allows inclusion of elements from foreign namespaces anywhere
     899    // with the SVG content. In general, the SVG user agent will include the unknown
     900    // elements in the DOM but will otherwise ignore unknown elements.
     901    if (!parentOrShadowHostElement() || parentOrShadowHostElement()->isSVGElement())
     902        return StyledElement::rendererIsNeeded(style);
     903
     904    return false;
     905}
     906
     907CSSPropertyID SVGElement::cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
     908{
     909    if (!attrName.namespaceURI().isNull())
     910        return CSSPropertyInvalid;
     911
     912    static HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap = 0;
     913    if (!propertyNameToIdMap) {
     914        propertyNameToIdMap = new HashMap<AtomicStringImpl*, CSSPropertyID>;
     915        // This is a list of all base CSS and SVG CSS properties which are exposed as SVG XML attributes
     916        mapAttributeToCSSProperty(propertyNameToIdMap, alignment_baselineAttr);
     917        mapAttributeToCSSProperty(propertyNameToIdMap, baseline_shiftAttr);
     918        mapAttributeToCSSProperty(propertyNameToIdMap, buffered_renderingAttr);
     919        mapAttributeToCSSProperty(propertyNameToIdMap, clipAttr);
     920        mapAttributeToCSSProperty(propertyNameToIdMap, clip_pathAttr);
     921        mapAttributeToCSSProperty(propertyNameToIdMap, clip_ruleAttr);
     922        mapAttributeToCSSProperty(propertyNameToIdMap, SVGNames::colorAttr);
     923        mapAttributeToCSSProperty(propertyNameToIdMap, color_interpolationAttr);
     924        mapAttributeToCSSProperty(propertyNameToIdMap, color_interpolation_filtersAttr);
     925        mapAttributeToCSSProperty(propertyNameToIdMap, color_profileAttr);
     926        mapAttributeToCSSProperty(propertyNameToIdMap, color_renderingAttr);
     927        mapAttributeToCSSProperty(propertyNameToIdMap, cursorAttr);
     928        mapAttributeToCSSProperty(propertyNameToIdMap, SVGNames::directionAttr);
     929        mapAttributeToCSSProperty(propertyNameToIdMap, displayAttr);
     930        mapAttributeToCSSProperty(propertyNameToIdMap, dominant_baselineAttr);
     931        mapAttributeToCSSProperty(propertyNameToIdMap, enable_backgroundAttr);
     932        mapAttributeToCSSProperty(propertyNameToIdMap, fillAttr);
     933        mapAttributeToCSSProperty(propertyNameToIdMap, fill_opacityAttr);
     934        mapAttributeToCSSProperty(propertyNameToIdMap, fill_ruleAttr);
     935        mapAttributeToCSSProperty(propertyNameToIdMap, filterAttr);
     936        mapAttributeToCSSProperty(propertyNameToIdMap, flood_colorAttr);
     937        mapAttributeToCSSProperty(propertyNameToIdMap, flood_opacityAttr);
     938        mapAttributeToCSSProperty(propertyNameToIdMap, font_familyAttr);
     939        mapAttributeToCSSProperty(propertyNameToIdMap, font_sizeAttr);
     940        mapAttributeToCSSProperty(propertyNameToIdMap, font_stretchAttr);
     941        mapAttributeToCSSProperty(propertyNameToIdMap, font_styleAttr);
     942        mapAttributeToCSSProperty(propertyNameToIdMap, font_variantAttr);
     943        mapAttributeToCSSProperty(propertyNameToIdMap, font_weightAttr);
     944        mapAttributeToCSSProperty(propertyNameToIdMap, glyph_orientation_horizontalAttr);
     945        mapAttributeToCSSProperty(propertyNameToIdMap, glyph_orientation_verticalAttr);
     946        mapAttributeToCSSProperty(propertyNameToIdMap, image_renderingAttr);
     947        mapAttributeToCSSProperty(propertyNameToIdMap, kerningAttr);
     948        mapAttributeToCSSProperty(propertyNameToIdMap, letter_spacingAttr);
     949        mapAttributeToCSSProperty(propertyNameToIdMap, lighting_colorAttr);
     950        mapAttributeToCSSProperty(propertyNameToIdMap, marker_endAttr);
     951        mapAttributeToCSSProperty(propertyNameToIdMap, marker_midAttr);
     952        mapAttributeToCSSProperty(propertyNameToIdMap, marker_startAttr);
     953        mapAttributeToCSSProperty(propertyNameToIdMap, maskAttr);
     954        mapAttributeToCSSProperty(propertyNameToIdMap, mask_typeAttr);
     955        mapAttributeToCSSProperty(propertyNameToIdMap, opacityAttr);
     956        mapAttributeToCSSProperty(propertyNameToIdMap, overflowAttr);
     957        mapAttributeToCSSProperty(propertyNameToIdMap, pointer_eventsAttr);
     958        mapAttributeToCSSProperty(propertyNameToIdMap, shape_renderingAttr);
     959        mapAttributeToCSSProperty(propertyNameToIdMap, stop_colorAttr);
     960        mapAttributeToCSSProperty(propertyNameToIdMap, stop_opacityAttr);
     961        mapAttributeToCSSProperty(propertyNameToIdMap, strokeAttr);
     962        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_dasharrayAttr);
     963        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_dashoffsetAttr);
     964        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_linecapAttr);
     965        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_linejoinAttr);
     966        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_miterlimitAttr);
     967        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_opacityAttr);
     968        mapAttributeToCSSProperty(propertyNameToIdMap, stroke_widthAttr);
     969        mapAttributeToCSSProperty(propertyNameToIdMap, text_anchorAttr);
     970        mapAttributeToCSSProperty(propertyNameToIdMap, text_decorationAttr);
     971        mapAttributeToCSSProperty(propertyNameToIdMap, text_renderingAttr);
     972        mapAttributeToCSSProperty(propertyNameToIdMap, transform_originAttr);
     973        mapAttributeToCSSProperty(propertyNameToIdMap, unicode_bidiAttr);
     974        mapAttributeToCSSProperty(propertyNameToIdMap, vector_effectAttr);
     975        mapAttributeToCSSProperty(propertyNameToIdMap, visibilityAttr);
     976        mapAttributeToCSSProperty(propertyNameToIdMap, word_spacingAttr);
     977        mapAttributeToCSSProperty(propertyNameToIdMap, writing_modeAttr);
     978    }
     979
     980    return propertyNameToIdMap->get(attrName.localName().impl());
     981}
     982
     983bool SVGElement::isAnimatableCSSProperty(const QualifiedName& attrName)
     984{
     985    return cssPropertyToTypeMap().contains(attrName);
     986}
     987
     988bool SVGElement::isPresentationAttribute(const QualifiedName& name) const
     989{
     990    if (cssPropertyIdForSVGAttributeName(name) > 0)
     991        return true;
     992    return StyledElement::isPresentationAttribute(name);
     993}
     994
     995void SVGElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style)
     996{
     997    CSSPropertyID propertyID = cssPropertyIdForSVGAttributeName(name);
     998    if (propertyID > 0)
     999        addPropertyToPresentationAttributeStyle(style, propertyID, value);
     1000}
     1001
     1002bool SVGElement::isKnownAttribute(const QualifiedName& attrName)
     1003{
     1004    return isIdAttributeName(attrName);
     1005}
     1006
     1007void SVGElement::svgAttributeChanged(const QualifiedName& attrName)
     1008{
     1009    CSSPropertyID propId = cssPropertyIdForSVGAttributeName(attrName);
     1010    if (propId > 0) {
     1011        SVGElementInstance::invalidateAllInstancesOfElement(this);
     1012        return;
     1013    }
     1014
     1015    if (attrName == HTMLNames::classAttr) {
     1016        classAttributeChanged(className());
     1017        SVGElementInstance::invalidateAllInstancesOfElement(this);
     1018        return;
     1019    }
     1020
     1021    if (isIdAttributeName(attrName)) {
     1022        RenderObject* object = renderer();
     1023        // Notify resources about id changes, this is important as we cache resources by id in SVGDocumentExtensions
     1024        if (object && object->isSVGResourceContainer())
     1025            object->toRenderSVGResourceContainer()->idChanged();
     1026        if (inDocument())
     1027            buildPendingResourcesIfNeeded();
     1028        SVGElementInstance::invalidateAllInstancesOfElement(this);
     1029        return;
     1030    }
     1031}
     1032
     1033Node::InsertionNotificationRequest SVGElement::insertedInto(ContainerNode* rootParent)
     1034{
     1035    StyledElement::insertedInto(rootParent);
     1036    updateRelativeLengthsInformation();
     1037    buildPendingResourcesIfNeeded();
     1038    return InsertionDone;
     1039}
     1040
     1041void SVGElement::buildPendingResourcesIfNeeded()
     1042{
     1043    Document* document = this->document();
     1044    if (!needsPendingResourceHandling() || !document || !inDocument() || isInShadowTree())
     1045        return;
     1046
     1047    SVGDocumentExtensions* extensions = document->accessSVGExtensions();
     1048    String resourceId = getIdAttribute();
     1049    if (!extensions->hasPendingResource(resourceId))
     1050        return;
     1051
     1052    // Mark pending resources as pending for removal.
     1053    extensions->markPendingResourcesForRemoval(resourceId);
     1054
     1055    // Rebuild pending resources for each client of a pending resource that is being removed.
     1056    while (Element* clientElement = extensions->removeElementFromPendingResourcesForRemoval(resourceId)) {
     1057        ASSERT(clientElement->hasPendingResources());
     1058        if (clientElement->hasPendingResources()) {
     1059            clientElement->buildPendingResource();
     1060            extensions->clearHasPendingResourcesIfPossible(clientElement);
     1061        }
     1062    }
     1063}
     1064
     1065void SVGElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
     1066{
     1067    StyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     1068
     1069    // Invalidate all SVGElementInstances associated with us
     1070    if (!changedByParser)
     1071        SVGElementInstance::invalidateAllInstancesOfElement(this);
     1072}
     1073
     1074PassRefPtr<CSSValue> SVGElement::getPresentationAttribute(const String& name)
     1075{
     1076    if (!hasAttributesWithoutUpdate())
     1077        return 0;
     1078
     1079    QualifiedName attributeName(nullAtom, name, nullAtom);
     1080    const Attribute* attribute = findAttributeByName(attributeName);
     1081    if (!attribute)
     1082        return 0;
     1083
     1084    RefPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(SVGAttributeMode);
     1085    CSSPropertyID propertyID = cssPropertyIdForSVGAttributeName(attribute->name());
     1086    style->setProperty(propertyID, attribute->value());
     1087    RefPtr<CSSValue> cssValue = style->getPropertyCSSValue(propertyID);
     1088    return cssValue ? cssValue->cloneForCSSOM() : 0;
     1089}
     1090
     1091bool SVGElement::instanceUpdatesBlocked() const
     1092{
     1093    return hasSVGRareData() && svgRareData()->instanceUpdatesBlocked();
     1094}
     1095
     1096void SVGElement::setInstanceUpdatesBlocked(bool value)
     1097{
     1098    if (hasSVGRareData())
     1099        svgRareData()->setInstanceUpdatesBlocked(value);
     1100}
     1101
     1102AffineTransform SVGElement::localCoordinateSpaceTransform(SVGLocatable::CTMScope) const
     1103{
     1104    // To be overriden by SVGGraphicsElement (or as special case SVGTextElement and SVGPatternElement)
     1105    return AffineTransform();
     1106}
     1107
     1108void SVGElement::updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement* element)
     1109{
     1110    // If we're not yet in a document, this function will be called again from insertedInto(). Do nothing now.
     1111    if (!inDocument())
     1112        return;
     1113
     1114    // An element wants to notify us that its own relative lengths state changed.
     1115    // Register it in the relative length map, and register us in the parent relative length map.
     1116    // Register the parent in the grandparents map, etc. Repeat procedure until the root of the SVG tree.
     1117
     1118    if (hasRelativeLengths)
     1119        m_elementsWithRelativeLengths.add(element);
     1120    else {
     1121        if (!m_elementsWithRelativeLengths.contains(element)) {
     1122            // We were never registered. Do nothing.
     1123            return;
     1124        }
     1125
     1126        m_elementsWithRelativeLengths.remove(element);
     1127    }
     1128
     1129    // Find first styled parent node, and notify it that we've changed our relative length state.
     1130    ContainerNode* node = parentNode();
     1131    while (node) {
     1132        if (!node->isSVGElement())
     1133            break;
     1134
     1135        // Register us in the parent element map.
     1136        toSVGElement(node)->updateRelativeLengthsInformation(hasRelativeLengths, this);
     1137        break;
     1138    }
     1139}
     1140
     1141bool SVGElement::isMouseFocusable() const
     1142{
     1143    if (!isFocusable())
     1144        return false;
     1145    Element* eventTarget = const_cast<SVGElement*>(this);
     1146    return eventTarget->hasEventListeners(eventNames().focusinEvent) || eventTarget->hasEventListeners(eventNames().focusoutEvent);
     1147}
     1148
     1149bool SVGElement::isKeyboardFocusable(KeyboardEvent*) const
     1150{
     1151    return isMouseFocusable();
     1152}
     1153
    7441154}
    7451155
  • trunk/Source/WebCore/svg/SVGElement.h

    r154443 r154462  
    11/*
    22 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    3  * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
     3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
    44 * Copyright (C) 2009 Apple Inc. All rights reserved.
     5 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
    56 *
    67 * This library is free software; you can redistribute it and/or
     
    2425
    2526#if ENABLE(SVG)
     27#include "CSSPropertyNames.h"
     28#include "SVGAnimatedString.h"
    2629#include "SVGLangSpace.h"
    2730#include "SVGLocatable.h"
     
    3134#include "Timer.h"
    3235#include <wtf/HashMap.h>
     36#include <wtf/HashSet.h>
     37#include <wtf/PassRefPtr.h>
    3338
    3439namespace WebCore {
     
    3641class AffineTransform;
    3742class CSSCursorImageValue;
     43class CSSStyleDeclaration;
     44class CSSValue;
    3845class Document;
    3946class SVGAttributeToPropertyMap;
     
    4451class SVGSVGElement;
    4552
     53void mapAttributeToCSSProperty(HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName);
     54
    4655class SVGElement : public StyledElement, public SVGLangSpace {
    4756public:
     
    5463    SVGElement* viewportElement() const;
    5564
     65    virtual String title() const OVERRIDE;
     66    static bool isAnimatableCSSProperty(const QualifiedName&);
     67    bool isKnownAttribute(const QualifiedName&);
     68    PassRefPtr<CSSValue> getPresentationAttribute(const String& name);
     69    virtual bool supportsMarkers() const { return false; }
     70    bool hasRelativeLengths() const { return !m_elementsWithRelativeLengths.isEmpty(); }
     71    virtual bool needsPendingResourceHandling() const { return true; }
     72    bool instanceUpdatesBlocked() const;
     73    void setInstanceUpdatesBlocked(bool);
     74    virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const;
     75
    5676    SVGDocumentExtensions* accessDocumentSVGExtensions();
    5777
    58     virtual bool isSVGStyledElement() const { return false; }
    5978    virtual bool isSVGGraphicsElement() const { return false; }
    6079    virtual bool isSVGSVGElement() const { return false; }
     
    6685    virtual bool isValid() const { return true; }
    6786
    68     virtual void svgAttributeChanged(const QualifiedName&) { }
     87    virtual void svgAttributeChanged(const QualifiedName&);
    6988
    7089    virtual void animatedPropertyTypeForAttribute(const QualifiedName&, Vector<AnimatedPropertyType>&);
     
    103122    virtual void synchronizeSystemLanguage() { }
    104123
    105     virtual SVGAttributeToPropertyMap& localAttributeToPropertyMap();
    106 
    107124#ifndef NDEBUG
    108125    bool isAnimatableAttribute(const QualifiedName&) const;
     
    126143    virtual ~SVGElement();
    127144
     145    virtual bool rendererIsNeeded(const RenderStyle&);
    128146    virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
    129147
     
    138156
    139157    void reportAttributeParsingError(SVGParsingError, const QualifiedName&, const AtomicString&);
     158    static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName&);
     159
     160    virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;
     161    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE;
     162    virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
     163    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     164    virtual bool selfHasRelativeLengths() const { return false; }
     165    void updateRelativeLengthsInformation() { updateRelativeLengthsInformation(selfHasRelativeLengths(), this); }
     166    void updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement*);
    140167
    141168private:
     
    150177    virtual bool willRecalcStyle(Style::Change);
    151178
    152     virtual bool rendererIsNeeded(const RenderStyle&) { return false; }
    153 
    154179    virtual bool isSupported(StringImpl* feature, StringImpl* version) const;
    155180
    156181    void mapInstanceToElement(SVGElementInstance*);
    157182    void removeInstanceMapping(SVGElementInstance*);
     183
     184    void buildPendingResourcesIfNeeded();
     185    virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE;
     186    virtual bool isMouseFocusable() const OVERRIDE;
     187
     188    HashSet<SVGElement*> m_elementsWithRelativeLengths;
     189
     190    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGElement)
     191        DECLARE_ANIMATED_STRING(ClassName, className)
     192    END_DECLARE_ANIMATED_PROPERTIES
    158193
    159194};
  • trunk/Source/WebCore/svg/SVGElement.idl

    r154057 r154462  
    3131    attribute DOMString xmllang;
    3232    attribute DOMString xmlspace;
     33
     34    readonly attribute SVGAnimatedString className;
     35    readonly attribute CSSStyleDeclaration style;
     36
     37    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
    3338};
    3439
  • trunk/Source/WebCore/svg/SVGElementInstance.cpp

    r154225 r154462  
    186186        return;
    187187
    188     if (element->isSVGStyledElement() && toSVGStyledElement(element)->instanceUpdatesBlocked())
     188    if (element->instanceUpdatesBlocked())
    189189        return;
    190190
     
    260260
    261261SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker(SVGElement* targetElement)
    262     : m_targetElement(targetElement->isSVGStyledElement() ? toSVGStyledElement(targetElement) : 0)
     262    : m_targetElement(targetElement)
    263263{
    264264    if (m_targetElement)
  • trunk/Source/WebCore/svg/SVGElementInstance.h

    r154165 r154462  
    3636class SVGElement;
    3737class SVGElementInstanceList;
    38 class SVGStyledElement;
     38class SVGElement;
    3939class SVGUseElement;
    4040
     
    9292
    9393    private:
    94         SVGStyledElement* m_targetElement;
     94        SVGElement* m_targetElement;
    9595    };
    9696   
  • trunk/Source/WebCore/svg/SVGFEBlendElement.idl

    r152350 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFEBlendElement : SVGStyledElement {
     29] interface SVGFEBlendElement : SVGElement {
    3030    // Blend Mode Types
    3131    const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;
  • trunk/Source/WebCore/svg/SVGFEColorMatrixElement.idl

    r152350 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFEColorMatrixElement : SVGStyledElement {
     29] interface SVGFEColorMatrixElement : SVGElement {
    3030    // Color Matrix Types
    3131    const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;
  • trunk/Source/WebCore/svg/SVGFEComponentTransferElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEComponentTransferElement : SVGStyledElement {
     28] interface SVGFEComponentTransferElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030};
  • trunk/Source/WebCore/svg/SVGFECompositeElement.idl

    r152844 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFECompositeElement : SVGStyledElement {
     29] interface SVGFECompositeElement : SVGElement {
    3030    // Composite Operators
    3131    const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;
  • trunk/Source/WebCore/svg/SVGFEConvolveMatrixElement.idl

    r152350 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFEConvolveMatrixElement : SVGStyledElement {
     29] interface SVGFEConvolveMatrixElement : SVGElement {
    3030    // Edge Mode Values
    3131    const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;
  • trunk/Source/WebCore/svg/SVGFEDiffuseLightingElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEDiffuseLightingElement : SVGStyledElement {
     28] interface SVGFEDiffuseLightingElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030    readonly attribute SVGAnimatedNumber surfaceScale;
  • trunk/Source/WebCore/svg/SVGFEDisplacementMapElement.idl

    r152350 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFEDisplacementMapElement : SVGStyledElement {
     29] interface SVGFEDisplacementMapElement : SVGElement {
    3030    // Channel Selectors
    3131    const unsigned short SVG_CHANNEL_UNKNOWN = 0;
  • trunk/Source/WebCore/svg/SVGFEDropShadowElement.idl

    r152350 r154462  
    2020[
    2121    Conditional=SVG&FILTERS
    22 ] interface SVGFEDropShadowElement : SVGStyledElement {
     22] interface SVGFEDropShadowElement : SVGElement {
    2323    readonly attribute SVGAnimatedString in1;
    2424    readonly attribute SVGAnimatedNumber dx;
  • trunk/Source/WebCore/svg/SVGFEFloodElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEFloodElement : SVGStyledElement {
     28] interface SVGFEFloodElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGFEGaussianBlurElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEGaussianBlurElement : SVGStyledElement {
     28] interface SVGFEGaussianBlurElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030    readonly attribute SVGAnimatedNumber stdDeviationX;
  • trunk/Source/WebCore/svg/SVGFEImageElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEImageElement : SVGStyledElement {
     28] interface SVGFEImageElement : SVGElement {
    2929    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
    3030};
  • trunk/Source/WebCore/svg/SVGFELightElement.h

    r135069 r154462  
    3939    SVGFELightElement(const QualifiedName&, Document*);
    4040
     41    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     42
    4143private:
    4244    bool isSupportedAttribute(const QualifiedName&);
  • trunk/Source/WebCore/svg/SVGFEMergeElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEMergeElement : SVGStyledElement {
     28] interface SVGFEMergeElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGFEMergeNodeElement.h

    r149960 r154462  
    3939    virtual void svgAttributeChanged(const QualifiedName&);
    4040
     41    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     42
    4143    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGFEMergeNodeElement)
    4244        DECLARE_ANIMATED_STRING(In1, in1)
  • trunk/Source/WebCore/svg/SVGFEMorphologyElement.idl

    r152844 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFEMorphologyElement : SVGStyledElement {
     29] interface SVGFEMorphologyElement : SVGElement {
    3030    // Morphology Operators
    3131    const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN  = 0;
  • trunk/Source/WebCore/svg/SVGFEOffsetElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFEOffsetElement : SVGStyledElement {
     28] interface SVGFEOffsetElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030    readonly attribute SVGAnimatedNumber dx;
  • trunk/Source/WebCore/svg/SVGFESpecularLightingElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFESpecularLightingElement : SVGStyledElement {
     28] interface SVGFESpecularLightingElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030    readonly attribute SVGAnimatedNumber surfaceScale;
  • trunk/Source/WebCore/svg/SVGFETileElement.idl

    r152350 r154462  
    2626[
    2727    Conditional=SVG&FILTERS
    28 ] interface SVGFETileElement : SVGStyledElement {
     28] interface SVGFETileElement : SVGElement {
    2929    readonly attribute SVGAnimatedString in1;
    3030};
  • trunk/Source/WebCore/svg/SVGFETurbulenceElement.idl

    r152350 r154462  
    2727    Conditional=SVG&FILTERS,
    2828    DoNotCheckConstants
    29 ] interface SVGFETurbulenceElement : SVGStyledElement {
     29] interface SVGFETurbulenceElement : SVGElement {
    3030    // Turbulence Types
    3131    const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;
  • trunk/Source/WebCore/svg/SVGFilterElement.cpp

    r154371 r154462  
    6464
    6565inline SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document* document)
    66     : SVGStyledElement(tagName, document)
     66    : SVGElement(tagName, document)
    6767    , m_filterUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    6868    , m_primitiveUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     
    127127
    128128    if (!isSupportedAttribute(name))
    129         SVGStyledElement::parseAttribute(name, value);
     129        SVGElement::parseAttribute(name, value);
    130130    else if (name == SVGNames::filterUnitsAttr) {
    131131        SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
     
    162162{
    163163    if (!isSupportedAttribute(attrName)) {
    164         SVGStyledElement::svgAttributeChanged(attrName);
     164        SVGElement::svgAttributeChanged(attrName);
    165165        return;
    166166    }
     
    180180void SVGFilterElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    181181{
    182     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     182    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    183183
    184184    if (changedByParser)
  • trunk/Source/WebCore/svg/SVGFilterElement.h

    r154371 r154462  
    2929#include "SVGAnimatedInteger.h"
    3030#include "SVGAnimatedLength.h"
     31#include "SVGElement.h"
    3132#include "SVGExternalResourcesRequired.h"
    3233#include "SVGNames.h"
    33 #include "SVGStyledElement.h"
    3434#include "SVGURIReference.h"
    3535#include "SVGUnitTypes.h"
     
    3737namespace WebCore {
    3838
    39 class SVGFilterElement FINAL : public SVGStyledElement,
     39class SVGFilterElement FINAL : public SVGElement,
    4040                               public SVGURIReference,
    4141                               public SVGExternalResourcesRequired {
  • trunk/Source/WebCore/svg/SVGFilterElement.idl

    r152156 r154462  
    2727[
    2828    Conditional=SVG&FILTERS
    29 ] interface SVGFilterElement : SVGStyledElement {
     29] interface SVGFilterElement : SVGElement {
    3030    readonly attribute SVGAnimatedEnumeration filterUnits;
    3131    readonly attribute SVGAnimatedEnumeration primitiveUnits;
  • trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp

    r154358 r154462  
    2828#include "FilterEffect.h"
    2929#include "RenderSVGResourceFilterPrimitive.h"
     30#include "SVGElement.h"
    3031#include "SVGElementInstance.h"
    3132#include "SVGFilterBuilder.h"
    3233#include "SVGLength.h"
    3334#include "SVGNames.h"
    34 #include "SVGStyledElement.h"
    3535#include "SVGUnitTypes.h"
    3636
     
    5050    REGISTER_LOCAL_ANIMATED_PROPERTY(height)
    5151    REGISTER_LOCAL_ANIMATED_PROPERTY(result)
    52     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     52    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    5353END_REGISTER_ANIMATED_PROPERTIES
    5454
    5555SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(const QualifiedName& tagName, Document* document)
    56     : SVGStyledElement(tagName, document)
     56    : SVGElement(tagName, document)
    5757    , m_x(LengthModeWidth, "0%")
    5858    , m_y(LengthModeHeight, "0%")
     
    8383
    8484    if (!isSupportedAttribute(name))
    85         SVGStyledElement::parseAttribute(name, value);
     85        SVGElement::parseAttribute(name, value);
    8686    else if (name == SVGNames::xAttr)
    8787        setXBaseValue(SVGLength::construct(LengthModeWidth, value, parseError));
     
    110110{
    111111    if (!isSupportedAttribute(attrName)) {
    112         SVGStyledElement::svgAttributeChanged(attrName);
     112        SVGElement::svgAttributeChanged(attrName);
    113113        return;
    114114    }
     
    120120void SVGFilterPrimitiveStandardAttributes::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    121121{
    122     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     122    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    123123
    124124    if (!changedByParser)
     
    150150{
    151151    if (parentNode() && (parentNode()->hasTagName(SVGNames::filterTag)))
    152         return SVGStyledElement::rendererIsNeeded(style);
     152        return SVGElement::rendererIsNeeded(style);
    153153
    154154    return false;
  • trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h

    r154371 r154462  
    2727#include "SVGAnimatedLength.h"
    2828#include "SVGAnimatedString.h"
    29 #include "SVGStyledElement.h"
     29#include "SVGElement.h"
    3030
    3131#include <wtf/PassRefPtr.h>
     
    3838class SVGFilterBuilder;
    3939
    40 class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement {
     40class SVGFilterPrimitiveStandardAttributes : public SVGElement {
    4141public:
    4242    void setStandardAttributes(FilterEffect*) const;
  • trunk/Source/WebCore/svg/SVGFontElement.cpp

    r117259 r154462  
    4242BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFontElement)
    4343    REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
    44     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     44    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    4545END_REGISTER_ANIMATED_PROPERTIES
    4646
    4747inline SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document* document)
    48     : SVGStyledElement(tagName, document)
     48    : SVGElement(tagName, document)
    4949    , m_missingGlyph(0)
    5050    , m_isGlyphCacheValid(false)
  • trunk/Source/WebCore/svg/SVGFontElement.h

    r154358 r154462  
    2525#if ENABLE(SVG_FONTS)
    2626#include "SVGAnimatedBoolean.h"
     27#include "SVGElement.h"
    2728#include "SVGExternalResourcesRequired.h"
    2829#include "SVGGlyphMap.h"
    2930#include "SVGNames.h"
    3031#include "SVGParserUtilities.h"
    31 #include "SVGStyledElement.h"
    3232
    3333namespace WebCore {
     
    5353class SVGMissingGlyphElement;   
    5454
    55 class SVGFontElement FINAL : public SVGStyledElement
     55class SVGFontElement FINAL : public SVGElement
    5656                           , public SVGExternalResourcesRequired {
    5757public:
  • trunk/Source/WebCore/svg/SVGFontFaceElement.cpp

    r153880 r154462  
    6161}
    6262
    63 static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
    64 {
    65     if (!attrName.namespaceURI().isNull())
    66         return CSSPropertyInvalid;
    67    
    68     static HashMap<AtomicStringImpl*, CSSPropertyID>* propertyNameToIdMap = 0;
    69     if (!propertyNameToIdMap) {
    70         propertyNameToIdMap = new HashMap<AtomicStringImpl*, CSSPropertyID>;
    71         // This is a list of all @font-face CSS properties which are exposed as SVG XML attributes
    72         // Those commented out are not yet supported by WebCore's style system
    73         // mapAttributeToCSSProperty(propertyNameToIdMap, accent_heightAttr);
    74         // mapAttributeToCSSProperty(propertyNameToIdMap, alphabeticAttr);
    75         // mapAttributeToCSSProperty(propertyNameToIdMap, ascentAttr);
    76         // mapAttributeToCSSProperty(propertyNameToIdMap, bboxAttr);
    77         // mapAttributeToCSSProperty(propertyNameToIdMap, cap_heightAttr);
    78         // mapAttributeToCSSProperty(propertyNameToIdMap, descentAttr);
    79         mapAttributeToCSSProperty(propertyNameToIdMap, font_familyAttr);
    80         mapAttributeToCSSProperty(propertyNameToIdMap, font_sizeAttr);
    81         mapAttributeToCSSProperty(propertyNameToIdMap, font_stretchAttr);
    82         mapAttributeToCSSProperty(propertyNameToIdMap, font_styleAttr);
    83         mapAttributeToCSSProperty(propertyNameToIdMap, font_variantAttr);
    84         mapAttributeToCSSProperty(propertyNameToIdMap, font_weightAttr);
    85         // mapAttributeToCSSProperty(propertyNameToIdMap, hangingAttr);
    86         // mapAttributeToCSSProperty(propertyNameToIdMap, ideographicAttr);
    87         // mapAttributeToCSSProperty(propertyNameToIdMap, mathematicalAttr);
    88         // mapAttributeToCSSProperty(propertyNameToIdMap, overline_positionAttr);
    89         // mapAttributeToCSSProperty(propertyNameToIdMap, overline_thicknessAttr);
    90         // mapAttributeToCSSProperty(propertyNameToIdMap, panose_1Attr);
    91         // mapAttributeToCSSProperty(propertyNameToIdMap, slopeAttr);
    92         // mapAttributeToCSSProperty(propertyNameToIdMap, stemhAttr);
    93         // mapAttributeToCSSProperty(propertyNameToIdMap, stemvAttr);
    94         // mapAttributeToCSSProperty(propertyNameToIdMap, strikethrough_positionAttr);
    95         // mapAttributeToCSSProperty(propertyNameToIdMap, strikethrough_thicknessAttr);
    96         // mapAttributeToCSSProperty(propertyNameToIdMap, underline_positionAttr);
    97         // mapAttributeToCSSProperty(propertyNameToIdMap, underline_thicknessAttr);
    98         // mapAttributeToCSSProperty(propertyNameToIdMap, unicode_rangeAttr);
    99         // mapAttributeToCSSProperty(propertyNameToIdMap, units_per_emAttr);
    100         // mapAttributeToCSSProperty(propertyNameToIdMap, v_alphabeticAttr);
    101         // mapAttributeToCSSProperty(propertyNameToIdMap, v_hangingAttr);
    102         // mapAttributeToCSSProperty(propertyNameToIdMap, v_ideographicAttr);
    103         // mapAttributeToCSSProperty(propertyNameToIdMap, v_mathematicalAttr);
    104         // mapAttributeToCSSProperty(propertyNameToIdMap, widthsAttr);
    105         // mapAttributeToCSSProperty(propertyNameToIdMap, x_heightAttr);
    106     }
    107    
    108     return propertyNameToIdMap->get(attrName.localName().impl());
    109 }
    110 
    11163void SVGFontFaceElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
    11264{   
  • trunk/Source/WebCore/svg/SVGFontFaceElement.h

    r153561 r154462  
    6262    virtual void removedFrom(ContainerNode*) OVERRIDE;
    6363
     64    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     65
    6466    RefPtr<StyleRuleFontFace> m_fontFaceRule;
    6567    SVGFontElement* m_fontElement;
  • trunk/Source/WebCore/svg/SVGFontFaceFormatElement.h

    r149960 r154462  
    3434
    3535    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     36    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    3637};
    3738
  • trunk/Source/WebCore/svg/SVGFontFaceNameElement.h

    r149960 r154462  
    3636private:
    3737    SVGFontFaceNameElement(const QualifiedName&, Document*);
     38
     39    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    3840};
    3941
  • trunk/Source/WebCore/svg/SVGFontFaceSrcElement.h

    r149960 r154462  
    3838   
    3939    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     40    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    4041};
    4142
  • trunk/Source/WebCore/svg/SVGFontFaceUriElement.h

    r149960 r154462  
    4444    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
    4545    virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
     46    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    4647
    4748    void loadFont();
  • trunk/Source/WebCore/svg/SVGGElement.cpp

    r154414 r154462  
    104104bool SVGGElement::rendererIsNeeded(const RenderStyle&)
    105105{
    106     // Unlike SVGStyledElement::rendererIsNeeded(), we still create renderers, even if
     106    // Unlike SVGElement::rendererIsNeeded(), we still create renderers, even if
    107107    // display is set to 'none' - which is special to SVG <g> container elements.
    108108    return parentOrShadowHostElement() && parentOrShadowHostElement()->isSVGElement();
  • trunk/Source/WebCore/svg/SVGGlyphElement.cpp

    r152524 r154462  
    3535
    3636inline SVGGlyphElement::SVGGlyphElement(const QualifiedName& tagName, Document* document)
    37     : SVGStyledElement(tagName, document)
     37    : SVGElement(tagName, document)
    3838{
    3939    ASSERT(hasTagName(SVGNames::glyphTag));
     
    5757        invalidateGlyphCache();
    5858    else
    59         SVGStyledElement::parseAttribute(name, value);
     59        SVGElement::parseAttribute(name, value);
    6060}
    6161
     
    6363{
    6464    invalidateGlyphCache();
    65     return SVGStyledElement::insertedInto(rootParent);
     65    return SVGElement::insertedInto(rootParent);
    6666}
    6767
     
    7070    if (rootParent->inDocument())
    7171        invalidateGlyphCache();
    72     SVGStyledElement::removedFrom(rootParent);
     72    SVGElement::removedFrom(rootParent);
    7373}
    7474
  • trunk/Source/WebCore/svg/SVGGlyphElement.h

    r154358 r154462  
    2424
    2525#if ENABLE(SVG_FONTS)
     26#include "SVGElement.h"
    2627#include "SVGGlyph.h"
    27 #include "SVGStyledElement.h"
    2828
    2929namespace WebCore {
     
    3131class SVGFontData;
    3232
    33 class SVGGlyphElement FINAL : public SVGStyledElement {
     33class SVGGlyphElement FINAL : public SVGElement {
    3434public:
    3535    static PassRefPtr<SVGGlyphElement> create(const QualifiedName&, Document*);
  • trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp

    r135069 r154462  
    3636BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGGlyphRefElement)
    3737    REGISTER_LOCAL_ANIMATED_PROPERTY(href)
    38     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     38    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    3939END_REGISTER_ANIMATED_PROPERTIES
    4040
    4141inline SVGGlyphRefElement::SVGGlyphRefElement(const QualifiedName& tagName, Document* document)
    42     : SVGStyledElement(tagName, document)
     42    : SVGElement(tagName, document)
    4343    , m_x(0)
    4444    , m_y(0)
     
    8282        if (SVGURIReference::parseAttribute(name, value))
    8383            return;
    84         SVGStyledElement::parseAttribute(name, value);
     84        SVGElement::parseAttribute(name, value);
    8585    }
    8686}
  • trunk/Source/WebCore/svg/SVGGlyphRefElement.h

    r154358 r154462  
    2222
    2323#if ENABLE(SVG) && ENABLE(SVG_FONTS)
    24 #include "SVGStyledElement.h"
     24#include "SVGElement.h"
    2525#include "SVGURIReference.h"
    2626
    2727namespace WebCore {
    2828
    29 class SVGGlyphRefElement FINAL : public SVGStyledElement,
     29class SVGGlyphRefElement FINAL : public SVGElement,
    3030                                 public SVGURIReference {
    3131public:
  • trunk/Source/WebCore/svg/SVGGlyphRefElement.idl

    r152120 r154462  
    2020[
    2121    Conditional=SVG&SVG_FONTS
    22 ] interface SVGGlyphRefElement : SVGStyledElement {
     22] interface SVGGlyphRefElement : SVGElement {
    2323    // FIXME: Use [Reflect] after https://bugs.webkit.org/show_bug.cgi?id=64843 is fixed.
    2424    [SetterRaisesException] attribute DOMString glyphRef;
  • trunk/Source/WebCore/svg/SVGGradientElement.cpp

    r152553 r154462  
    5353    REGISTER_LOCAL_ANIMATED_PROPERTY(href)
    5454    REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
    55     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     55    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    5656END_REGISTER_ANIMATED_PROPERTIES
    5757 
    5858SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document* document)
    59     : SVGStyledElement(tagName, document)
     59    : SVGElement(tagName, document)
    6060    , m_spreadMethod(SVGSpreadMethodPad)
    6161    , m_gradientUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     
    8080{
    8181    if (!isSupportedAttribute(name)) {
    82         SVGStyledElement::parseAttribute(name, value);
     82        SVGElement::parseAttribute(name, value);
    8383        return;
    8484    }
     
    117117{
    118118    if (!isSupportedAttribute(attrName)) {
    119         SVGStyledElement::svgAttributeChanged(attrName);
     119        SVGElement::svgAttributeChanged(attrName);
    120120        return;
    121121    }
     
    129129void SVGGradientElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    130130{
    131     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     131    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    132132
    133133    if (changedByParser)
  • trunk/Source/WebCore/svg/SVGGradientElement.h

    r152955 r154462  
    2727#include "SVGAnimatedEnumeration.h"
    2828#include "SVGAnimatedTransformList.h"
     29#include "SVGElement.h"
    2930#include "SVGExternalResourcesRequired.h"
    3031#include "SVGNames.h"
    31 #include "SVGStyledElement.h"
    3232#include "SVGURIReference.h"
    3333#include "SVGUnitTypes.h"
     
    7575};
    7676
    77 class SVGGradientElement : public SVGStyledElement,
     77class SVGGradientElement : public SVGElement,
    7878                           public SVGURIReference,
    7979                           public SVGExternalResourcesRequired {
  • trunk/Source/WebCore/svg/SVGGradientElement.idl

    r152120 r154462  
    2727    Conditional=SVG,
    2828    DoNotCheckConstants
    29 ] interface SVGGradientElement : SVGStyledElement {
     29] interface SVGGradientElement : SVGElement {
    3030    // Spread Method Types
    3131    const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
  • trunk/Source/WebCore/svg/SVGGraphicsElement.cpp

    r154414 r154462  
    3939BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGGraphicsElement)
    4040    REGISTER_LOCAL_ANIMATED_PROPERTY(transform)
    41     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     41    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    4242    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
    4343END_REGISTER_ANIMATED_PROPERTIES
    4444
    4545SVGGraphicsElement::SVGGraphicsElement(const QualifiedName& tagName, Document* document)
    46     : SVGStyledElement(tagName, document)
     46    : SVGElement(tagName, document)
    4747{
    4848    registerAnimatedPropertiesForSVGGraphicsElement();
     
    105105{
    106106    if (!isSupportedAttribute(name)) {
    107         SVGStyledElement::parseAttribute(name, value);
     107        SVGElement::parseAttribute(name, value);
    108108        return;
    109109    }
     
    126126{
    127127    if (!isSupportedAttribute(attrName)) {
    128         SVGStyledElement::svgAttributeChanged(attrName);
     128        SVGElement::svgAttributeChanged(attrName);
    129129        return;
    130130    }
  • trunk/Source/WebCore/svg/SVGGraphicsElement.h

    r154414 r154462  
    2424#if ENABLE(SVG)
    2525#include "SVGAnimatedTransformList.h"
    26 #include "SVGStyledElement.h"
     26#include "SVGElement.h"
    2727#include "SVGTests.h"
    2828#include "SVGTransformable.h"
     
    3333class Path;
    3434
    35 class SVGGraphicsElement : public SVGStyledElement, public SVGTransformable, public SVGTests {
     35class SVGGraphicsElement : public SVGElement, public SVGTransformable, public SVGTests {
    3636public:
    3737    virtual ~SVGGraphicsElement();
  • trunk/Source/WebCore/svg/SVGGraphicsElement.idl

    r152210 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGGraphicsElement : SVGStyledElement {
     28] interface SVGGraphicsElement : SVGElement {
    2929    readonly attribute SVGAnimatedTransformList transform;
    3030
  • trunk/Source/WebCore/svg/SVGLocatable.cpp

    r152524 r154462  
    9090            break;
    9191
    92         if (toSVGElement(currentElement)->isSVGStyledElement())
    93             ctm = toSVGStyledElement(currentElement)->localCoordinateSpaceTransform(mode).multiply(ctm);
     92        ctm = toSVGElement(currentElement)->localCoordinateSpaceTransform(mode).multiply(ctm);
    9493
    9594        // For getCTM() computation, stop at the nearest viewport element
  • trunk/Source/WebCore/svg/SVGMPathElement.h

    r153820 r154462  
    5757    virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE;
    5858
     59    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     60
    5961    void notifyParentOfPathChange(ContainerNode*);
    6062
  • trunk/Source/WebCore/svg/SVGMarkerElement.cpp

    r151800 r154462  
    7171    REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
    7272    REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
    73     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     73    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    7474END_REGISTER_ANIMATED_PROPERTIES
    7575
    7676inline SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document* document)
    77     : SVGStyledElement(tagName, document)
     77    : SVGElement(tagName, document)
    7878    , m_refX(LengthModeWidth)
    7979    , m_refY(LengthModeHeight)
     
    132132
    133133    if (!isSupportedAttribute(name))
    134         SVGStyledElement::parseAttribute(name, value);
     134        SVGElement::parseAttribute(name, value);
    135135    else if (name == SVGNames::markerUnitsAttr) {
    136136        SVGMarkerUnitsType propertyValue = SVGPropertyTraits<SVGMarkerUnitsType>::fromString(value);
     
    164164{
    165165    if (!isSupportedAttribute(attrName)) {
    166         SVGStyledElement::svgAttributeChanged(attrName);
     166        SVGElement::svgAttributeChanged(attrName);
    167167        return;
    168168    }
     
    182182void SVGMarkerElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    183183{
    184     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     184    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    185185
    186186    if (changedByParser)
  • trunk/Source/WebCore/svg/SVGMarkerElement.h

    r154358 r154462  
    2929#include "SVGAnimatedPreserveAspectRatio.h"
    3030#include "SVGAnimatedRect.h"
     31#include "SVGElement.h"
    3132#include "SVGExternalResourcesRequired.h"
    3233#include "SVGFitToViewBox.h"
    33 #include "SVGStyledElement.h"
    3434
    3535namespace WebCore {
     
    9595};
    9696
    97 class SVGMarkerElement FINAL : public SVGStyledElement,
     97class SVGMarkerElement FINAL : public SVGElement,
    9898                               public SVGExternalResourcesRequired,
    9999                               public SVGFitToViewBox {
  • trunk/Source/WebCore/svg/SVGMarkerElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGMarkerElement : SVGStyledElement {
     28] interface SVGMarkerElement : SVGElement {
    2929    // Marker Unit Types
    3030    const unsigned short SVG_MARKERUNITS_UNKNOWN        = 0;
  • trunk/Source/WebCore/svg/SVGMaskElement.cpp

    r151800 r154462  
    5454    REGISTER_LOCAL_ANIMATED_PROPERTY(height)
    5555    REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
    56     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     56    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    5757    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
    5858END_REGISTER_ANIMATED_PROPERTIES
    5959
    6060inline SVGMaskElement::SVGMaskElement(const QualifiedName& tagName, Document* document)
    61     : SVGStyledElement(tagName, document)
     61    : SVGElement(tagName, document)
    6262    , m_maskUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    6363    , m_maskContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     
    100100
    101101    if (!isSupportedAttribute(name))
    102         SVGStyledElement::parseAttribute(name, value);
     102        SVGElement::parseAttribute(name, value);
    103103    else if (name == SVGNames::maskUnitsAttr) {
    104104        SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
     
    131131{
    132132    if (!isSupportedAttribute(attrName)) {
    133         SVGStyledElement::svgAttributeChanged(attrName);
     133        SVGElement::svgAttributeChanged(attrName);
    134134        return;
    135135    }
     
    149149void SVGMaskElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    150150{
    151     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     151    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    152152
    153153    if (changedByParser)
  • trunk/Source/WebCore/svg/SVGMaskElement.h

    r153687 r154462  
    2525#include "SVGAnimatedEnumeration.h"
    2626#include "SVGAnimatedLength.h"
     27#include "SVGElement.h"
    2728#include "SVGExternalResourcesRequired.h"
    2829#include "SVGNames.h"
    29 #include "SVGStyledElement.h"
    3030#include "SVGTests.h"
    3131#include "SVGUnitTypes.h"
     
    3333namespace WebCore {
    3434
    35 class SVGMaskElement FINAL : public SVGStyledElement,
     35class SVGMaskElement FINAL : public SVGElement,
    3636                             public SVGTests,
    3737                             public SVGExternalResourcesRequired {
  • trunk/Source/WebCore/svg/SVGMaskElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGMaskElement : SVGStyledElement {
     28] interface SVGMaskElement : SVGElement {
    2929    readonly attribute SVGAnimatedEnumeration maskUnits;
    3030    readonly attribute SVGAnimatedEnumeration maskContentUnits;
  • trunk/Source/WebCore/svg/SVGMetadataElement.h

    r149960 r154462  
    3333private:
    3434    SVGMetadataElement(const QualifiedName&, Document*);
     35
     36    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    3537};
    3638
  • trunk/Source/WebCore/svg/SVGMissingGlyphElement.cpp

    r90680 r154462  
    2727
    2828inline SVGMissingGlyphElement::SVGMissingGlyphElement(const QualifiedName& tagName, Document* document)
    29     : SVGStyledElement(tagName, document)
     29    : SVGElement(tagName, document)
    3030{
    3131    ASSERT(hasTagName(SVGNames::missing_glyphTag));
  • trunk/Source/WebCore/svg/SVGMissingGlyphElement.h

    r154358 r154462  
    2222
    2323#if ENABLE(SVG_FONTS)
    24 #include "SVGStyledElement.h"
     24#include "SVGElement.h"
    2525
    2626namespace WebCore {
    2727
    28 class SVGMissingGlyphElement FINAL : public SVGStyledElement {
     28class SVGMissingGlyphElement FINAL : public SVGElement {
    2929public:
    3030    static PassRefPtr<SVGMissingGlyphElement> create(const QualifiedName&, Document*);
  • trunk/Source/WebCore/svg/SVGMissingGlyphElement.idl

    r140265 r154462  
    2626[
    2727    Conditional=SVG&SVG_FONTS
    28 ] interface SVGMissingGlyphElement : SVGStyledElement {
     28] interface SVGMissingGlyphElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGPatternElement.cpp

    r152553 r154462  
    7070    REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
    7171    REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
    72     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     72    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    7373    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
    7474END_REGISTER_ANIMATED_PROPERTIES
    7575
    7676inline SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document* document)
    77     : SVGStyledElement(tagName, document)
     77    : SVGElement(tagName, document)
    7878    , m_x(LengthModeWidth)
    7979    , m_y(LengthModeHeight)
     
    117117
    118118    if (!isSupportedAttribute(name))
    119         SVGStyledElement::parseAttribute(name, value);
     119        SVGElement::parseAttribute(name, value);
    120120    else if (name == SVGNames::patternUnitsAttr) {
    121121        SVGUnitTypes::SVGUnitType propertyValue = SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value);
     
    156156{
    157157    if (!isSupportedAttribute(attrName)) {
    158         SVGStyledElement::svgAttributeChanged(attrName);
     158        SVGElement::svgAttributeChanged(attrName);
    159159        return;
    160160    }
     
    174174void SVGPatternElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
    175175{
    176     SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
     176    SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    177177
    178178    if (changedByParser)
  • trunk/Source/WebCore/svg/SVGPatternElement.h

    r153297 r154462  
    2929#include "SVGAnimatedRect.h"
    3030#include "SVGAnimatedTransformList.h"
     31#include "SVGElement.h"
    3132#include "SVGExternalResourcesRequired.h"
    3233#include "SVGFitToViewBox.h"
    3334#include "SVGNames.h"
    34 #include "SVGStyledElement.h"
    3535#include "SVGTests.h"
    3636#include "SVGURIReference.h"
     
    4141struct PatternAttributes;
    4242 
    43 class SVGPatternElement FINAL : public SVGStyledElement,
     43class SVGPatternElement FINAL : public SVGElement,
    4444                                public SVGURIReference,
    4545                                public SVGTests,
  • trunk/Source/WebCore/svg/SVGPatternElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGPatternElement : SVGStyledElement {
     28] interface SVGPatternElement : SVGElement {
    2929    readonly attribute SVGAnimatedEnumeration   patternUnits;
    3030    readonly attribute SVGAnimatedEnumeration   patternContentUnits;
  • trunk/Source/WebCore/svg/SVGScriptElement.h

    r151951 r154462  
    7272
    7373    virtual PassRefPtr<Element> cloneElementWithoutAttributesAndChildren();
     74    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
    7475
    7576    // SVGExternalResourcesRequired
  • trunk/Source/WebCore/svg/SVGStopElement.cpp

    r154358 r154462  
    3939BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGStopElement)
    4040    REGISTER_LOCAL_ANIMATED_PROPERTY(offset)
    41     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     41    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    4242END_REGISTER_ANIMATED_PROPERTIES
    4343
    4444inline SVGStopElement::SVGStopElement(const QualifiedName& tagName, Document* document)
    45     : SVGStyledElement(tagName, document)
     45    : SVGElement(tagName, document)
    4646    , m_offset(0)
    4747{
     
    6666{
    6767    if (!isSupportedAttribute(name)) {
    68         SVGStyledElement::parseAttribute(name, value);
     68        SVGElement::parseAttribute(name, value);
    6969        return;
    7070    }
     
    8484{
    8585    if (!isSupportedAttribute(attrName)) {
    86         SVGStyledElement::svgAttributeChanged(attrName);
     86        SVGElement::svgAttributeChanged(attrName);
    8787        return;
    8888    }
  • trunk/Source/WebCore/svg/SVGStopElement.h

    r154358 r154462  
    2424#if ENABLE(SVG)
    2525#include "SVGAnimatedNumber.h"
    26 #include "SVGStyledElement.h"
     26#include "SVGElement.h"
    2727
    2828namespace WebCore {
    2929
    30 class SVGStopElement FINAL : public SVGStyledElement {
     30class SVGStopElement FINAL : public SVGElement {
    3131public:
    3232    static PassRefPtr<SVGStopElement> create(const QualifiedName&, Document*);
  • trunk/Source/WebCore/svg/SVGStopElement.idl

    r140265 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGStopElement : SVGStyledElement {
     28] interface SVGStopElement : SVGElement {
    2929    readonly attribute SVGAnimatedNumber offset;
    3030};
  • trunk/Source/WebCore/svg/SVGStyleElement.h

    r154271 r154462  
    5757    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
    5858
     59    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     60
    5961    virtual void finishParsingChildren();
    6062
  • trunk/Source/WebCore/svg/SVGSymbolElement.cpp

    r151800 r154462  
    4040    REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
    4141    REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
    42     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     42    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    4343END_REGISTER_ANIMATED_PROPERTIES
    4444
    4545inline SVGSymbolElement::SVGSymbolElement(const QualifiedName& tagName, Document* document)
    46     : SVGStyledElement(tagName, document)
     46    : SVGElement(tagName, document)
    4747{
    4848    ASSERT(hasTagName(SVGNames::symbolTag));
     
    6969{
    7070    if (!isSupportedAttribute(name)) {
    71         SVGStyledElement::parseAttribute(name, value);
     71        SVGElement::parseAttribute(name, value);
    7272        return;
    7373    }
     
    8686{
    8787    if (!isSupportedAttribute(attrName)) {
    88         SVGStyledElement::svgAttributeChanged(attrName);
     88        SVGElement::svgAttributeChanged(attrName);
    8989        return;
    9090    }
  • trunk/Source/WebCore/svg/SVGSymbolElement.h

    r152156 r154462  
    2626#include "SVGAnimatedPreserveAspectRatio.h"
    2727#include "SVGAnimatedRect.h"
     28#include "SVGElement.h"
    2829#include "SVGExternalResourcesRequired.h"
    2930#include "SVGFitToViewBox.h"
    30 #include "SVGStyledElement.h"
    3131
    3232namespace WebCore {
    3333
    34 class SVGSymbolElement FINAL : public SVGStyledElement,
     34class SVGSymbolElement FINAL : public SVGElement,
    3535                               public SVGExternalResourcesRequired,
    3636                               public SVGFitToViewBox {
  • trunk/Source/WebCore/svg/SVGSymbolElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGSymbolElement : SVGStyledElement {
     28] interface SVGSymbolElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGTRefElement.cpp

    r154371 r154462  
    278278Node::InsertionNotificationRequest SVGTRefElement::insertedInto(ContainerNode* rootParent)
    279279{
    280     SVGStyledElement::insertedInto(rootParent);
     280    SVGElement::insertedInto(rootParent);
    281281    if (rootParent->inDocument())
    282282        buildPendingResource();
     
    286286void SVGTRefElement::removedFrom(ContainerNode* rootParent)
    287287{
    288     SVGStyledElement::removedFrom(rootParent);
     288    SVGElement::removedFrom(rootParent);
    289289    if (rootParent->inDocument())
    290290        m_targetListener->detach();
  • trunk/Source/WebCore/svg/SVGTitleElement.cpp

    r118192 r154462  
    2929
    3030inline SVGTitleElement::SVGTitleElement(const QualifiedName& tagName, Document* document)
    31     : SVGStyledElement(tagName, document)
     31    : SVGElement(tagName, document)
    3232{
    3333    ASSERT(hasTagName(SVGNames::titleTag));
     
    4141Node::InsertionNotificationRequest SVGTitleElement::insertedInto(ContainerNode* rootParent)
    4242{
    43     SVGStyledElement::insertedInto(rootParent);
     43    SVGElement::insertedInto(rootParent);
    4444    if (!rootParent->inDocument())
    4545        return InsertionDone;
  • trunk/Source/WebCore/svg/SVGTitleElement.h

    r154358 r154462  
    2323#if ENABLE(SVG)
    2424
    25 #include "SVGStyledElement.h"
     25#include "SVGElement.h"
    2626
    2727namespace WebCore {
    2828
    29 class SVGTitleElement FINAL : public SVGStyledElement {
     29class SVGTitleElement FINAL : public SVGElement {
    3030public:
    3131    static PassRefPtr<SVGTitleElement> create(const QualifiedName&, Document*);
  • trunk/Source/WebCore/svg/SVGTitleElement.idl

    r152156 r154462  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGTitleElement : SVGStyledElement {
     28] interface SVGTitleElement : SVGElement {
    2929};
    3030
  • trunk/Source/WebCore/svg/SVGTransformable.cpp

    r110838 r154462  
    2727#include "AffineTransform.h"
    2828#include "FloatConversion.h"
     29#include "SVGElement.h"
    2930#include "SVGNames.h"
    3031#include "SVGParserUtilities.h"
    31 #include "SVGStyledElement.h"
    3232#include "SVGTransformList.h"
    3333
  • trunk/Source/WebCore/svg/SVGUseElement.cpp

    r154254 r154462  
    941941
    942942    SVGElement* element = m_targetElementInstance->correspondingElement();
    943     if (!element || !element->isSVGStyledElement())
     943    if (!element)
    944944        return false;
    945945
    946     return toSVGStyledElement(element)->hasRelativeLengths();
     946    return element->hasRelativeLengths();
    947947}
    948948
  • trunk/Source/WebCore/svg/SVGViewElement.cpp

    r151800 r154462  
    4141    REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
    4242    REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
    43     REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledElement)
     43    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGElement)
    4444END_REGISTER_ANIMATED_PROPERTIES
    4545
    4646inline SVGViewElement::SVGViewElement(const QualifiedName& tagName, Document* document)
    47     : SVGStyledElement(tagName, document)
     47    : SVGElement(tagName, document)
    4848    , m_zoomAndPan(SVGZoomAndPanMagnify)
    4949    , m_viewTarget(SVGNames::viewTargetAttr)
     
    7373{
    7474    if (!isSupportedAttribute(name)) {
    75         SVGStyledElement::parseAttribute(name, value);
     75        SVGElement::parseAttribute(name, value);
    7676        return;
    7777    }
  • trunk/Source/WebCore/svg/SVGViewElement.h

    r154358 r154462  
    2626#include "SVGAnimatedPreserveAspectRatio.h"
    2727#include "SVGAnimatedRect.h"
     28#include "SVGElement.h"
    2829#include "SVGExternalResourcesRequired.h"
    2930#include "SVGFitToViewBox.h"
    3031#include "SVGStringList.h"
    31 #include "SVGStyledElement.h"
    3232#include "SVGZoomAndPan.h"
    3333
    3434namespace WebCore {
    3535
    36 class SVGViewElement FINAL : public SVGStyledElement,
     36class SVGViewElement FINAL : public SVGElement,
    3737                             public SVGExternalResourcesRequired,
    3838                             public SVGFitToViewBox,
     
    4141    static PassRefPtr<SVGViewElement> create(const QualifiedName&, Document*);
    4242
    43     using SVGStyledElement::ref;
    44     using SVGStyledElement::deref;
     43    using SVGElement::ref;
     44    using SVGElement::deref;
    4545
    4646    SVGStringList& viewTarget() { return m_viewTarget; }
  • trunk/Source/WebCore/svg/animation/SVGSMILElement.h

    r153559 r154462  
    117117    void setInactive() { m_activeState = Inactive; }
    118118
     119    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     120
    119121    // Sub-classes may need to take action when the target is changed.
    120122    virtual void setTargetElement(SVGElement*);
  • trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp

    r145433 r154462  
    3131#include "RenderObject.h"
    3232#include "RenderTreeAsText.h"
     33#include "SVGElement.h"
    3334#include "SVGFilter.h"
    3435#include "SVGPreserveAspectRatio.h"
    3536#include "SVGRenderingContext.h"
    36 #include "SVGStyledElement.h"
    3737#include "SVGURIReference.h"
    3838#include "TextStream.h"
     
    127127
    128128        SVGElement* contextNode = toSVGElement(renderer->node());
    129         if (contextNode->isSVGStyledElement() && toSVGStyledElement(contextNode)->hasRelativeLengths()) {
     129        if (contextNode->hasRelativeLengths()) {
    130130            SVGLengthContext lengthContext(contextNode);
    131131            float width = 0;
Note: See TracChangeset for help on using the changeset viewer.