Reviewed by Oliver.
authorzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Apr 2008 12:55:03 +0000 (12:55 +0000)
committerzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Apr 2008 12:55:03 +0000 (12:55 +0000)
commit2be84171fcffa5e37da77a5c809631140e1b75ee
tree4321d7797713c6275720b81ec109b8a267da675b
parentc61f37379da8e46416a8fecb37f49ddb5caf168e
Reviewed by Oliver.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)

SVG Errata states: "All SVG DOM objects that directly correspond to an
attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
means that any changes made to the attribute are immediately reflected in the
corresponding SVG DOM object." (see linked URL on bug report)

Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).

Add a new synchronization layer to handle SVG DOM -> XML changes.

Added Test: svg/custom/svg-xml-dom-sync.html

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31566 268f45cc-cd09-0410-ab3c-d52691b4dbfc
242 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.checksum
LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png
LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/text-text-06-t-expected.checksum
LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/text-text-06-t-expected.png
LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/dom/altGlyph-dom-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/dom/altGlyph-dom-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cx-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cx-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cy-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cy-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-r-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-r-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop-expected.png
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop-expected.checksum
LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop-expected.png
LayoutTests/platform/mac-leopard/svg/text/kerning-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/text/kerning-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-leopard/svg/text/text-text-06-t-expected.checksum
LayoutTests/platform/mac-leopard/svg/text/text-text-06-t-expected.png
LayoutTests/svg/custom/resources/svg-xml-dom-sync.js [new file with mode: 0644]
LayoutTests/svg/custom/svg-xml-dom-sync-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/svg-xml-dom-sync.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGAElement-dom-href-attr.html
LayoutTests/svg/dynamic-updates/SVGAElement-dom-target-attr.html
LayoutTests/svg/dynamic-updates/SVGAElement-svgdom-href-prop.html
LayoutTests/svg/dynamic-updates/SVGAElement-svgdom-target-prop.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-cx-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-cx-attr.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-cy-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-cy-attr.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-r-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-dom-r-attr.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop.html
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop.html
LayoutTests/svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html
LayoutTests/svg/dynamic-updates/SVGClipPathElement-svgdom-clipPathUnits-prop.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop.html
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr-expected.txt
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-x-attr.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-dom-y-attr.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop-expected.txt
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-x-prop.html
LayoutTests/svg/dynamic-updates/SVGForeignObjectElement-svgdom-y-prop.html
LayoutTests/svg/dynamic-updates/resources/SVGAElement-dom-href-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGAElement-dom-target-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGAElement-svgdom-href-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGAElement-svgdom-target-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-cx-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-cy-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-r-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-cx-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-cy-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-r-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGClipPathElement-dom-clipPathUnits-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGClipPathElement-svgdom-clipPathUnits-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-cx-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-cy-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-rx-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-ry-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cx-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cy-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-rx-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-ry-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-height-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-width-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-x-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-y-attr.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-height-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-width-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-x-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-y-prop.js
LayoutTests/svg/dynamic-updates/resources/SVGTestCase.js
LayoutTests/svg/dynamic-updates/resources/TEMPLATE.html
WebCore/ChangeLog
WebCore/dom/Element.h
WebCore/dom/NamedAttrMap.h
WebCore/rendering/SVGRootInlineBox.cpp
WebCore/svg/SVGAElement.h
WebCore/svg/SVGAltGlyphElement.h
WebCore/svg/SVGAnimateColorElement.h
WebCore/svg/SVGAnimateElement.h
WebCore/svg/SVGAnimateMotionElement.h
WebCore/svg/SVGAnimateTransformElement.h
WebCore/svg/SVGAnimatedTemplate.h
WebCore/svg/SVGAnimationElement.h
WebCore/svg/SVGCircleElement.h
WebCore/svg/SVGClipPathElement.h
WebCore/svg/SVGComponentTransferFunctionElement.cpp
WebCore/svg/SVGComponentTransferFunctionElement.h
WebCore/svg/SVGCursorElement.cpp
WebCore/svg/SVGCursorElement.h
WebCore/svg/SVGDefsElement.h
WebCore/svg/SVGElement.cpp
WebCore/svg/SVGElement.h
WebCore/svg/SVGEllipseElement.cpp
WebCore/svg/SVGEllipseElement.h
WebCore/svg/SVGExternalResourcesRequired.h
WebCore/svg/SVGFEBlendElement.h
WebCore/svg/SVGFEColorMatrixElement.cpp
WebCore/svg/SVGFEColorMatrixElement.h
WebCore/svg/SVGFEComponentTransferElement.h
WebCore/svg/SVGFECompositeElement.h
WebCore/svg/SVGFEDiffuseLightingElement.h
WebCore/svg/SVGFEDisplacementMapElement.h
WebCore/svg/SVGFEFloodElement.h
WebCore/svg/SVGFEGaussianBlurElement.h
WebCore/svg/SVGFEImageElement.cpp
WebCore/svg/SVGFEImageElement.h
WebCore/svg/SVGFELightElement.h
WebCore/svg/SVGFEMergeElement.h
WebCore/svg/SVGFEMergeNodeElement.h
WebCore/svg/SVGFEOffsetElement.h
WebCore/svg/SVGFESpecularLightingElement.h
WebCore/svg/SVGFETileElement.h
WebCore/svg/SVGFETurbulenceElement.h
WebCore/svg/SVGFilterElement.cpp
WebCore/svg/SVGFilterElement.h
WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
WebCore/svg/SVGFitToViewBox.cpp
WebCore/svg/SVGFitToViewBox.h
WebCore/svg/SVGFontElement.h
WebCore/svg/SVGForeignObjectElement.cpp
WebCore/svg/SVGForeignObjectElement.h
WebCore/svg/SVGGElement.h
WebCore/svg/SVGGradientElement.cpp
WebCore/svg/SVGGradientElement.h
WebCore/svg/SVGImageElement.cpp
WebCore/svg/SVGImageElement.h
WebCore/svg/SVGLength.cpp
WebCore/svg/SVGLength.h
WebCore/svg/SVGLengthList.cpp
WebCore/svg/SVGLengthList.h
WebCore/svg/SVGLineElement.cpp
WebCore/svg/SVGLineElement.h
WebCore/svg/SVGLinearGradientElement.cpp
WebCore/svg/SVGLinearGradientElement.h
WebCore/svg/SVGMPathElement.h
WebCore/svg/SVGMarkerElement.cpp
WebCore/svg/SVGMarkerElement.h
WebCore/svg/SVGMaskElement.cpp
WebCore/svg/SVGMaskElement.h
WebCore/svg/SVGNumberList.cpp
WebCore/svg/SVGNumberList.h
WebCore/svg/SVGPathElement.h
WebCore/svg/SVGPatternElement.cpp
WebCore/svg/SVGPatternElement.h
WebCore/svg/SVGPolyElement.h
WebCore/svg/SVGPreserveAspectRatio.cpp
WebCore/svg/SVGPreserveAspectRatio.h
WebCore/svg/SVGRadialGradientElement.cpp
WebCore/svg/SVGRadialGradientElement.h
WebCore/svg/SVGRectElement.cpp
WebCore/svg/SVGRectElement.h
WebCore/svg/SVGSVGElement.cpp
WebCore/svg/SVGSVGElement.h
WebCore/svg/SVGScriptElement.h
WebCore/svg/SVGSetElement.h
WebCore/svg/SVGStyledElement.h
WebCore/svg/SVGStyledTransformableElement.cpp
WebCore/svg/SVGStyledTransformableElement.h
WebCore/svg/SVGSwitchElement.h
WebCore/svg/SVGSymbolElement.h
WebCore/svg/SVGTRefElement.h
WebCore/svg/SVGTSpanElement.h
WebCore/svg/SVGTextContentElement.cpp
WebCore/svg/SVGTextContentElement.h
WebCore/svg/SVGTextElement.cpp
WebCore/svg/SVGTextElement.h
WebCore/svg/SVGTextPathElement.cpp
WebCore/svg/SVGTextPathElement.h
WebCore/svg/SVGTextPositioningElement.cpp
WebCore/svg/SVGTextPositioningElement.h
WebCore/svg/SVGTransformList.cpp
WebCore/svg/SVGTransformList.h
WebCore/svg/SVGURIReference.h
WebCore/svg/SVGUseElement.cpp
WebCore/svg/SVGUseElement.h
WebCore/svg/SVGViewElement.h
WebCore/svg/SVGViewSpec.cpp
WebCore/svg/SVGViewSpec.h