Commit 7dd31bf9 authored by ch.dumez@sisa.samsung.com's avatar ch.dumez@sisa.samsung.com
Browse files

[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.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 7fb93c58
2013-08-22 Christophe Dumez <ch.dumez@sisa.samsung.com>
[SVG2] Merge SVGStyledElement and SVGElement
https://bugs.webkit.org/show_bug.cgi?id=107386
Reviewed by Andreas Kling.
Add layout test to validate the SVG2 inheritance model.
* svg/dom/svg2-inheritance-expected.txt: Added.
* svg/dom/svg2-inheritance.html: Added.
2013-08-22 Gavin Barraclough <barraclough@apple.com>
 
Error.stack should not be enumerable
Validates the SVG2 inheritance model.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS SVGAElement inherits SVGGraphicsElement
PASS SVGAltGlyphDefElement inherits SVGElement
PASS SVGAltGlyphElement inherits SVGTextPositioningElement
PASS SVGAltGlyphItemElement inherits SVGElement
PASS SVGAngle inherits Object
PASS SVGAnimateColorElement inherits SVGAnimationElement
PASS SVGAnimateElement inherits SVGAnimationElement
PASS SVGAnimateMotionElement inherits SVGAnimationElement
PASS SVGAnimateTransformElement inherits SVGAnimationElement
PASS SVGAnimatedAngle inherits Object
PASS SVGAnimatedBoolean inherits Object
PASS SVGAnimatedEnumeration inherits Object
PASS SVGAnimatedInteger inherits Object
PASS SVGAnimatedLength inherits Object
PASS SVGAnimatedLengthList inherits Object
PASS SVGAnimatedNumber inherits Object
PASS SVGAnimatedNumberList inherits Object
FAIL SVGAnimatedPathData is not defined
PASS SVGAnimatedPreserveAspectRatio inherits Object
PASS SVGAnimatedRect inherits Object
PASS SVGAnimatedString inherits Object
PASS SVGAnimatedTransformList inherits Object
PASS SVGAnimationElement inherits SVGElement
FAIL SVGCSSRule is not defined
FAIL SVGCircleElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
FAIL SVGClipPathElement should inherit SVGDefinitionElement but got SVGGraphicsElement instead
FAIL SVGColorProfileElement is not defined
FAIL SVGColorProfileRule is not defined
PASS SVGCursorElement inherits SVGElement
PASS SVGDefsElement inherits SVGGraphicsElement
PASS SVGDescElement inherits SVGElement
PASS SVGElement inherits Element
FAIL SVGElementInstance should inherit EventTarget but got EventTarget instead
PASS SVGElementInstanceList inherits Object
FAIL SVGEllipseElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGFontElement inherits SVGElement
PASS SVGFontFaceElement inherits SVGElement
PASS SVGFontFaceFormatElement inherits SVGElement
PASS SVGFontFaceNameElement inherits SVGElement
PASS SVGFontFaceSrcElement inherits SVGElement
PASS SVGFontFaceUriElement inherits SVGElement
PASS SVGForeignObjectElement inherits SVGGraphicsElement
PASS SVGGElement inherits SVGGraphicsElement
FAIL SVGGeometryElement is not defined
PASS SVGGlyphElement inherits SVGElement
PASS SVGGlyphRefElement inherits SVGElement
PASS SVGGradientElement inherits SVGElement
PASS SVGGraphicsElement inherits SVGElement
PASS SVGHKernElement inherits SVGElement
PASS SVGImageElement inherits SVGGraphicsElement
PASS SVGLength inherits Object
PASS SVGLengthList inherits Object
FAIL SVGLineElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGLinearGradientElement inherits SVGGradientElement
PASS SVGMPathElement inherits SVGElement
PASS SVGMarkerElement inherits SVGElement
FAIL SVGMarkerInstance is not defined
FAIL SVGMarkerList is not defined
FAIL SVGMaskElement should inherit SVGDefinitionElement but got SVGElement instead
PASS SVGMatrix inherits Object
FAIL SVGMeshGradientElement is not defined
FAIL SVGMeshPatchElement is not defined
FAIL SVGMeshRowElement is not defined
PASS SVGMetadataElement inherits SVGElement
PASS SVGMissingGlyphElement inherits SVGElement
PASS SVGNumber inherits Object
PASS SVGNumberList inherits Object
FAIL SVGPathElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGPathSeg inherits Object
PASS SVGPathSegArcAbs inherits SVGPathSeg
PASS SVGPathSegArcRel inherits SVGPathSeg
PASS SVGPathSegClosePath inherits SVGPathSeg
PASS SVGPathSegCurvetoCubicAbs inherits SVGPathSeg
PASS SVGPathSegCurvetoCubicRel inherits SVGPathSeg
PASS SVGPathSegCurvetoCubicSmoothAbs inherits SVGPathSeg
PASS SVGPathSegCurvetoCubicSmoothRel inherits SVGPathSeg
PASS SVGPathSegCurvetoQuadraticAbs inherits SVGPathSeg
PASS SVGPathSegCurvetoQuadraticRel inherits SVGPathSeg
PASS SVGPathSegCurvetoQuadraticSmoothAbs inherits SVGPathSeg
PASS SVGPathSegCurvetoQuadraticSmoothRel inherits SVGPathSeg
PASS SVGPathSegLinetoAbs inherits SVGPathSeg
PASS SVGPathSegLinetoHorizontalAbs inherits SVGPathSeg
PASS SVGPathSegLinetoHorizontalRel inherits SVGPathSeg
PASS SVGPathSegLinetoRel inherits SVGPathSeg
PASS SVGPathSegLinetoVerticalAbs inherits SVGPathSeg
PASS SVGPathSegLinetoVerticalRel inherits SVGPathSeg
PASS SVGPathSegList inherits Object
PASS SVGPathSegMovetoAbs inherits SVGPathSeg
PASS SVGPathSegMovetoRel inherits SVGPathSeg
PASS SVGPatternElement inherits SVGElement
PASS SVGPoint inherits Object
PASS SVGPointList inherits Object
FAIL SVGPolygonElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
FAIL SVGPolylineElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGPreserveAspectRatio inherits Object
PASS SVGRadialGradientElement inherits SVGGradientElement
PASS SVGRect inherits Object
FAIL SVGRectElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGSVGElement inherits SVGGraphicsElement
PASS SVGScriptElement inherits SVGElement
PASS SVGSetElement inherits SVGAnimationElement
PASS SVGStopElement inherits SVGElement
PASS SVGStringList inherits Object
PASS SVGStyleElement inherits SVGElement
PASS SVGSwitchElement inherits SVGGraphicsElement
PASS SVGSymbolElement inherits SVGElement
PASS SVGTRefElement inherits SVGTextPositioningElement
PASS SVGTSpanElement inherits SVGTextPositioningElement
PASS SVGTextContentElement inherits SVGGraphicsElement
PASS SVGTextElement inherits SVGTextPositioningElement
PASS SVGTextPathElement inherits SVGTextContentElement
PASS SVGTextPositioningElement inherits SVGTextContentElement
PASS SVGTitleElement inherits SVGElement
PASS SVGTransform inherits Object
PASS SVGTransformList inherits Object
PASS SVGUseElement inherits SVGGraphicsElement
PASS SVGVKernElement inherits SVGElement
PASS SVGViewElement inherits SVGElement
PASS SVGViewSpec inherits Object
PASS SVGZoomEvent inherits UIEvent
FAIL TimeEvent is not defined
PASS successfullyParsed is true
TEST COMPLETE
<!DOCTYPE html>
<html>
<head>
<link rel="help" href="http://www.w3.org/TR/2013/WD-SVG2-20130618/" />
<script src="../../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Validates the SVG2 inheritance model.");
function interfaceName(prototype)
{
var parts = prototype.toString().split(" ");
var lastPart = parts[parts.length - 1];
return lastPart.substring(0, lastPart.length - 10);
}
function checkParent(type, expectedParent)
{
// Using shouldBe() would lead to not very readable output here.
if (!window[type]) {
testFailed(type + " is not defined");
return;
}
var parentPrototype = window[type].prototype.__proto__;
var expectedPrototype = window[expectedParent] ? window[expectedParent].prototype : null;
if (expectedPrototype && parentPrototype === expectedPrototype)
testPassed(type + " inherits " + expectedParent);
else
testFailed(type + " should inherit " + expectedParent + " but got " + interfaceName(parentPrototype) + " instead");
}
checkParent("SVGAElement", "SVGGraphicsElement");
checkParent("SVGAltGlyphDefElement", "SVGElement");
checkParent("SVGAltGlyphElement", "SVGTextPositioningElement");
checkParent("SVGAltGlyphItemElement", "SVGElement");
checkParent("SVGAngle", "Object");
checkParent("SVGAnimateColorElement", "SVGAnimationElement");
checkParent("SVGAnimateElement", "SVGAnimationElement");
checkParent("SVGAnimateMotionElement", "SVGAnimationElement");
checkParent("SVGAnimateTransformElement", "SVGAnimationElement");
checkParent("SVGAnimatedAngle", "Object");
checkParent("SVGAnimatedBoolean", "Object");
checkParent("SVGAnimatedEnumeration", "Object");
checkParent("SVGAnimatedInteger", "Object");
checkParent("SVGAnimatedLength", "Object");
checkParent("SVGAnimatedLengthList", "Object");
checkParent("SVGAnimatedNumber", "Object");
checkParent("SVGAnimatedNumberList", "Object");
checkParent("SVGAnimatedPathData", "Object");
checkParent("SVGAnimatedPreserveAspectRatio", "Object");
checkParent("SVGAnimatedRect", "Object");
checkParent("SVGAnimatedString", "Object");
checkParent("SVGAnimatedTransformList", "Object");
checkParent("SVGAnimationElement", "SVGElement");
checkParent("SVGCSSRule", "CSSRule");
checkParent("SVGCircleElement", "SVGGeometryElement");
checkParent("SVGClipPathElement", "SVGDefinitionElement");
checkParent("SVGColorProfileElement", "SVGElement");
checkParent("SVGColorProfileRule", "SVGCSSRule");
checkParent("SVGCursorElement", "SVGElement");
checkParent("SVGDefsElement", "SVGGraphicsElement");
checkParent("SVGDescElement", "SVGElement");
checkParent("SVGElement", "Element");
checkParent("SVGElementInstance", "EventTarget");
checkParent("SVGElementInstanceList", "Object");
checkParent("SVGEllipseElement", "SVGGeometryElement");
checkParent("SVGFontElement", "SVGElement");
checkParent("SVGFontFaceElement", "SVGElement");
checkParent("SVGFontFaceFormatElement", "SVGElement");
checkParent("SVGFontFaceNameElement", "SVGElement");
checkParent("SVGFontFaceSrcElement", "SVGElement");
checkParent("SVGFontFaceUriElement", "SVGElement");
checkParent("SVGForeignObjectElement", "SVGGraphicsElement");
checkParent("SVGGElement", "SVGGraphicsElement");
checkParent("SVGGeometryElement", "SVGGraphicsElement");
checkParent("SVGGlyphElement", "SVGElement");
checkParent("SVGGlyphRefElement", "SVGElement");
checkParent("SVGGradientElement", "SVGElement");
checkParent("SVGGraphicsElement", "SVGElement");
checkParent("SVGHKernElement", "SVGElement");
checkParent("SVGImageElement", "SVGGraphicsElement");
checkParent("SVGLength", "Object");
checkParent("SVGLengthList", "Object");
checkParent("SVGLineElement", "SVGGeometryElement");
checkParent("SVGLinearGradientElement", "SVGGradientElement");
checkParent("SVGMPathElement", "SVGElement");
checkParent("SVGMarkerElement", "SVGElement");
checkParent("SVGMarkerInstance", "Object");
checkParent("SVGMarkerList", "Object");
checkParent("SVGMaskElement", "SVGDefinitionElement");
checkParent("SVGMatrix", "Object");
checkParent("SVGMeshGradientElement", "SVGGradientElement");
checkParent("SVGMeshPatchElement", "SVGElement");
checkParent("SVGMeshRowElement", "SVGElement");
checkParent("SVGMetadataElement", "SVGElement");
checkParent("SVGMissingGlyphElement", "SVGElement");
checkParent("SVGNumber", "Object");
checkParent("SVGNumberList", "Object");
checkParent("SVGPathElement", "SVGGeometryElement");
checkParent("SVGPathSeg", "Object");
checkParent("SVGPathSegArcAbs", "SVGPathSeg");
checkParent("SVGPathSegArcRel", "SVGPathSeg");
checkParent("SVGPathSegClosePath", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicSmoothAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicSmoothRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticSmoothAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticSmoothRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoHorizontalAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoHorizontalRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoVerticalAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoVerticalRel", "SVGPathSeg");
checkParent("SVGPathSegList", "Object");
checkParent("SVGPathSegMovetoAbs", "SVGPathSeg");
checkParent("SVGPathSegMovetoRel", "SVGPathSeg");
checkParent("SVGPatternElement", "SVGElement");
checkParent("SVGPoint", "Object");
checkParent("SVGPointList", "Object");
checkParent("SVGPolygonElement", "SVGGeometryElement");
checkParent("SVGPolylineElement", "SVGGeometryElement");
checkParent("SVGPreserveAspectRatio", "Object");
checkParent("SVGRadialGradientElement", "SVGGradientElement");
checkParent("SVGRect", "Object");
checkParent("SVGRectElement", "SVGGeometryElement");
checkParent("SVGSVGElement", "SVGGraphicsElement");
checkParent("SVGScriptElement", "SVGElement");
checkParent("SVGSetElement", "SVGAnimationElement");
checkParent("SVGStopElement", "SVGElement");
checkParent("SVGStringList", "Object");
checkParent("SVGStyleElement", "SVGElement");
checkParent("SVGSwitchElement", "SVGGraphicsElement");
checkParent("SVGSymbolElement", "SVGElement");
checkParent("SVGTRefElement", "SVGTextPositioningElement");
checkParent("SVGTSpanElement", "SVGTextPositioningElement");
checkParent("SVGTextContentElement", "SVGGraphicsElement");
checkParent("SVGTextElement", "SVGTextPositioningElement");
checkParent("SVGTextPathElement", "SVGTextContentElement");
checkParent("SVGTextPositioningElement", "SVGTextContentElement");
checkParent("SVGTitleElement", "SVGElement");
checkParent("SVGTransform", "Object");
checkParent("SVGTransformList", "Object");
checkParent("SVGUseElement", "SVGGraphicsElement");
checkParent("SVGVKernElement", "SVGElement");
checkParent("SVGViewElement", "SVGElement");
checkParent("SVGViewSpec", "Object");
checkParent("SVGZoomEvent", "UIEvent");
checkParent("TimeEvent", "Event");
</script>
<script src="../../fast/js/resources/js-test-post.js"></script>
</body>
</html>
......@@ -731,7 +731,6 @@ set(WebCore_SVG_IDL_FILES
svg/SVGStopElement.idl
svg/SVGStringList.idl
svg/SVGStyleElement.idl
svg/SVGStyledElement.idl
svg/SVGSwitchElement.idl
svg/SVGSymbolElement.idl
svg/SVGTRefElement.idl
......@@ -2455,7 +2454,6 @@ set(WebCore_SOURCES
svg/SVGStopElement.cpp
svg/SVGStringList.cpp
svg/SVGStyleElement.cpp
svg/SVGStyledElement.cpp
svg/SVGSwitchElement.cpp
svg/SVGSymbolElement.cpp
svg/SVGTRefElement.cpp
......
2013-08-22 Christophe Dumez <ch.dumez@sisa.samsung.com>
[SVG2] Merge SVGStyledElement and SVGElement
https://bugs.webkit.org/show_bug.cgi?id=107386
Reviewed by Andreas Kling.
Merge SVGStyledElement into SVGElement to simplify the SVG inheritance
model and match the SVG2 specification:
https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGElement
Test: svg/dom/svg2-inheritance.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
* css/SVGCSSStyleSelector.cpp:
* rendering/style/SVGRenderStyle.cpp:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::RenderSVGContainer):
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
(WebCore::getElementCTM):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceMarker.cpp:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::RenderSVGRoot):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGRenderTreeAsText.cpp:
* rendering/svg/SVGResources.cpp:
(WebCore::registerPendingResource):
* rendering/svg/SVGResourcesCache.cpp:
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::title):
* svg/SVGAllInOne.cpp:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::valueAsString):
(WebCore::SVGAnimatedType::setValueAsString):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
(WebCore::SVGAnimationElement::computeCSSPropertyValue):
(WebCore::SVGAnimationElement::adjustForInheritance):
(WebCore::inheritsFromProperty):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDescElement.cpp:
(WebCore::SVGDescElement::SVGDescElement):
* svg/SVGDescElement.h:
* svg/SVGDescElement.idl:
* svg/SVGElement.cpp:
(WebCore::mapAttributeToCSSProperty):
(WebCore::cssPropertyToTypeMap):
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::animatedPropertyTypeForAttribute):
(WebCore::collectInstancesForSVGElement):
(WebCore::SVGElement::isAnimatableAttribute):
(WebCore::SVGElement::title):
(WebCore::SVGElement::rendererIsNeeded):
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
(WebCore::SVGElement::isAnimatableCSSProperty):
(WebCore::SVGElement::isPresentationAttribute):
(WebCore::SVGElement::collectStyleForPresentationAttribute):
(WebCore::SVGElement::isKnownAttribute):
(WebCore::SVGElement::svgAttributeChanged):
(WebCore::SVGElement::insertedInto):
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::childrenChanged):
(WebCore::SVGElement::getPresentationAttribute):
(WebCore::SVGElement::instanceUpdatesBlocked):
(WebCore::SVGElement::setInstanceUpdatesBlocked):
(WebCore::SVGElement::localCoordinateSpaceTransform):
(WebCore::SVGElement::updateRelativeLengthsInformation):
(WebCore::SVGElement::isMouseFocusable):
(WebCore::SVGElement::isKeyboardFocusable):
* svg/SVGElement.h:
(WebCore::SVGElement::supportsMarkers):
(WebCore::SVGElement::hasRelativeLengths):
(WebCore::SVGElement::needsPendingResourceHandling):
(WebCore::SVGElement::selfHasRelativeLengths):
(WebCore::SVGElement::updateRelativeLengthsInformation):
* svg/SVGElement.idl:
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
(WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
* svg/SVGElementInstance.h:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFEComponentTransferElement.idl:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEConvolveMatrixElement.idl:
* svg/SVGFEDiffuseLightingElement.idl:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEImageElement.idl:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.idl:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFEOffsetElement.idl:
* svg/SVGFESpecularLightingElement.idl:
* svg/SVGFETileElement.idl:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::parseAttribute):
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::childrenChanged):
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
* svg/SVGFontElement.h:
* svg/SVGFontFaceElement.cpp:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::rendererIsNeeded):
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::SVGGlyphElement):
(WebCore::SVGGlyphElement::parseAttribute):
(WebCore::SVGGlyphElement::insertedInto):
(WebCore::SVGGlyphElement::removedFrom):
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
(WebCore::SVGGlyphRefElement::parseAttribute):
* svg/SVGGlyphRefElement.h:
* svg/SVGGlyphRefElement.idl:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::parseAttribute):
(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):
* svg/SVGGradientElement.h:
* svg/SVGGradientElement.idl:
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::SVGGraphicsElement):
(WebCore::SVGGraphicsElement::parseAttribute):
(WebCore::SVGGraphicsElement::svgAttributeChanged):
* svg/SVGGraphicsElement.h:
* svg/SVGGraphicsElement.idl:
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::computeCTM):
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::childrenChanged):
* svg/SVGMarkerElement.h:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::parseAttribute):
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):
* svg/SVGMaskElement.h:
* svg/SVGMaskElement.idl:
* svg/SVGMetadataElement.h:
* svg/SVGMissingGlyphElement.cpp:
(WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
* svg/SVGMissingGlyphElement.h:
* svg/SVGMissingGlyphElement.idl:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::parseAttribute):
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::childrenChanged):
* svg/SVGPatternElement.h:
* svg/SVGPatternElement.idl:
* svg/SVGScriptElement.h:
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::SVGStopElement):
(WebCore::SVGStopElement::parseAttribute):
(WebCore::SVGStopElement::svgAttributeChanged):
* svg/SVGStopElement.h:
* svg/SVGStopElement.idl:
* svg/SVGStyleElement.h:
* svg/SVGStyledElement.cpp: Removed.
* svg/SVGStyledElement.h: Removed.
* svg/SVGStyledElement.idl: Removed.
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
(WebCore::SVGSymbolElement::parseAttribute):
(WebCore::SVGSymbolElement::svgAttributeChanged):
* svg/SVGSymbolElement.h:
* svg/SVGSymbolElement.idl:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::insertedInto):
(WebCore::SVGTRefElement::removedFrom):
* svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::SVGTitleElement):
(WebCore::SVGTitleElement::insertedInto):
* svg/SVGTitleElement.h:
* svg/SVGTitleElement.idl:
* svg/SVGTransformable.cpp:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::selfHasRelativeLengths):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
(WebCore::SVGViewElement::parseAttribute):
* svg/SVGViewElement.h:
* svg/animation/SVGSMILElement.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
2013-08-22 Andreas Kling <akling@apple.com>
 
FrameLoader::history() should return a reference.
......@@ -463,7 +463,6 @@
#include "JSSVGStopElement.cpp"
#include "JSSVGStringList.cpp"
#include "JSSVGStyleElement.cpp"
#include "JSSVGStyledElement.cpp"
#include "JSSVGSwitchElement.cpp"
#include "JSSVGSymbolElement.cpp"
#include "JSSVGTextContentElement.cpp"
......
......@@ -587,7 +587,6 @@ BINDING_IDLS = \
$(WebCore)/svg/SVGStopElement.idl \
$(WebCore)/svg/SVGStringList.idl \
$(WebCore)/svg/SVGStyleElement.idl \
$(WebCore)/svg/SVGStyledElement.idl \
$(WebCore)/svg/SVGSwitchElement.idl \
$(WebCore)/svg/SVGSymbolElement.idl \
$(WebCore)/svg/SVGTRefElement.idl \
......
......@@ -612,7 +612,6 @@ enable?(SVG) {
$$PWD/svg/SVGStopElement.idl \
$$PWD/svg/SVGStringList.idl \
$$PWD/svg/SVGStyleElement.idl \