Rollout r31566 as there were a few issues i missed during review (thanks to antti...
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Apr 2008 20:30:05 +0000 (20:30 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Apr 2008 20:30:05 +0000 (20:30 +0000)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31600 268f45cc-cd09-0410-ab3c-d52691b4dbfc

240 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 [deleted file]
LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.png [deleted file]
LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.checksum [deleted file]
LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.png [deleted file]
LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.checksum [deleted file]
LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.png [deleted file]
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 [deleted file]
LayoutTests/platform/mac-leopard/svg/text/kerning-expected.png [deleted file]
LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.checksum [deleted file]
LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.png [deleted file]
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 [deleted file]
LayoutTests/svg/custom/svg-xml-dom-sync-expected.txt [deleted file]
LayoutTests/svg/custom/svg-xml-dom-sync.html [deleted file]
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

index 5930c26..f5be57d 100644 (file)
@@ -1,3 +1,10 @@
+2008-04-03  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by NOBODY (Rollout).
+
+        Rollout layout test changes for r31566
+
+
 2008-04-03  Brady Eidson  <beidson@apple.com>
 
         Fix a tab into 4-spaces instead
index 218c069..2069f27 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png and b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png differ
index 2790114..c6d067f 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/text-text-06-t-expected.png and b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/text-text-06-t-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.checksum b/LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.checksum
deleted file mode 100644 (file)
index 02fb24c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5f6832d43af886a4980fcad57bb1fb59
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.png b/LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.png
deleted file mode 100644 (file)
index 5930238..0000000
Binary files a/LayoutTests/platform/mac-leopard/svg/custom/marker-getPropertyValue-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.checksum b/LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.checksum
deleted file mode 100644 (file)
index 073b5b2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2618d16bf325ac468218c8ffec1fbdc2
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.png b/LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.png
deleted file mode 100644 (file)
index 1d83518..0000000
Binary files a/LayoutTests/platform/mac-leopard/svg/custom/svg-xml-dom-sync-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.checksum b/LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.checksum
deleted file mode 100644 (file)
index 7862509..0000000
+++ /dev/null
@@ -1 +0,0 @@
-25079a7dbd73870e844aeeba5c58600f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.png b/LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.png
deleted file mode 100644 (file)
index 2f01e8d..0000000
Binary files a/LayoutTests/platform/mac-leopard/svg/custom/text-xy-updates-expected.png and /dev/null differ
index e27b310..b676046 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cx-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cx-attr-expected.png differ
index 420d45b..4c522e5 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cy-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-cy-attr-expected.png differ
index 520fa47..8679bfd 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-r-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-dom-r-attr-expected.png differ
index 33f1fe2..4e46b32 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop-expected.png differ
index 3923938..60d5596 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop-expected.png differ
index 8603dbe..ed8f58f 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGCircleElement-svgdom-r-prop-expected.png differ
index 9cfc76c..1952cba 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cx-attr-expected.png differ
index 0047559..fc73bb5 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-cy-attr-expected.png differ
index 9be0398..bdb0d15 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-rx-attr-expected.png differ
index 8b51c47..89936a7 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr-expected.png differ
index 0367f87..235e71b 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop-expected.png differ
index 92a244f..3ff675a 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop-expected.png differ
index 784a5ce..c408943 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop-expected.png differ
index b68a6c8..5b072c2 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop-expected.png differ
index b862622..bf1c996 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr-expected.png differ
index bf10334..8e90f05 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr-expected.png differ
index b3c7b6b..3ba4e7b 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop-expected.png differ
index 7428527..81528f2 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop-expected.png and b/LayoutTests/platform/mac-leopard/svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/text/kerning-expected.checksum b/LayoutTests/platform/mac-leopard/svg/text/kerning-expected.checksum
deleted file mode 100644 (file)
index ca5a4f8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-eb117cda68116b7a8704766cf0a11571
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/text/kerning-expected.png b/LayoutTests/platform/mac-leopard/svg/text/kerning-expected.png
deleted file mode 100644 (file)
index b8b0665..0000000
Binary files a/LayoutTests/platform/mac-leopard/svg/text/kerning-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.checksum b/LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.checksum
deleted file mode 100644 (file)
index ee8a696..0000000
+++ /dev/null
@@ -1 +0,0 @@
-3f70533f64c404e93d20b4931dba290f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.png b/LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.png
deleted file mode 100644 (file)
index b4ea418..0000000
Binary files a/LayoutTests/platform/mac-leopard/svg/text/multichar-glyph-expected.png and /dev/null differ
index 1d3fef0..9f3a493 100644 (file)
Binary files a/LayoutTests/platform/mac-leopard/svg/text/text-text-06-t-expected.png and b/LayoutTests/platform/mac-leopard/svg/text/text-text-06-t-expected.png differ
diff --git a/LayoutTests/svg/custom/resources/svg-xml-dom-sync.js b/LayoutTests/svg/custom/resources/svg-xml-dom-sync.js
deleted file mode 100644 (file)
index 6c17b35..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-description("Tests whether changes to SVG through native objects and the DOM stay in sync.");
-
-var svgDoc = document.implementation.createDocument("http://www.w3.org/2000/svg", "svg", null);
-var rect = svgDoc.createElementNS("http://www.w3.org/2000/svg", "rect");
-rect.setAttribute("x", 100);
-rect.setAttribute("y", 100);
-
-shouldBe("rect.x.baseVal.value", "100");
-shouldBe("rect.getAttribute('x')", "'100'");
-shouldBe("rect.y.baseVal.value", "100");
-shouldBe("rect.getAttribute('y')", "'100'");
-
-rect.x.baseVal.value = 200;
-rect.setAttribute("y", 200);
-
-shouldBe("rect.x.baseVal.value", "200");
-shouldBe("rect.getAttribute('x')", "'200'");
-shouldBe("rect.y.baseVal.value", "200");
-shouldBe("rect.getAttribute('y')", "'200'");
-
-var successfullyParsed = true;
diff --git a/LayoutTests/svg/custom/svg-xml-dom-sync-expected.txt b/LayoutTests/svg/custom/svg-xml-dom-sync-expected.txt
deleted file mode 100644 (file)
index 080f11a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Tests whether changes to SVG through native objects and the DOM stay in sync.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS rect.x.baseVal.value is 100
-PASS rect.getAttribute('x') is '100'
-PASS rect.y.baseVal.value is 100
-PASS rect.getAttribute('y') is '100'
-PASS rect.x.baseVal.value is 200
-PASS rect.getAttribute('x') is '200'
-PASS rect.y.baseVal.value is 200
-PASS rect.getAttribute('y') is '200'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/custom/svg-xml-dom-sync.html b/LayoutTests/svg/custom/svg-xml-dom-sync.html
deleted file mode 100644 (file)
index 97d15e1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href="../../../LayoutTests/fast/js/resources/js-test-style.css">
-<script src="../../../LayoutTests/fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p id="description"></p>
-<div id="console"></div>
-<script src="resources/svg-xml-dom-sync.js"></script> 
-<script src="../../../LayoutTests/fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
index a58a347..d73bdca 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGAElement-dom-href-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 1b684ef..43053cb 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGAElement-dom-target-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 1fc40ae..7a37ec3 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGAElement-svgdom-href-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index e029958..cbc6ed9 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGAElement-svgdom-target-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index accb1f6..f2d0ab9 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cx' attribute of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.getAttribute('cx') is "-50"
+PASS circleElement.getAttribute('cx') is "-150"
 PASS circleElement.getAttribute('cx') is "150"
 PASS successfullyParsed is true
 
index ecaad94..62717dc 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-dom-cx-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 4c397b2..575fb1e 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cy' attribute of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.getAttribute('cy') is "-50"
+PASS circleElement.getAttribute('cy') is "-150"
 PASS circleElement.getAttribute('cy') is "150"
 PASS successfullyParsed is true
 
index fbd4e34..5cd9a1f 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-dom-cy-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 56d8e40..df74a60 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'r' attribute of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.getAttribute('r') is "1"
+PASS circleElement.getAttribute('r') is "0"
 PASS circleElement.getAttribute('r') is "150"
 PASS successfullyParsed is true
 
index 7e4792d..15a4062 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-dom-r-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 2cd0f55..5bbb0b7 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cx' property of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.cx.baseVal.value is -50
+PASS circleElement.cx.baseVal.value is -150
 PASS circleElement.cx.baseVal.value is 150
 PASS successfullyParsed is true
 
index d945e8f..571ff7a 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-svgdom-cx-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index e6df89e..9812f49 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cy' property of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.cy.baseVal.value is -50
+PASS circleElement.cy.baseVal.value is -150
 PASS circleElement.cy.baseVal.value is 150
 PASS successfullyParsed is true
 
index 3bb047b..aad94b5 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-svgdom-cy-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index d2d270b..9a5ae8b 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'r' property of the SVGCircleElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS circleElement.r.baseVal.value is 1
+PASS circleElement.r.baseVal.value is 0
 PASS circleElement.r.baseVal.value is 150
 PASS successfullyParsed is true
 
index 22577e0..fb95745 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGCircleElement-svgdom-r-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index b0c0264..10d542d 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGClipPathElement-dom-clipPathUnits-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 9c92873..78a7804 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGClipPathElement-svgdom-clipPathUnits-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 3171fc9..034b7bd 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cx' attribute of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.getAttribute('cx') is "-50"
+PASS ellipseElement.getAttribute('cx') is "-150"
 PASS ellipseElement.getAttribute('cx') is "150"
 PASS successfullyParsed is true
 
index b792736..15c5005 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-dom-cx-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 2665f33..9579a99 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cy' attribute of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.getAttribute('cy') is "-50"
+PASS ellipseElement.getAttribute('cy') is "-150"
 PASS ellipseElement.getAttribute('cy') is "150"
 PASS successfullyParsed is true
 
index bb52fb4..5f94f9c 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-dom-cy-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index d2f7b2e..00d25ce 100644 (file)
@@ -5,8 +5,8 @@ Tests dynamic updates of the 'rx' attribute of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.getAttribute('rx') is "10"
-PASS ellipseElement.getAttribute('rx') is "150"
+PASS ellipseElement.getAttribute('rx') is "0"
+PASS ellipseElement.getAttribute('rx') is "100"
 PASS successfullyParsed is true
 
 TEST COMPLETE
index dfae77f..6fcba92 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-dom-rx-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 2875677..4b876b5 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'ry' attribute of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.getAttribute('ry') is "10"
+PASS ellipseElement.getAttribute('ry') is "0"
 PASS ellipseElement.getAttribute('ry') is "150"
 PASS successfullyParsed is true
 
index ffd7899..584349e 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-dom-ry-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 48a181d..54d18e2 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cx' property of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.cx.baseVal.value is -50
+PASS ellipseElement.cx.baseVal.value is -150
 PASS ellipseElement.cx.baseVal.value is 150
 PASS successfullyParsed is true
 
index fafca03..c86e494 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-svgdom-cx-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 56048c1..fc6c33f 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'cy' property of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.cy.baseVal.value is -50
+PASS ellipseElement.cy.baseVal.value is -150
 PASS ellipseElement.cy.baseVal.value is 150
 PASS successfullyParsed is true
 
index 14d6f07..bc50c47 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-svgdom-cy-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 06b092b..7a30df1 100644 (file)
@@ -5,8 +5,8 @@ Tests dynamic updates of the 'rx' property of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.rx.baseVal.value is 10
-PASS ellipseElement.rx.baseVal.value is 150
+PASS ellipseElement.rx.baseVal.value is 0
+PASS ellipseElement.rx.baseVal.value is 100
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 5b0a9bc..be095d3 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-svgdom-rx-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index a975897..a85fdd0 100644 (file)
@@ -5,7 +5,7 @@ Tests dynamic updates of the 'ry' property of the SVGEllipseElement object
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS ellipseElement.ry.baseVal.value is 10
+PASS ellipseElement.ry.baseVal.value is 0
 PASS ellipseElement.ry.baseVal.value is 150
 PASS successfullyParsed is true
 
index 7b4270f..04521de 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGEllipseElement-svgdom-ry-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 655bde3..881e0af 100644 (file)
@@ -6,7 +6,7 @@ Tests dynamic updates of the 'height' attribute of the SVGForeignObjectElement o
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foreignObjectElement.getAttribute('height') is "2"
+PASS foreignObjectElement.getAttribute('height') is "0"
 PASS foreignObjectElement.getAttribute('height') is "150"
 PASS successfullyParsed is true
 
index 6aac8ab..6986373 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-dom-height-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 5036fac..37c531c 100644 (file)
@@ -6,7 +6,7 @@ Tests dynamic updates of the 'width' attribute of the SVGForeignObjectElement ob
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foreignObjectElement.getAttribute('width') is "2"
+PASS foreignObjectElement.getAttribute('width') is "0"
 PASS foreignObjectElement.getAttribute('width') is "150"
 PASS successfullyParsed is true
 
index 789252e..f409cff 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-dom-width-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 9e32ba6..f8b365d 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-dom-x-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 467053f..1216bc7 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-dom-y-attr.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index b83eb9f..db38144 100644 (file)
@@ -6,7 +6,7 @@ Tests dynamic updates of the 'height' property of the SVGForeignObjectElement ob
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foreignObjectElement.height.baseVal.value is 2
+PASS foreignObjectElement.height.baseVal.value is 0
 PASS foreignObjectElement.height.baseVal.value is 150
 PASS successfullyParsed is true
 
index 6a931c8..4a352ae 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-svgdom-height-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 824e264..34ecbb1 100644 (file)
@@ -6,7 +6,7 @@ Tests dynamic updates of the 'width' property of the SVGForeignObjectElement obj
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foreignObjectElement.width.baseVal.value is 2
+PASS foreignObjectElement.width.baseVal.value is 0
 PASS foreignObjectElement.width.baseVal.value is 150
 PASS successfullyParsed is true
 
index f48b5e0..20e7ed6 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-svgdom-width-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 308cd25..80d53ae 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-svgdom-x-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 531f0fe..e447e35 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="resources/SVGForeignObjectElement-svgdom-y-prop.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 0299920..6c631c1 100644 (file)
@@ -20,8 +20,8 @@ rootSVGElement.appendChild(anchorElement);
 
 function executeTest() {
     anchorElement.setAttributeNS(xlinkNS, "xlink:href", "resources/linkTarget.svg");
-    completeTest();
     triggerUpdate();
 }
 
 executeTest();
+var successfullyParsed = true;
index 6880ee8..f6fd78d 100644 (file)
@@ -21,8 +21,8 @@ rootSVGElement.appendChild(anchorElement);
 
 function executeTest() {
     anchorElement.setAttribute("target", "_self");
-    completeTest();
     triggerUpdate();
 }
 
 executeTest();
+var successfullyParsed = true;
index 2e46976..b0886f2 100644 (file)
@@ -20,8 +20,8 @@ rootSVGElement.appendChild(anchorElement);
 
 function executeTest() {
     anchorElement.href.baseVal = "resources/linkTarget.svg";
-    completeTest();
     triggerUpdate();
 }
 
 executeTest();
+var successfullyParsed = true;
index c13fb39..57093e6 100644 (file)
@@ -21,8 +21,8 @@ rootSVGElement.appendChild(anchorElement);
 
 function executeTest() {
     anchorElement.target.baseVal = "_self";
-    completeTest();
     triggerUpdate();
 }
 
 executeTest();
+var successfullyParsed = true;
index 9cf2a08..59d6dbd 100644 (file)
@@ -1,23 +1,25 @@
 // [Name] SVGCircleElement-dom-cx-attr.js
-// [Expected rendering result] unclipped green circle - and a series of PASS mesages
+// [Expected rendering result] green circle - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cx' attribute of the SVGCircleElement object")
 createSVGTestCase();
 
 var circleElement = createSVGElement("circle");
-circleElement.setAttribute("cx", "-50");
+circleElement.setAttribute("cx", "-150");
 circleElement.setAttribute("cy", "150");
 circleElement.setAttribute("r", "150");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBeEqualToString("circleElement.getAttribute('cx')", "-50");
+shouldBeEqualToString("circleElement.getAttribute('cx')", "-150");
 
 function executeTest() {
     circleElement.setAttribute("cx", "150");
     shouldBeEqualToString("circleElement.getAttribute('cx')", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement);
+    triggerUpdate();
 }
 
-startTest(circleElement, 50, 150);
+executeTest();
+var successfullyParsed = true;
index 81716be..3753a30 100644 (file)
@@ -1,23 +1,25 @@
 // [Name] SVGCircleElement-dom-cy-attr.js
-// [Expected rendering result] unclipped green circle - and a series of PASS mesages
+// [Expected rendering result] green circle - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cy' attribute of the SVGCircleElement object")
 createSVGTestCase();
 
 var circleElement = createSVGElement("circle");
 circleElement.setAttribute("cx", "150");
-circleElement.setAttribute("cy", "-50");
+circleElement.setAttribute("cy", "-150");
 circleElement.setAttribute("r", "150");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBeEqualToString("circleElement.getAttribute('cy')", "-50");
+shouldBeEqualToString("circleElement.getAttribute('cy')", "-150");
 
 function executeTest() {
     circleElement.setAttribute("cy", "150");
     shouldBeEqualToString("circleElement.getAttribute('cy')", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement);
+    triggerUpdate();
 }
 
-startTest(circleElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index f76bf5e..598bf2a 100644 (file)
@@ -7,17 +7,19 @@ createSVGTestCase();
 var circleElement = createSVGElement("circle");
 circleElement.setAttribute("cx", "150");
 circleElement.setAttribute("cy", "150");
-circleElement.setAttribute("r", "1");
+circleElement.setAttribute("r", "0");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBeEqualToString("circleElement.getAttribute('r')", "1");
+shouldBeEqualToString("circleElement.getAttribute('r')", "0");
 
 function executeTest() {
     circleElement.setAttribute("r", "150");
     shouldBeEqualToString("circleElement.getAttribute('r')", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement);
+    triggerUpdate();
 }
 
-startTest(circleElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index 9e97f6d..a15e0f9 100644 (file)
@@ -1,23 +1,25 @@
 // [Name] SVGCircleElement-svgdom-cx-prop.js
-// [Expected rendering result] unclipped green circle - and a series of PASS mesages
+// [Expected rendering result] green circle - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cx' property of the SVGCircleElement object")
 createSVGTestCase();
 
 var circleElement = createSVGElement("circle");
-circleElement.setAttribute("cx", "-50");
+circleElement.setAttribute("cx", "-150");
 circleElement.setAttribute("cy", "150");
 circleElement.setAttribute("r", "150");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBe("circleElement.cx.baseVal.value", "-50");
+shouldBe("circleElement.cx.baseVal.value", "-150");
 
 function executeTest() {
     circleElement.cx.baseVal.value = "150";
     shouldBe("circleElement.cx.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement);
+    triggerUpdate();
 }
 
-startTest(circleElement, 50, 150);
+executeTest();
+var successfullyParsed = true;
index 1f8d297..dc75f3e 100644 (file)
@@ -1,23 +1,25 @@
 // [Name] SVGCircleElement-svgdom-cy-prop.js
-// [Expected rendering result] unclipped green circle - and a series of PASS mesages
+// [Expected rendering result] green circle - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cy' property of the SVGCircleElement object")
 createSVGTestCase();
 
 var circleElement = createSVGElement("circle");
 circleElement.setAttribute("cx", "150");
-circleElement.setAttribute("cy", "-50");
+circleElement.setAttribute("cy", "-150");
 circleElement.setAttribute("r", "150");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBe("circleElement.cy.baseVal.value", "-50");
+shouldBe("circleElement.cy.baseVal.value", "-150");
 
 function executeTest() {
     circleElement.cy.baseVal.value = "150";
     shouldBe("circleElement.cy.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement);
+    triggerUpdate();
 }
 
-startTest(circleElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index 88783d5..09eddbd 100644 (file)
@@ -7,17 +7,19 @@ createSVGTestCase();
 var circleElement = createSVGElement("circle");
 circleElement.setAttribute("cx", "150");
 circleElement.setAttribute("cy", "150");
-circleElement.setAttribute("r", "1");
+circleElement.setAttribute("r", "0");
 circleElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(circleElement);
-shouldBe("circleElement.r.baseVal.value", "1");
+shouldBe("circleElement.r.baseVal.value", "0");
 
 function executeTest() {
     circleElement.r.baseVal.value = "150";
     shouldBe("circleElement.r.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(circleElement); 
+    triggerUpdate();
 }
 
-startTest(circleElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index f6b3b70..ef9ad05 100644 (file)
@@ -17,7 +17,7 @@ circleElement.setAttribute("cy", "150");
 circleElement.setAttribute("r", "150");
 clipPathElement.appendChild(circleElement);
 
-defsElement.appendChild(clipPathElement);
+defsElement.appendChild(clipPathElement);;
 
 var rectElement = createSVGElement("rect");
 rectElement.setAttribute("width", "300");
@@ -32,7 +32,9 @@ function executeTest() {
     clipPathElement.setAttribute("clipPathUnits", "userSpaceOnUse");
     shouldBeEqualToString("clipPathElement.getAttribute('clipPathUnits')", "userSpaceOnUse");
 
-    completeTest();
+    waitForClickEvent(rectElement);
+    triggerUpdate();
 }
 
-startTest(rectElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index a01cf5c..003968d 100644 (file)
@@ -32,7 +32,9 @@ function executeTest() {
     clipPathElement.clipPathUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE;
     shouldBe("clipPathElement.clipPathUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
 
-    completeTest();
+    waitForClickEvent(rectElement);
+    triggerUpdate();
 }
 
-startTest(rectElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index 18cf0d7..0a33605 100644 (file)
@@ -1,24 +1,26 @@
 // [Name] SVGEllipseElement-dom-cx-attr.js
-// [Expected rendering result] unclipped green ellipse - and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cx' attribute of the SVGEllipseElement object")
 createSVGTestCase();
 
 var ellipseElement = createSVGElement("ellipse");
-ellipseElement.setAttribute("cx", "-50");
+ellipseElement.setAttribute("cx", "-150");
 ellipseElement.setAttribute("cy", "150");
 ellipseElement.setAttribute("rx", "100");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBeEqualToString("ellipseElement.getAttribute('cx')", "-50");
+shouldBeEqualToString("ellipseElement.getAttribute('cx')", "-150");
 
 function executeTest() {
     ellipseElement.setAttribute("cx", "150");
     shouldBeEqualToString("ellipseElement.getAttribute('cx')", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 25, 150);
+executeTest();
+var successfullyParsed = true;
index 680172e..ba96935 100644 (file)
@@ -1,24 +1,26 @@
 // [Name] SVGEllipseElement-dom-cy-attr.js
-// [Expected rendering result] unclipped green ellipse - and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cy' attribute of the SVGEllipseElement object")
 createSVGTestCase();
 
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
-ellipseElement.setAttribute("cy", "-50");
+ellipseElement.setAttribute("cy", "-150");
 ellipseElement.setAttribute("rx", "100");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBeEqualToString("ellipseElement.getAttribute('cy')", "-50");
+shouldBeEqualToString("ellipseElement.getAttribute('cy')", "-150");
 
 function executeTest() {
     ellipseElement.setAttribute("cy", "150");
     shouldBeEqualToString("ellipseElement.getAttribute('cy')", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index 6baa959..2f975ba 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGEllipseElement-dom-rx-attr.js
-// [Expected rendering result] green ellipse with rx = ry (in fact a circle)- and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'rx' attribute of the SVGEllipseElement object")
 createSVGTestCase();
@@ -7,18 +7,20 @@ createSVGTestCase();
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
 ellipseElement.setAttribute("cy", "150");
-ellipseElement.setAttribute("rx", "10");
+ellipseElement.setAttribute("rx", "0");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBeEqualToString("ellipseElement.getAttribute('rx')", "10");
+shouldBeEqualToString("ellipseElement.getAttribute('rx')", "0");
 
 function executeTest() {
-    ellipseElement.setAttribute("rx", "150");
-    shouldBeEqualToString("ellipseElement.getAttribute('rx')", "150");
+    ellipseElement.setAttribute("rx", "100");
+    shouldBeEqualToString("ellipseElement.getAttribute('rx')", "100");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index 3006575..1bec14b 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGEllipseElement-dom-ry-attr.js
-// [Expected rendering result] with rx = ry (in fact a circle) - and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'ry' attribute of the SVGEllipseElement object")
 createSVGTestCase();
@@ -7,18 +7,20 @@ createSVGTestCase();
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
 ellipseElement.setAttribute("cy", "150");
-ellipseElement.setAttribute("rx", "150");
-ellipseElement.setAttribute("ry", "10");
+ellipseElement.setAttribute("rx", "100");
+ellipseElement.setAttribute("ry", "0");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBeEqualToString("ellipseElement.getAttribute('ry')", "10");
+shouldBeEqualToString("ellipseElement.getAttribute('ry')", "0");
 
 function executeTest() {
     ellipseElement.setAttribute("ry", "150");
     shouldBeEqualToString("ellipseElement.getAttribute('ry')", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index 23f17e4..da19b0c 100644 (file)
@@ -1,24 +1,26 @@
 // [Name] SVGEllipseElement-svgdom-cx-prop.js
-// [Expected rendering result] unclipped green ellipse - and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cx' property of the SVGEllipseElement object")
 createSVGTestCase();
 
 var ellipseElement = createSVGElement("ellipse");
-ellipseElement.setAttribute("cx", "-50");
+ellipseElement.setAttribute("cx", "-150");
 ellipseElement.setAttribute("cy", "150");
 ellipseElement.setAttribute("rx", "100");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBe("ellipseElement.cx.baseVal.value", "-50");
+shouldBe("ellipseElement.cx.baseVal.value", "-150");
 
 function executeTest() {
     ellipseElement.cx.baseVal.value = "150";
     shouldBe("ellipseElement.cx.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 25, 150);
+executeTest();
+var successfullyParsed = true;
index f641a44..2dd7a94 100644 (file)
@@ -1,24 +1,26 @@
 // [Name] SVGEllipseElement-svgdom-cy-prop.js
-// [Expected rendering result] unclipped green ellipse - and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'cy' property of the SVGEllipseElement object")
 createSVGTestCase();
 
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
-ellipseElement.setAttribute("cy", "-50");
+ellipseElement.setAttribute("cy", "-150");
 ellipseElement.setAttribute("rx", "100");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBe("ellipseElement.cy.baseVal.value", "-50");
+shouldBe("ellipseElement.cy.baseVal.value", "-150");
 
 function executeTest() {
     ellipseElement.cy.baseVal.value = "150";
     shouldBe("ellipseElement.cy.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement);
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index 65905f2..c0710ae 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGEllipseElement-svgdom-rx-prop.js
-// [Expected rendering result] green ellipse with rx = ry (in fact a circle)- and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'rx' property of the SVGEllipseElement object")
 createSVGTestCase();
@@ -7,18 +7,20 @@ createSVGTestCase();
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
 ellipseElement.setAttribute("cy", "150");
-ellipseElement.setAttribute("rx", "10");
+ellipseElement.setAttribute("rx", "0");
 ellipseElement.setAttribute("ry", "150");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBe("ellipseElement.rx.baseVal.value", "10");
+shouldBe("ellipseElement.rx.baseVal.value", "0");
 
 function executeTest() {
-    ellipseElement.rx.baseVal.value = "150";
-    shouldBe("ellipseElement.rx.baseVal.value", "150");
+    ellipseElement.rx.baseVal.value = "100";
+    shouldBe("ellipseElement.rx.baseVal.value", "100");
 
-    completeTest();
+    waitForClickEvent(ellipseElement); 
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index 7a0aa2d..c61b664 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGEllipseElement-svgdom-ry-prop.js
-// [Expected rendering result] green ellipse with rx = ry (in fact a circle)- and a series of PASS mesages
+// [Expected rendering result] green ellipse - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'ry' property of the SVGEllipseElement object")
 createSVGTestCase();
@@ -7,18 +7,20 @@ createSVGTestCase();
 var ellipseElement = createSVGElement("ellipse");
 ellipseElement.setAttribute("cx", "150");
 ellipseElement.setAttribute("cy", "150");
-ellipseElement.setAttribute("rx", "150");
-ellipseElement.setAttribute("ry", "10");
+ellipseElement.setAttribute("rx", "100");
+ellipseElement.setAttribute("ry", "0");
 ellipseElement.setAttribute("fill", "green");
 
 rootSVGElement.appendChild(ellipseElement);
-shouldBe("ellipseElement.ry.baseVal.value", "10");
+shouldBe("ellipseElement.ry.baseVal.value", "0");
 
 function executeTest() {
     ellipseElement.ry.baseVal.value = "150";
     shouldBe("ellipseElement.ry.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(ellipseElement); 
+    triggerUpdate();
 }
 
-startTest(ellipseElement, 150, 150);
+executeTest();
+var successfullyParsed = true;
index fd81594..adc58b1 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-dom-height-attr.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'height' attribute of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -8,7 +8,7 @@ var foreignObjectElement = createSVGElement("foreignObject");
 foreignObjectElement.setAttribute("x", "100");
 foreignObjectElement.setAttribute("y", "80");
 foreignObjectElement.setAttribute("width", "150");
-foreignObjectElement.setAttribute("height", "2");
+foreignObjectElement.setAttribute("height", "0");
 
 var htmlDivElement = document.createElementNS(xhtmlNS, "xhtml:div");
 htmlDivElement.setAttribute("style", "background-color: green; color: white; text-align: center");
@@ -17,13 +17,15 @@ htmlDivElement.textContent = "Test passed";
 foreignObjectElement.appendChild(htmlDivElement);
 rootSVGElement.appendChild(foreignObjectElement);
 
-shouldBeEqualToString("foreignObjectElement.getAttribute('height')", "2");
+shouldBeEqualToString("foreignObjectElement.getAttribute('height')", "0");
 
 function executeTest() {
     foreignObjectElement.setAttribute("height", "150");
     shouldBeEqualToString("foreignObjectElement.getAttribute('height')", "150");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 150, 81);
+executeTest();
+var successfullyParsed = true;
index 43a22a6..453526c 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-dom-width-attr.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'width' attribute of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -7,7 +7,7 @@ createSVGTestCase();
 var foreignObjectElement = createSVGElement("foreignObject");
 foreignObjectElement.setAttribute("x", "100");
 foreignObjectElement.setAttribute("y", "80");
-foreignObjectElement.setAttribute("width", "2");
+foreignObjectElement.setAttribute("width", "0");
 foreignObjectElement.setAttribute("height", "150");
 
 var htmlDivElement = document.createElementNS(xhtmlNS, "xhtml:div");
@@ -17,13 +17,15 @@ htmlDivElement.textContent = "Test passed";
 foreignObjectElement.appendChild(htmlDivElement);
 rootSVGElement.appendChild(foreignObjectElement);
 
-shouldBeEqualToString("foreignObjectElement.getAttribute('width')", "2");
+shouldBeEqualToString("foreignObjectElement.getAttribute('width')", "0");
 
 function executeTest() {
     foreignObjectElement.setAttribute("width", "150");
     shouldBeEqualToString("foreignObjectElement.getAttribute('width')", "150");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 101, 100);
+executeTest();
+var successfullyParsed = true;
index 7b66ba9..4cbae01 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-dom-x-attr.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'x' attribute of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -23,7 +23,9 @@ function executeTest() {
     foreignObjectElement.setAttribute("x", "100");
     shouldBeEqualToString("foreignObjectElement.getAttribute('x')", "100");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 10, 100);
+executeTest();
+var successfullyParsed = true;
index 9322a7b..69e5ed4 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-dom-y-attr.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'y' attribute of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -23,7 +23,9 @@ function executeTest() {
     foreignObjectElement.setAttribute("y", "80");
     shouldBeEqualToString("foreignObjectElement.getAttribute('y')", "80");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index 778b744..ccf644c 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-svgdom-height-prop.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'height' property of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -8,7 +8,7 @@ var foreignObjectElement = createSVGElement("foreignObject");
 foreignObjectElement.setAttribute("x", "100");
 foreignObjectElement.setAttribute("y", "80");
 foreignObjectElement.setAttribute("width", "150");
-foreignObjectElement.setAttribute("height", "2");
+foreignObjectElement.setAttribute("height", "0");
 
 var htmlDivElement = document.createElementNS(xhtmlNS, "xhtml:div");
 htmlDivElement.setAttribute("style", "background-color: green; color: white; text-align: center");
@@ -17,13 +17,15 @@ htmlDivElement.textContent = "Test passed";
 foreignObjectElement.appendChild(htmlDivElement);
 rootSVGElement.appendChild(foreignObjectElement);
 
-shouldBe("foreignObjectElement.height.baseVal.value", "2");
+shouldBe("foreignObjectElement.height.baseVal.value", "0");
 
 function executeTest() {
     foreignObjectElement.height.baseVal.value = "150";
     shouldBe("foreignObjectElement.height.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 150, 81);
+executeTest();
+var successfullyParsed = true;
index 37bf6b2..6b7ea87 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-svgdom-width-prop.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'width' property of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -7,7 +7,7 @@ createSVGTestCase();
 var foreignObjectElement = createSVGElement("foreignObject");
 foreignObjectElement.setAttribute("x", "100");
 foreignObjectElement.setAttribute("y", "80");
-foreignObjectElement.setAttribute("width", "2");
+foreignObjectElement.setAttribute("width", "0");
 foreignObjectElement.setAttribute("height", "150");
 
 var htmlDivElement = document.createElementNS(xhtmlNS, "xhtml:div");
@@ -17,13 +17,15 @@ htmlDivElement.textContent = "Test passed";
 foreignObjectElement.appendChild(htmlDivElement);
 rootSVGElement.appendChild(foreignObjectElement);
 
-shouldBe("foreignObjectElement.width.baseVal.value", "2");
+shouldBe("foreignObjectElement.width.baseVal.value", "0");
 
 function executeTest() {
     foreignObjectElement.width.baseVal.value = "150";
     shouldBe("foreignObjectElement.width.baseVal.value", "150");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 101, 100);
+executeTest();
+var successfullyParsed = true;
index e80ca22..5a54140 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-svgdom-x-prop.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'x' property of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -23,7 +23,9 @@ function executeTest() {
     foreignObjectElement.x.baseVal.value = "100";
     shouldBe("foreignObjectElement.x.baseVal.value", "100");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 10, 100);
+executeTest();
+var successfullyParsed = true;
index 1fd62d6..5655d8a 100644 (file)
@@ -1,5 +1,5 @@
 // [Name] SVGForeignObjectElement-svgdom-y-prop.js
-// [Expected rendering result] unclipped 'Test passed' text - and a series of PASS mesages
+// [Expected rendering result] 'Test passed' text - and a series of PASS mesages
 
 description("Tests dynamic updates of the 'y' property of the SVGForeignObjectElement object")
 createSVGTestCase();
@@ -23,7 +23,9 @@ function executeTest() {
     foreignObjectElement.y.baseVal.value = "80";
     shouldBe("foreignObjectElement.y.baseVal.value", "80");
 
-    completeTest();
+    waitForClickEvent(foreignObjectElement);
+    triggerUpdate();
 }
 
-startTest(foreignObjectElement, 150, 50);
+executeTest();
+var successfullyParsed = true;
index 846fd7f..72bc810 100644 (file)
@@ -20,44 +20,15 @@ function createSVGTestCase() {
     bodyElement.insertBefore(rootSVGElement, document.getElementById("description"));
 }
 
-function triggerUpdate(x, y) {
-    // Default x position
-    if (!x) {
-        x = 150;
-    }
-
-    // Default y position
-    if (!y) {
-        y = 200;
-    }
-
-    // Translation as we live in a XHTML document
-    x = x + rootSVGElement.offsetLeft;
-    y = y + rootSVGElement.offsetTop;
-
+function triggerUpdate() {
     if (window.eventSender) {
-        eventSender.mouseMoveTo(x, y);
+        eventSender.mouseMoveTo(150, 200);
         eventSender.mouseDown();
         eventSender.mouseUp();
     }
 }
 
-function startTest(obj, x, y) {
-    obj.setAttribute("onclick", "executeTest()");
-
-    // Assure first layout finished
-    window.setTimeout("triggerUpdate(" + x + ", " + y + ")", 0);
-}
-
-function completeTest() {
-    var script = document.createElement("script");
-
-    script.onload = function() {
-        if (window.layoutTestController)
-            layoutTestController.notifyDone();
-    };
-
-    script.src = "../../fast/js/resources/js-test-post.js";
-    successfullyParsed = true;
-    document.body.appendChild(script);
+function waitForClickEvent(obj) {
+    if (window.layoutTestController)
+        obj.setAttribute("onclick", "layoutTestController.notifyDone()");
 }
index 25dfc05..aeed90a 100644 (file)
@@ -10,5 +10,6 @@
 <p id="description"></p>
 <div id="console"></div>
 <script src="YOUR_JS_FILE_HERE"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
 </html>
index 73227fc..54366c5 100644 (file)
@@ -1,3 +1,169 @@
+2008-04-03  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by NOBODY (Rollout).
+
+        Rollout r31566 as there were a few issues i missed during review (thanks to antti for pointing them out)
+
+        * dom/Element.h:
+        * dom/NamedAttrMap.h:
+        * rendering/SVGRootInlineBox.cpp:
+        (WebCore::SVGRootInlineBox::buildLayoutInformation):
+        (WebCore::SVGRootInlineBox::buildTextChunks):
+        * svg/SVGAElement.h:
+        (WebCore::SVGAElement::contextElement):
+        * svg/SVGAltGlyphElement.h:
+        (WebCore::SVGAltGlyphElement::contextElement):
+        * svg/SVGAnimateColorElement.h:
+        * svg/SVGAnimateElement.h:
+        * svg/SVGAnimateMotionElement.h:
+        * svg/SVGAnimateTransformElement.h:
+        * svg/SVGAnimatedTemplate.h:
+        (WebCore::SVGAnimatedTemplate::associatedAttributeName):
+        (WebCore::lookupOrCreateWrapper):
+        * svg/SVGAnimationElement.h:
+        * svg/SVGCircleElement.h:
+        (WebCore::SVGCircleElement::contextElement):
+        * svg/SVGClipPathElement.h:
+        (WebCore::SVGClipPathElement::contextElement):
+        * svg/SVGComponentTransferFunctionElement.cpp:
+        * svg/SVGComponentTransferFunctionElement.h:
+        * svg/SVGCursorElement.cpp:
+        (WebCore::SVGCursorElement::SVGCursorElement):
+        * svg/SVGCursorElement.h:
+        (WebCore::SVGCursorElement::contextElement):
+        * svg/SVGDefsElement.h:
+        (WebCore::SVGDefsElement::contextElement):
+        * svg/SVGElement.cpp:
+        * svg/SVGElement.h:
+        (WebCore::SVGElement::svgAttributeChanged):
+        * svg/SVGEllipseElement.cpp:
+        (WebCore::SVGEllipseElement::SVGEllipseElement):
+        * svg/SVGEllipseElement.h:
+        (WebCore::SVGEllipseElement::contextElement):
+        * svg/SVGExternalResourcesRequired.h:
+        * svg/SVGFEBlendElement.h:
+        * svg/SVGFEColorMatrixElement.cpp:
+        * svg/SVGFEColorMatrixElement.h:
+        * svg/SVGFEComponentTransferElement.h:
+        * svg/SVGFECompositeElement.h:
+        * svg/SVGFEDiffuseLightingElement.h:
+        * svg/SVGFEDisplacementMapElement.h:
+        * svg/SVGFEFloodElement.h:
+        * svg/SVGFEGaussianBlurElement.h:
+        * svg/SVGFEImageElement.cpp:
+        * svg/SVGFEImageElement.h:
+        (WebCore::SVGFEImageElement::contextElement):
+        * svg/SVGFELightElement.h:
+        * svg/SVGFEMergeElement.h:
+        * svg/SVGFEMergeNodeElement.h:
+        * svg/SVGFEOffsetElement.h:
+        * svg/SVGFESpecularLightingElement.h:
+        * svg/SVGFETileElement.h:
+        * svg/SVGFETurbulenceElement.h:
+        * svg/SVGFilterElement.cpp:
+        (WebCore::SVGFilterElement::SVGFilterElement):
+        * svg/SVGFilterElement.h:
+        (WebCore::SVGFilterElement::contextElement):
+        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
+        * svg/SVGFilterPrimitiveStandardAttributes.h:
+        * svg/SVGFitToViewBox.cpp:
+        * svg/SVGFitToViewBox.h:
+        * svg/SVGFontElement.h:
+        * svg/SVGForeignObjectElement.cpp:
+        (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
+        * svg/SVGForeignObjectElement.h:
+        (WebCore::SVGForeignObjectElement::contextElement):
+        * svg/SVGGElement.h:
+        (WebCore::SVGGElement::contextElement):
+        * svg/SVGGradientElement.cpp:
+        * svg/SVGGradientElement.h:
+        * svg/SVGImageElement.cpp:
+        (WebCore::SVGImageElement::SVGImageElement):
+        * svg/SVGImageElement.h:
+        (WebCore::SVGImageElement::contextElement):
+        * svg/SVGLength.cpp:
+        * svg/SVGLength.h:
+        * svg/SVGLengthList.cpp:
+        * svg/SVGLengthList.h:
+        * svg/SVGLineElement.cpp:
+        (WebCore::SVGLineElement::SVGLineElement):
+        * svg/SVGLineElement.h:
+        (WebCore::SVGLineElement::contextElement):
+        * svg/SVGLinearGradientElement.cpp:
+        (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
+        (WebCore::SVGLinearGradientElement::collectGradientProperties):
+        * svg/SVGLinearGradientElement.h:
+        * svg/SVGMPathElement.h:
+        * svg/SVGMarkerElement.cpp:
+        (WebCore::SVGMarkerElement::SVGMarkerElement):
+        * svg/SVGMarkerElement.h:
+        (WebCore::SVGMarkerElement::contextElement):
+        * svg/SVGMaskElement.cpp:
+        (WebCore::SVGMaskElement::SVGMaskElement):
+        * svg/SVGMaskElement.h:
+        * svg/SVGNumberList.cpp:
+        * svg/SVGNumberList.h:
+        * svg/SVGPathElement.h:
+        (WebCore::SVGPathElement::contextElement):
+        * svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::SVGPatternElement):
+        (WebCore::SVGPatternElement::collectPatternProperties):
+        * svg/SVGPatternElement.h:
+        * svg/SVGPolyElement.h:
+        (WebCore::SVGPolyElement::contextElement):
+        * svg/SVGPreserveAspectRatio.cpp:
+        * svg/SVGPreserveAspectRatio.h:
+        * svg/SVGRadialGradientElement.cpp:
+        (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
+        (WebCore::SVGRadialGradientElement::svgAttributeChanged):
+        (WebCore::SVGRadialGradientElement::collectGradientProperties):
+        * svg/SVGRadialGradientElement.h:
+        * svg/SVGRectElement.cpp:
+        (WebCore::SVGRectElement::SVGRectElement):
+        * svg/SVGRectElement.h:
+        (WebCore::SVGRectElement::contextElement):
+        * svg/SVGSVGElement.cpp:
+        (WebCore::SVGSVGElement::SVGSVGElement):
+        (WebCore::SVGSVGElement::currentView):
+        * svg/SVGSVGElement.h:
+        * svg/SVGScriptElement.h:
+        (WebCore::SVGScriptElement::contextElement):
+        * svg/SVGSetElement.h:
+        * svg/SVGStyledElement.h:
+        * svg/SVGStyledTransformableElement.cpp:
+        * svg/SVGStyledTransformableElement.h:
+        * svg/SVGSwitchElement.h:
+        (WebCore::SVGSwitchElement::contextElement):
+        * svg/SVGSymbolElement.h:
+        (WebCore::SVGSymbolElement::contextElement):
+        * svg/SVGTRefElement.h:
+        (WebCore::SVGTRefElement::contextElement):
+        * svg/SVGTSpanElement.h:
+        * svg/SVGTextContentElement.cpp:
+        (WebCore::SVGTextContentElement::SVGTextContentElement):
+        * svg/SVGTextContentElement.h:
+        * svg/SVGTextElement.cpp:
+        * svg/SVGTextElement.h:
+        (WebCore::SVGTextElement::contextElement):
+        * svg/SVGTextPathElement.cpp:
+        (WebCore::SVGTextPathElement::SVGTextPathElement):
+        * svg/SVGTextPathElement.h:
+        (WebCore::SVGTextPathElement::contextElement):
+        * svg/SVGTextPositioningElement.cpp:
+        * svg/SVGTextPositioningElement.h:
+        * svg/SVGTransformList.cpp:
+        * svg/SVGTransformList.h:
+        * svg/SVGURIReference.h:
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::SVGUseElement):
+        * svg/SVGUseElement.h:
+        (WebCore::SVGUseElement::contextElement):
+        * svg/SVGViewElement.h:
+        (WebCore::SVGViewElement::contextElement):
+        * svg/SVGViewSpec.cpp:
+        * svg/SVGViewSpec.h:
+
 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
 
         Reviewed by Simon.
index 4b5ed6d..fbb73c4 100644 (file)
@@ -44,7 +44,7 @@ public:
 
     const AtomicString& getIDAttribute() const;
     bool hasAttribute(const QualifiedName&) const;
-    virtual const AtomicString& getAttribute(const QualifiedName&) const;
+    const AtomicString& getAttribute(const QualifiedName&) const;
     void setAttribute(const QualifiedName&, const AtomicString& value, ExceptionCode&);
     void removeAttribute(const QualifiedName&, ExceptionCode&);
 
@@ -53,7 +53,7 @@ public:
     bool hasAttribute(const String& name) const;
     bool hasAttributeNS(const String& namespaceURI, const String& localName) const;
 
-    virtual const AtomicString& getAttribute(const String& name) const;
+    const AtomicString& getAttribute(const String& name) const;
     const AtomicString& getAttributeNS(const String& namespaceURI, const String& localName) const;
 
     void setAttribute(const AtomicString& name, const AtomicString& value, ExceptionCode&);
index f0d5bbd..52e385a 100644 (file)
@@ -90,11 +90,11 @@ public:
     
     bool mapsEquivalent(const NamedAttrMap* otherMap) const;
 
+protected:
     // These functions are internal, and do no error checking.
     void addAttribute(PassRefPtr<Attribute>);
     void removeAttribute(const QualifiedName& name);
 
-protected:
     virtual void clearAttributes();
 
     void detachFromElement();
index 9b5ff63..ca60ba7 100644 (file)
@@ -319,41 +319,6 @@ FloatPoint topLeftPositionOfCharacterRange(Vector<SVGChar>::iterator it, Vector<
     return FloatPoint(lowX, lowY);
 }
 
-static inline SVGTextContentElement* nodeToTextContentElement(Node* node)
-{
-    if (!node || !node->isSVGElement())
-        return 0;
-
-    if (node->hasTagName(SVGNames::textTag)
-        || node->hasTagName(SVGNames::trefTag)
-        || node->hasTagName(SVGNames::tspanTag)
-        || node->hasTagName(SVGNames::textPathTag)
-#if ENABLE(SVG_FONTS)
-        || node->hasTagName(SVGNames::altGlyphTag)
-#endif
-        )
-         return static_cast<SVGTextContentElement*>(node);
-
-    return 0;
-}
-
-static inline SVGTextPositioningElement* nodeToTextPositioningElement(Node* node)
-{
-    if (!node || !node->isSVGElement())
-        return 0;
-
-    if (node->hasTagName(SVGNames::textTag)
-        || node->hasTagName(SVGNames::trefTag)
-        || node->hasTagName(SVGNames::tspanTag)
-#if ENABLE(SVG_FONTS)
-        || node->hasTagName(SVGNames::altGlyphTag)
-#endif
-        )
-         return static_cast<SVGTextPositioningElement*>(node);
-
-    return 0;
-}
-
 // Helper function
 static float calculateKerning(RenderObject* item)
 {
@@ -934,7 +899,7 @@ void SVGRootInlineBox::buildLayoutInformation(InlineFlowBox* start, SVGCharacter
     if (start->isRootInlineBox()) {
         ASSERT(start->object()->element()->hasTagName(SVGNames::textTag));
 
-        SVGTextPositioningElement* positioningElement = nodeToTextPositioningElement(start->object()->element());
+        SVGTextPositioningElement* positioningElement = static_cast<SVGTextPositioningElement*>(start->object()->element());
         ASSERT(positioningElement);
         ASSERT(positioningElement->parentNode());
 
@@ -954,7 +919,7 @@ void SVGRootInlineBox::buildLayoutInformation(InlineFlowBox* start, SVGCharacter
             bool isTextPath = flowBox->object()->element()->hasTagName(SVGNames::textPathTag);
 
             if (!isTextPath && !isAnchor) {
-                SVGTextPositioningElement* positioningElement = nodeToTextPositioningElement(flowBox->object()->element());
+                SVGTextPositioningElement* positioningElement = static_cast<SVGTextPositioningElement*>(flowBox->object()->element());
                 ASSERT(positioningElement);
                 ASSERT(positioningElement->parentNode());
 
@@ -963,7 +928,10 @@ void SVGRootInlineBox::buildLayoutInformation(InlineFlowBox* start, SVGCharacter
                 info.setInPathLayout(true);
 
                 // Handle text-anchor/textLength on path, which is special.
-                SVGTextContentElement* textContent = nodeToTextContentElement(flowBox->object()->element());
+                SVGTextContentElement* textContent = 0;
+                Node* node = flowBox->object()->element();
+                if (node && node->isSVGElement())
+                    textContent = static_cast<SVGTextContentElement*>(node);
                 ASSERT(textContent);
 
                 ELengthAdjust lengthAdjust = (ELengthAdjust) textContent->lengthAdjust();
@@ -1410,15 +1378,11 @@ void SVGRootInlineBox::buildTextChunks(Vector<SVGChar>& svgChars, InlineFlowBox*
             ASSERT(text);
             ASSERT(text->element());
 
-            SVGTextContentElement* textContent = nodeToTextContentElement(text->element()->parent());
-            if (!textContent) {
-                // text->element()->parent() can point to a <a> element. Ask for its parent.
-                textContent = nodeToTextContentElement(text->element()->parent()->parent());
-                ASSERT(textContent);
-            }
-
-            if (!textContent)
-                continue;
+            SVGTextContentElement* textContent = 0;
+            Node* node = text->element()->parent();
+            if (node && node->isSVGElement())
+                textContent = static_cast<SVGTextContentElement*>(node);
+            ASSERT(textContent);
 
             // Start new character range for the first chunk
             bool isFirstCharacter = info.svgTextChunks.isEmpty() && info.chunk.start == info.it && info.chunk.start == info.chunk.end;
index d5a85da..a1509fd 100644 (file)
@@ -61,11 +61,11 @@ namespace WebCore {
         virtual bool childShouldCreateRenderer(Node*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGAElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGAElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGAElement, String, String, Target, target)
     };
index d2a9a63..2361049 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+    Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
                   2004, 2005, 2006 Rob Buis <buis@kde.org>
     Copyright (C) 2008 Apple Computer, Inc.
 
 
 #ifndef SVGAltGlyphElement_h
 #define SVGAltGlyphElement_h
-
 #if ENABLE(SVG_FONTS)
+
 #include "AtomicString.h"
 #include "SVGTextPositioningElement.h"
 #include "SVGURIReference.h"
 
-namespace WebCore {
-
+namespace WebCore
+{
     class SVGGlyphElement;
 
-    class SVGAltGlyphElement : public SVGTextPositioningElement,
-                               public SVGURIReference
+    class SVGAltGlyphElement : public SVGTextPositioningElement, public SVGURIReference
     {
     public:
         SVGAltGlyphElement(const QualifiedName&, Document*);
@@ -49,10 +48,12 @@ namespace WebCore {
         SVGGlyphElement* glyphElement() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
     };
 
 } // namespace WebCore
 
 #endif // ENABLE(SVG)
 #endif
+
+// vim:ts=4:noet
index b8947da..1a9a841 100644 (file)
@@ -42,7 +42,7 @@ namespace WebCore {
         virtual void applyAnimatedValueToElement();
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         
         virtual bool updateAnimatedValue(EAnimationMode, float timePercentage, unsigned valueIndex, float percentagePast);
         virtual bool calculateFromAndToValues(EAnimationMode, unsigned valueIndex);
index eabb36d..2b7cf14 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
         virtual ~SVGAnimateElement();
     
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         
         virtual bool updateAnimatedValue(EAnimationMode, float timePercentage, unsigned valueIndex, float percentagePast) { return false; }
         virtual bool calculateFromAndToValues(EAnimationMode, unsigned valueIndex) { return false; }
index 5d27527..6d9632c 100644 (file)
@@ -44,7 +44,7 @@ namespace WebCore {
         Path animationPath();
         
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         
         virtual bool updateAnimatedValue(EAnimationMode, float timePercentage, unsigned valueIndex, float percentagePast);
         virtual bool calculateFromAndToValues(EAnimationMode, unsigned valueIndex);
index 2ba51dd..520e927 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
         virtual void applyAnimatedValueToElement();
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         
         virtual bool updateAnimatedValue(EAnimationMode, float timePercentage, unsigned valueIndex, float percentagePast);
         virtual bool calculateFromAndToValues(EAnimationMode, unsigned valueIndex);
index e20856e..20c508e 100644 (file)
 #define SVGAnimatedTemplate_h
 
 #if ENABLE(SVG)
+#include <wtf/RefCounted.h>
 #include "AtomicString.h"
-#include "FloatRect.h"
 #include "Attribute.h"
-#include "SVGAngle.h"
-#include "SVGLength.h"
-#include "SVGLengthList.h"
-#include "SVGNumberList.h"
-#include "SVGTransformList.h"
-#include "SVGPreserveAspectRatio.h"
-
-#include <wtf/RefCounted.h>
 
 namespace WebCore {
 
+    class FloatRect;
+    class SVGAngle;
     class SVGElement;
+    class SVGLength;
+    class SVGLengthList;
+    class SVGNumberList;
+    class SVGPreserveAspectRatio;
+    class SVGTransformList;
+    class String;
+    class QualifiedName;
 
     struct SVGAnimatedTypeWrapperKey {            
         // Empty value
@@ -118,8 +119,6 @@ namespace WebCore {
         virtual BareType animVal() const = 0;
         virtual void setAnimVal(BareType newAnimVal) = 0;
 
-        virtual AtomicString toString() const { ASSERT_NOT_REACHED(); return AtomicString(); }
-
         typedef HashMap<SVGAnimatedTypeWrapperKey, SVGAnimatedTemplate<BareType>*, SVGAnimatedTypeWrapperKeyHash, SVGAnimatedTypeWrapperKeyHashTraits > ElementToWrapperMap;
         typedef typename ElementToWrapperMap::const_iterator ElementToWrapperMapIterator;
 
@@ -128,7 +127,7 @@ namespace WebCore {
             static ElementToWrapperMap* s_wrapperCache = new ElementToWrapperMap;                
             return s_wrapperCache;
         }
-
+        
         static void forgetWrapper(SVGAnimatedTemplate<BareType>* wrapper)
         {
             ElementToWrapperMap* cache = wrapperCache();
@@ -142,196 +141,36 @@ namespace WebCore {
             }
         }
 
-        const QualifiedName& associatedAttributeName() const { return m_associatedAttributeName; }
+       const QualifiedName& associatedAttributeName() const { return m_associatedAttributeName; }
 
     private:
-        const QualifiedName& m_associatedAttributeName;
+       const QualifiedName& m_associatedAttributeName;
     };
 
     template <class Type, class SVGElementSubClass>
-    Type* lookupOrCreateWrapper(SVGElementSubClass* element, const QualifiedName& domAttrName,
-                                const AtomicString& attrIdentifier, void (SVGElement::*synchronizer)()) {
+    Type* lookupOrCreateWrapper(const SVGElementSubClass* element, const QualifiedName& domAttrName, const AtomicString& attrIdentifier) {
         SVGAnimatedTypeWrapperKey key(element, attrIdentifier);
         Type* wrapper = static_cast<Type*>(Type::wrapperCache()->get(key));
-        if (wrapper)
-            return wrapper;
-
-        wrapper = new Type(element, domAttrName);
-        element->addSVGPropertySynchronizer(domAttrName, synchronizer);
-
-        Type::wrapperCache()->set(key, wrapper);
+        if (!wrapper) {
+            wrapper = new Type(element, domAttrName);
+            Type::wrapperCache()->set(key, wrapper);
+        }
         return wrapper;
     }
 
-    // Define SVG 1.1 standard animated properties (these SVGAnimated* classes area slo able to convert themselves to strings)
-    // Note: If we'd just specialize the SVGAnimatedTemplate<> we'd have to duplicate a lot of code above. Hence choosing
-    // the solution, to inherit from the SVGAnimatedTemplate<> classes, and implementing the virtual toString() function.
-    class SVGAnimatedAngle : public SVGAnimatedTemplate<SVGAngle*> {
-    public:
-        SVGAnimatedAngle(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGAngle*>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            if (SVGAngle* angle = baseVal())
-                return angle->valueAsString();
-
-            return nullAtom;
-        }
-    };
-
-    class SVGAnimatedBoolean : public SVGAnimatedTemplate<bool> {
-    public:
-        SVGAnimatedBoolean(const QualifiedName& attributeName) : SVGAnimatedTemplate<bool>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return baseVal() ? "true" : "false";
-        }
-    };
-
-    class SVGAnimatedEnumeration : public SVGAnimatedTemplate<int> {
-    public:
-        SVGAnimatedEnumeration(const QualifiedName& attributeName) : SVGAnimatedTemplate<int>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return String::number(baseVal());
-        }
-    };
-
-    class SVGAnimatedInteger : public SVGAnimatedTemplate<long> {
-    public:
-        SVGAnimatedInteger(const QualifiedName& attributeName) : SVGAnimatedTemplate<long>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return String::number(baseVal());
-        }
-    };
-
-    class SVGAnimatedLength : public SVGAnimatedTemplate<SVGLength> {
-    public:
-        SVGAnimatedLength(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGLength>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return baseVal().valueAsString();
-        }
-    };
-
-    class SVGAnimatedLengthList : public SVGAnimatedTemplate<SVGLengthList*> {
-    public:
-        SVGAnimatedLengthList(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGLengthList*>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            if (SVGLengthList* list = baseVal())
-                return list->valueAsString();
-
-            return nullAtom;
-        }
-    };
-
-    class SVGAnimatedNumber : public SVGAnimatedTemplate<float> {
-    public:
-        SVGAnimatedNumber(const QualifiedName& attributeName) : SVGAnimatedTemplate<float>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return String::number(baseVal());
-        }
-    };
-
-    class SVGAnimatedNumberList : public SVGAnimatedTemplate<SVGNumberList*> {
-    public:
-        SVGAnimatedNumberList(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGNumberList*>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            if (SVGNumberList* list = baseVal())
-                return list->valueAsString();
-
-            return nullAtom;
-        }
-    };
-
-    class SVGAnimatedPreserveAspectRatio : public SVGAnimatedTemplate<SVGPreserveAspectRatio*> {
-    public:
-        SVGAnimatedPreserveAspectRatio(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGPreserveAspectRatio*>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            if (SVGPreserveAspectRatio* ratio = baseVal())
-                return ratio->valueAsString();
-
-            return nullAtom;
-        }
-    };
-
-    class SVGAnimatedRect : public SVGAnimatedTemplate<FloatRect> {
-    public:
-        SVGAnimatedRect(const QualifiedName& attributeName) : SVGAnimatedTemplate<FloatRect>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            FloatRect rect = baseVal();
-            return String::format("%f %f %f %f", rect.x(), rect.y(), rect.width(), rect.height());
-        }
-    };
-
-    class SVGAnimatedString : public SVGAnimatedTemplate<String> {
-    public:
-        SVGAnimatedString(const QualifiedName& attributeName) : SVGAnimatedTemplate<String>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            return baseVal();
-        }
-    };
-
-    class SVGAnimatedTransformList : public SVGAnimatedTemplate<SVGTransformList*> {
-    public:
-        SVGAnimatedTransformList(const QualifiedName& attributeName) : SVGAnimatedTemplate<SVGTransformList*>(attributeName) { }
-
-        virtual AtomicString toString() const
-        {
-            if (SVGTransformList* list = baseVal())
-                return list->valueAsString();
-
-            return nullAtom;
-        }
-    };
-
-    // Helper for ANIMATED_PROPERTY* macros, whose helper classes SVGAnimatedTemplate##UpperProperty.. can't
-    // inherit from SVGAnimatedTemplate<xxx> as they rely on a working toString() implementation. So instead
-    // create a new helper type SVGAnimatedType, which gets specialized for the support datatypes and in turn inherits
-    // from the SVGAnimatedTEmplate<xxx> macros. Looks a bit complicated, but makes sense if you check the macros.
-    template<typename T>
-    class SVGAnimatedType : public SVGAnimatedTemplate<T> {
-    public:
-        SVGAnimatedType(const QualifiedName& attributeName) : SVGAnimatedTemplate<T>(attributeName) { ASSERT_NOT_REACHED(); }
-    };
-
-#define ADD_ANIMATED_TYPE_HELPER(DataType, SuperClass) \
-    template<> \
-    class SVGAnimatedType<DataType> : public SuperClass { \
-    public: \
-        SVGAnimatedType(const QualifiedName& attributeName) : SuperClass(attributeName) { } \
-    };
-
-    ADD_ANIMATED_TYPE_HELPER(SVGAngle*, SVGAnimatedAngle)
-    ADD_ANIMATED_TYPE_HELPER(bool, SVGAnimatedBoolean)
-    ADD_ANIMATED_TYPE_HELPER(int, SVGAnimatedEnumeration)
-    ADD_ANIMATED_TYPE_HELPER(long, SVGAnimatedInteger)
-    ADD_ANIMATED_TYPE_HELPER(SVGLength, SVGAnimatedLength)
-    ADD_ANIMATED_TYPE_HELPER(SVGLengthList*, SVGAnimatedLengthList)
-    ADD_ANIMATED_TYPE_HELPER(float, SVGAnimatedNumber)
-    ADD_ANIMATED_TYPE_HELPER(SVGNumberList*, SVGAnimatedNumberList)
-    ADD_ANIMATED_TYPE_HELPER(SVGPreserveAspectRatio*, SVGAnimatedPreserveAspectRatio)
-    ADD_ANIMATED_TYPE_HELPER(FloatRect, SVGAnimatedRect)
-    ADD_ANIMATED_TYPE_HELPER(String, SVGAnimatedString)
-    ADD_ANIMATED_TYPE_HELPER(SVGTransformList*, SVGAnimatedTransformList)
-
+    // Common type definitions, to ease IDL generation...
+    typedef SVGAnimatedTemplate<SVGAngle*> SVGAnimatedAngle;
+    typedef SVGAnimatedTemplate<bool> SVGAnimatedBoolean;
+    typedef SVGAnimatedTemplate<int> SVGAnimatedEnumeration;
+    typedef SVGAnimatedTemplate<long> SVGAnimatedInteger;
+    typedef SVGAnimatedTemplate<SVGLength> SVGAnimatedLength;
+    typedef SVGAnimatedTemplate<SVGLengthList*> SVGAnimatedLengthList;
+    typedef SVGAnimatedTemplate<float> SVGAnimatedNumber;
+    typedef SVGAnimatedTemplate<SVGNumberList*> SVGAnimatedNumberList; 
+    typedef SVGAnimatedTemplate<SVGPreserveAspectRatio*> SVGAnimatedPreserveAspectRatio;
+    typedef SVGAnimatedTemplate<FloatRect> SVGAnimatedRect;
+    typedef SVGAnimatedTemplate<String> SVGAnimatedString;
+    typedef SVGAnimatedTemplate<SVGTransformList*> SVGAnimatedTransformList;
 }
 
 #endif // ENABLE(SVG)
index 62ad1f8..6517d87 100644 (file)
@@ -151,8 +151,7 @@ namespace WebCore {
         static void parseKeyNumbers(Vector<float>& keyNumbers, const String& value);
         static void parseBeginOrEndValue(double& number, const String& value);
 
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGAnimationElement)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGAnimationElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         bool m_connectedToTimer : 1;
         
index b41bec5..2e0e8c8 100644 (file)
@@ -47,11 +47,11 @@ namespace WebCore {
         virtual Path toPathData() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         virtual bool hasRelativeValues() const;
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGCircleElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGLength, SVGLength, Cx, cx)
         ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGLength, SVGLength, Cy, cy)
index bce0d6b..845aea6 100644 (file)
@@ -51,10 +51,11 @@ namespace WebCore {
         virtual SVGResource* canvasResource();
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGClipPathElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+
         ANIMATED_PROPERTY_DECLARATIONS(SVGClipPathElement, int, int, ClipPathUnits, clipPathUnits)
 
         RefPtr<SVGResourceClipper> m_clipper;
index 3aa6c59..e0872a7 100644 (file)
@@ -48,7 +48,7 @@ SVGComponentTransferFunctionElement::~SVGComponentTransferFunctionElement()
 }
 
 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, int, Enumeration, enumeration, Type, type, SVGNames::typeAttr, m_type)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGComponentTransferFunctionElement, SVGNumberList, NumberList, numberList, TableValues, tableValues, SVGNames::tableValuesAttr, m_tableValues)
+ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, SVGNumberList*, NumberList, numberList, TableValues, tableValues, SVGNames::tableValuesAttr, m_tableValues.get())
 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Number, number, Slope, slope, SVGNames::slopeAttr, m_slope)
 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Number, number, Intercept, intercept, SVGNames::interceptAttr, m_intercept)
 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Number, number, Amplitude, amplitude, SVGNames::amplitudeAttr, m_amplitude)
index d3d4e32..eadff18 100644 (file)
@@ -44,7 +44,6 @@ namespace WebCore
         SVGComponentTransferFunction transferFunction() const;
 
     private:
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGComponentTransferFunctionElement)
         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, int, int, Type, type)
         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGNumberList*, RefPtr<SVGNumberList>, TableValues, tableValues)
         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, float, Slope, slope)
index 2dad6b8..ec1c994 100644 (file)
@@ -36,8 +36,8 @@ SVGCursorElement::SVGCursorElement(const QualifiedName& tagName, Document* doc)
     , SVGTests()
     , SVGExternalResourcesRequired()
     , SVGURIReference()
-    , m_x(SVGLength(0, LengthModeWidth))
-    , m_y(SVGLength(0, LengthModeHeight))
+    , m_x(0, LengthModeWidth)
+    , m_y(0, LengthModeHeight)
 {
 }
 
index 63996e4..a646a9a 100644 (file)
@@ -51,13 +51,12 @@ namespace WebCore {
         virtual void getSubresourceAttributeStrings(Vector<String>&) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGCursorElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGCursorElement, SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
 
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGCursorElement)
         ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGLength, SVGLength, Y, y)
 
index 85c796d..8113a99 100644 (file)
@@ -44,10 +44,10 @@ namespace WebCore {
         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
     
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGDefsElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
     };
 
 } // namespace WebCore
index e6c6746..41a62c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+    Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
                   2004, 2005, 2006 Rob Buis <buis@kde.org>
 
     This file is part of the KDE project
@@ -254,18 +254,6 @@ void SVGElement::attributeChanged(Attribute* attr, bool preserveDecls)
     svgAttributeChanged(attr->name());
 }
 
-const AtomicString& SVGElement::getAttribute(const String& name) const
-{
-    invokeSVGPropertySynchronizer(name.impl());
-    return StyledElement::getAttribute(name);
-}
-
-const AtomicString& SVGElement::getAttribute(const QualifiedName& name) const
-{
-    invokeSVGPropertySynchronizer(name.localName().impl());
-    return StyledElement::getAttribute(name);
-}
-
 }
 
 #endif // ENABLE(SVG)
index cf80957..a4672be 100644 (file)
 #include "SVGDocumentExtensions.h"
 #include "SVGNames.h"
 
-// Helper class for ANIMATED_PROPERTY* macros
-template<typename StoredType>
-class LazilyUpdatedType {
-public:
-    LazilyUpdatedType()
-        : value()
-        , dirty(false)
-    {
-    }
-
-    LazilyUpdatedType(const StoredType& other)
-        : value(other)
-        , dirty(false)
-    {
-    }
-
-    LazilyUpdatedType(const LazilyUpdatedType& other)
-        : value(other.value)
-        , dirty(other.dirty)
-    {
-    }
-
-    StoredType& operator=(const StoredType& other)
-    {
-        value = other;
-        dirty = true;
-        return value;
-    }
-
-    LazilyUpdatedType& operator=(const LazilyUpdatedType& other)
-    {
-        value = other.value;
-        dirty = other.dirty;
-        return (*this);
-    }
-
-    bool operator==(const StoredType& other) const
-    {
-        return value == other.value;
-    }
-
-    bool operator!=(const StoredType& other) const
-    {
-        return !((*this) == other);
-    }
-
-    bool operator==(const LazilyUpdatedType& other) const
-    {
-        return dirty == other.dirty && value == other.value;
-    }
-
-    bool operator!=(const LazilyUpdatedType& other) const
-    {
-        return !((*this) == other);
-    }
-
-    operator StoredType() const
-    {
-        return value;    
-    }
-
-    StoredType value;
-    bool dirty;
-};
-
 #define ANIMATED_PROPERTY_EMPTY_DECLARATIONS(BareType, NullType, UpperProperty, LowerProperty) \
 public: \
     virtual BareType LowerProperty() const { ASSERT_NOT_REACHED(); return NullType; } \
     virtual void set##UpperProperty(BareType newValue) { ASSERT_NOT_REACHED(); }\
     virtual BareType LowerProperty##BaseValue() const { ASSERT_NOT_REACHED(); return NullType; } \
     virtual void set##UpperProperty##BaseValue(BareType newValue) { ASSERT_NOT_REACHED(); } \
-    virtual void synchronize##UpperProperty() { ASSERT_NOT_REACHED(); } \
-    virtual SVGElement::AnimatedPropertySynchronizer synchronizerFor##UpperProperty() { ASSERT_NOT_REACHED(); return 0; } \
-    virtual void start##UpperProperty() { ASSERT_NOT_REACHED(); } \
+    virtual void start##UpperProperty() const { ASSERT_NOT_REACHED(); } \
     virtual void stop##UpperProperty() { ASSERT_NOT_REACHED(); }
 
-#define ANIMATED_PROPERTY_FORWARD_DECLARATIONS(ClassType, ForwardClass, BareType, UpperProperty, LowerProperty) \
+#define ANIMATED_PROPERTY_FORWARD_DECLARATIONS(ForwardClass, BareType, UpperProperty, LowerProperty) \
 public: \
     virtual BareType LowerProperty() const { return ForwardClass::LowerProperty(); } \
     virtual void set##UpperProperty(BareType newValue) { ForwardClass::set##UpperProperty(newValue); } \
     virtual BareType LowerProperty##BaseValue() const { return ForwardClass::LowerProperty##BaseValue(); } \
     virtual void set##UpperProperty##BaseValue(BareType newValue) { ForwardClass::set##UpperProperty##BaseValue(newValue); } \
-    virtual void synchronize##UpperProperty() { ForwardClass::synchronize##UpperProperty(); } \
-    virtual SVGElement::AnimatedPropertySynchronizer synchronizerFor##UpperProperty() { return static_cast<SVGElement::AnimatedPropertySynchronizer>(&ClassType::synchronize##UpperProperty); } \
-    virtual void start##UpperProperty() { ForwardClass::start##UpperProperty(); } \
+    virtual void start##UpperProperty() const { ForwardClass::start##UpperProperty(); } \
     virtual void stop##UpperProperty() { ForwardClass::stop##UpperProperty(); }
 
 #define ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(ClassType, ClassStorageType, BareType, StorageType, UpperProperty, LowerProperty) \
 class SVGAnimatedTemplate##UpperProperty \
-: public SVGAnimatedType<BareType> \
+: public SVGAnimatedTemplate<BareType> \
 { \
 public: \
-    SVGAnimatedTemplate##UpperProperty(ClassType*, const QualifiedName&); \
+    SVGAnimatedTemplate##UpperProperty(const ClassType*, const QualifiedName&); \
     virtual ~SVGAnimatedTemplate##UpperProperty() { } \
     virtual BareType baseVal() const; \
     virtual void setBaseVal(BareType); \
@@ -138,36 +69,16 @@ public: \
     void set##UpperProperty(BareType); \
     BareType LowerProperty##BaseValue() const; \
     void set##UpperProperty##BaseValue(BareType); \
-    PassRefPtr<SVGAnimatedTemplate##UpperProperty> LowerProperty##Animated(); \
-    void synchronize##UpperProperty(); \
-    SVGElement::AnimatedPropertySynchronizer synchronizerFor##UpperProperty(); \
-    void start##UpperProperty(); \
+    PassRefPtr<SVGAnimatedTemplate##UpperProperty> LowerProperty##Animated() const; \
+    void start##UpperProperty() const; \
     void stop##UpperProperty(); \
 \
 private: \
-    LazilyUpdatedType<StorageType> m_##LowerProperty;
-
-#define ANIMATED_PROPERTY_START_DECLARATIONS(ClassType) \
-public: \
-    virtual void invokeSVGPropertySynchronizer(StringImpl* stringImpl) const \
-    { \
-        if (m_svgPropertyUpdateMap.contains(stringImpl)) { \
-            SVGElement::AnimatedPropertySynchronizer updateMethod = m_svgPropertyUpdateMap.get(stringImpl); \
-            (const_cast<ClassType*>(this)->*updateMethod)(); \
-        } \
-    } \
-\
-    virtual void addSVGPropertySynchronizer(const QualifiedName& attrName, SVGElement::AnimatedPropertySynchronizer method) \
-    { \
-        m_svgPropertyUpdateMap.set(attrName.localName().impl(), method); \
-    } \
-\
-private: \
-    HashMap<StringImpl*, SVGElement::AnimatedPropertySynchronizer> m_svgPropertyUpdateMap;
+    StorageType m_##LowerProperty;
 
 #define ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassType, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter, ContextElement) \
-ClassName::SVGAnimatedTemplate##UpperProperty::SVGAnimatedTemplate##UpperProperty(ClassType* element, const QualifiedName& attributeName) \
-: SVGAnimatedType<BareType>(attributeName), m_element(element) { } \
+ClassName::SVGAnimatedTemplate##UpperProperty::SVGAnimatedTemplate##UpperProperty(const ClassType* element, const QualifiedName& attributeName) \
+: SVGAnimatedTemplate<BareType>(attributeName), m_element(const_cast<ClassType*>(element)) { } \
 \
 BareType ClassName::SVGAnimatedTemplate##UpperProperty::baseVal() const \
 { \
@@ -195,67 +106,46 @@ void ClassName::set##UpperProperty(BareType newValue) \
 } \
 BareType ClassName::LowerProperty##BaseValue() const \
 { \
-    SVGElement* context = ContextElement; \
+    const SVGElement* context = ContextElement; \
     ASSERT(context); \
     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
-    if (extensions && extensions->hasBaseValue<BareType>(context, AttrName.localName())) \
-         return extensions->baseValue<BareType>(context, AttrName.localName()); \
+    if (extensions && extensions->hasBaseValue<BareType>(context, AttrName)) \
+         return extensions->baseValue<BareType>(context, AttrName); \
     return LowerProperty(); \
 } \
-\
 void ClassName::set##UpperProperty##BaseValue(BareType newValue) \
 { \
-    SVGElement* context = ContextElement; \
+    const SVGElement* context = ContextElement; \
     ASSERT(context); \
     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
-    if (extensions && extensions->hasBaseValue<BareType>(context, AttrName.localName())) { \
-        extensions->setBaseValue<BareType>(context, AttrName.localName(), newValue); \
+    if (extensions && extensions->hasBaseValue<BareType>(context, AttrName)) { \
+        extensions->setBaseValue<BareType>(context, AttrName, newValue); \
         return; \
     } \
     /* Only update stored property, if not animating */ \
     set##UpperProperty(newValue); \
 } \
 \
-void ClassName::synchronize##UpperProperty() \
-{ \
-    if (!m_##LowerProperty.dirty) \
-        return; \
-    SVGElement* context = ContextElement; \
-    ASSERT(context); \
-    RefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> animatedClass(LowerProperty##Animated()); \
-    AtomicString value(animatedClass->toString()); \
-    NamedAttrMap* namedAttrMap = context->attributes(false); \
-    ASSERT(!namedAttrMap->isReadOnlyNode()); \
-    Attribute* old = namedAttrMap->getAttributeItem(AttrName); \
-    if (old && value.isNull()) \
-        namedAttrMap->removeAttribute(old->name()); \
-    else if (!old && !value.isNull()) \
-        namedAttrMap->addAttribute(context->createAttribute(QualifiedName(nullAtom, AttrName.localName(), nullAtom), value.impl())); \
-    else if (old && !value.isNull()) \
-        old->setValue(value); \
-    m_##LowerProperty.dirty = false; \
-} \
-\
-void ClassName::start##UpperProperty() \
+void ClassName::start##UpperProperty() const \
 { \
-    SVGElement* context = ContextElement; \
+    const SVGElement* context = ContextElement; \
     ASSERT(context); \
     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
     if (extensions) { \
-        ASSERT(!extensions->hasBaseValue<BareType>(context, AttrName.localName())); \
-        extensions->setBaseValue<BareType>(context, AttrName.localName(), LowerProperty()); \
+        ASSERT(!extensions->hasBaseValue<BareType>(context, AttrName)); \
+        extensions->setBaseValue<BareType>(context, AttrName, LowerProperty()); \
     } \
 } \
 \
 void ClassName::stop##UpperProperty() \
 { \
-    SVGElement* context = ContextElement; \
+    const SVGElement* context = ContextElement; \
     ASSERT(context); \
     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
     if (extensions) { \
-        ASSERT(extensions->hasBaseValue<BareType>(context, AttrName.localName())); \
-        set##UpperProperty(extensions->baseValue<BareType>(context, AttrName.localName())); \
-        extensions->removeBaseValue<BareType>(context, AttrName.localName()); \
+        ASSERT(extensions->hasBaseValue<BareType>(context, AttrName)); \
+        set##UpperProperty(extensions->baseValue<BareType>(context, AttrName)); \
+        extensions->removeBaseValue<BareType>(context, AttrName); \
     } \
 }
 
@@ -267,44 +157,24 @@ ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(SVGElement, RefPtr<SVGElement>, BareType
 ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(ClassName, RefPtr<ClassName>, BareType, StorageType, UpperProperty, LowerProperty)
 
 #define ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter) \
-ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, SVGElement, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter, const_cast<ClassName*>(this)->contextElement()) \
-PassRefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> ClassName::LowerProperty##Animated() \
+ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, SVGElement, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName.localName(), StorageGetter, contextElement()) \
+PassRefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> ClassName::LowerProperty##Animated() const \
 { \
-    SVGElement* context = contextElement(); \
+    const SVGElement* context = contextElement(); \
     ASSERT(context); \
-    return lookupOrCreateWrapper<ClassName::SVGAnimatedTemplate##UpperProperty, SVGElement>(context, AttrName, AttrName.localName(), context->synchronizerFor##UpperProperty()); \
-} \
-\
-SVGElement::AnimatedPropertySynchronizer ClassName::synchronizerFor##UpperProperty() \
-{ \
-    ASSERT_NOT_REACHED(); \
-    return 0; \
+    return lookupOrCreateWrapper<ClassName::SVGAnimatedTemplate##UpperProperty, SVGElement>(context, AttrName, AttrName.localName()); \
 }
 
-#define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CONTEXT(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter) \
-ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(ClassName, BareType*, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, static_cast<RefPtr<BareType> >(StorageGetter).get())
-
 #define ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, AttrIdentifier, StorageGetter) \
-ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter, const_cast<ClassName*>(this)) \
-PassRefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> ClassName::LowerProperty##Animated() \
+ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName.localName(), StorageGetter, this) \
+PassRefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> ClassName::LowerProperty##Animated() const \
 { \
-    return lookupOrCreateWrapper<ClassName::SVGAnimatedTemplate##UpperProperty, ClassName>(this, AttrName, AttrIdentifier, synchronizerFor##UpperProperty()); \
-} \
-\
-SVGElement::AnimatedPropertySynchronizer ClassName::synchronizerFor##UpperProperty() \
-{ \
-    return static_cast<SVGElement::AnimatedPropertySynchronizer>(&ClassName::synchronize##UpperProperty); \
+    return lookupOrCreateWrapper<ClassName::SVGAnimatedTemplate##UpperProperty, ClassName>(this, AttrName, AttrIdentifier); \
 }
 
-#define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CUSTOM_IDENTIFIER(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, AttrIdentifier, StorageGetter) \
-ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(ClassName, BareType*, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, AttrIdentifier, static_cast<RefPtr<BareType> >(StorageGetter).get())
-
 #define ANIMATED_PROPERTY_DEFINITIONS(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter) \
 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, AttrName.localName(), StorageGetter)
 
-#define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(ClassName, BareType, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, StorageGetter) \
-ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(ClassName, BareType*, UpperClassName, LowerClassName, UpperProperty, LowerProperty, AttrName, AttrName.localName(), static_cast<RefPtr<BareType> >(StorageGetter).get())
-
 namespace WebCore {
 
     class SVGPreserveAspectRatio;
@@ -350,17 +220,12 @@ namespace WebCore {
         virtual void insertedIntoDocument();
         virtual void buildPendingResource() { }
 
-        virtual const AtomicString& getAttribute(const String&) const;
-        virtual const AtomicString& getAttribute(const QualifiedName&) const;
-
         virtual void svgAttributeChanged(const QualifiedName&) { }
         virtual void attributeChanged(Attribute*, bool preserveDecls = false);
 
         void sendSVGLoadEventIfPossible(bool sendParentLoadEvents = false);
-        virtual bool dispatchEvent(PassRefPtr<Event> e, ExceptionCode& ec, bool tempEvent = false);
 
         // Forwarded properties (declared/defined anywhere else in the inheritance structure)
-        typedef void (SVGElement::*AnimatedPropertySynchronizer)();
 
         // -> For SVGURIReference
         ANIMATED_PROPERTY_EMPTY_DECLARATIONS(String, String(), Href, href)
@@ -372,8 +237,7 @@ namespace WebCore {
         // -> For SVGExternalResourcesRequired
         ANIMATED_PROPERTY_EMPTY_DECLARATIONS(bool, false, ExternalResourcesRequired, externalResourcesRequired)
 
-        virtual void invokeSVGPropertySynchronizer(StringImpl*) const { }
-        virtual void addSVGPropertySynchronizer(const QualifiedName&, AnimatedPropertySynchronizer) { ASSERT_NOT_REACHED(); }
+        virtual bool dispatchEvent(PassRefPtr<Event> e, ExceptionCode& ec, bool tempEvent = false);
 
     private:
         void addSVGEventListener(const AtomicString& eventType, const Attribute*);
index a8d1bc4..0f32ed2 100644 (file)
@@ -37,10 +37,10 @@ SVGEllipseElement::SVGEllipseElement(const QualifiedName& tagName, Document* doc
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_cx(SVGLength(this, LengthModeWidth))
-    , m_cy(SVGLength(this, LengthModeHeight))
-    , m_rx(SVGLength(this, LengthModeWidth))
-    , m_ry(SVGLength(this, LengthModeHeight))
+    , m_cx(this, LengthModeWidth)
+    , m_cy(this, LengthModeHeight)
+    , m_rx(this, LengthModeWidth)
+    , m_ry(this, LengthModeHeight)
 {
 }    
 
index 473edb6..01e8ef5 100644 (file)
@@ -47,11 +47,11 @@ namespace WebCore {
         virtual Path toPathData() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         virtual bool hasRelativeValues() const;
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGEllipseElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
  
         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, SVGLength, Cx, cx)
         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, SVGLength, Cy, cy)
index ca207b2..4078794 100644 (file)
@@ -50,7 +50,7 @@ namespace WebCore {
         bool isKnownAttribute(const QualifiedName&);
 
     protected:
-        virtual SVGElement* contextElement() = 0;
+        virtual const SVGElement* contextElement() const = 0;
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(SVGExternalResourcesRequired, bool, bool, ExternalResourcesRequired, externalResourcesRequired)
index 2d55cd9..88d2e6f 100644 (file)
@@ -39,7 +39,7 @@ namespace WebCore
         virtual SVGFEBlend* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In1, in1)
index 60ef0cf..d0648a8 100644 (file)
@@ -46,7 +46,7 @@ SVGFEColorMatrixElement::~SVGFEColorMatrixElement()
 
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, String, String, string, In1, in1, SVGNames::inAttr, m_in1)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, int, Enumeration, enumeration, Type, type, SVGNames::typeAttr, m_type)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGFEColorMatrixElement, SVGNumberList, NumberList, numberList, Values, values, SVGNames::valuesAttr, m_values)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, SVGNumberList*, NumberList, numberList, Values, values, SVGNames::valuesAttr, m_values.get())
 
 void SVGFEColorMatrixElement::parseMappedAttribute(MappedAttribute* attr)
 {
index bea19c6..0015002 100644 (file)
@@ -41,7 +41,7 @@ namespace WebCore
         virtual SVGFEColorMatrix* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, String, String, In1, in1)
index f52a54b..74827c5 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore
         virtual SVGFEComponentTransfer* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, String, String, In1, in1)
index 2426617..24fe6ae 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore
         virtual SVGFEComposite* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, String, In1, in1)
index 9f80cc9..4d038b3 100644 (file)
@@ -39,7 +39,7 @@ namespace WebCore {
         virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, String, String, In1, in1)
index 0370e78..7f6a109 100644 (file)
@@ -37,7 +37,7 @@ namespace WebCore {
         virtual SVGFEDisplacementMap* filterEffect(SVGResourceFilter*) const;
         
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In1, in1)
index 9010744..9094d5e 100644 (file)
@@ -39,7 +39,7 @@ namespace WebCore
         virtual SVGFEFlood* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, String, String, In1, in1)
index 28ea8e6..c1e9292 100644 (file)
@@ -42,7 +42,7 @@ namespace WebCore
         virtual SVGFEGaussianBlur* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, String, String, In1, in1)
index ac1e80d..052717d 100644 (file)
@@ -54,7 +54,7 @@ SVGFEImageElement::~SVGFEImageElement()
         m_cachedImage->deref(this);
 }
 
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGFEImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio)
+ANIMATED_PROPERTY_DEFINITIONS(SVGFEImageElement, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio.get())
 
 void SVGFEImageElement::parseMappedAttribute(MappedAttribute* attr)
 {
index 2da86a7..e977937 100644 (file)
@@ -52,11 +52,11 @@ namespace WebCore {
         virtual SVGFEImage* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFEImageElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFEImageElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
  
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEImageElement, SVGPreserveAspectRatio*, RefPtr<SVGPreserveAspectRatio>, PreserveAspectRatio, preserveAspectRatio)
 
@@ -68,3 +68,5 @@ namespace WebCore {
 
 #endif // ENABLE(SVG)
 #endif
+
+// vim:ts=4:noet
index 673472d..e0b28e7 100644 (file)
@@ -40,7 +40,6 @@ namespace WebCore
         virtual void parseMappedAttribute(MappedAttribute*);
 
     private:
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGFELightElement)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, float, Azimuth, azimuth)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, float, Elevation, elevation)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, float, X, x)
index fffb39c..59898bb 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore
         virtual SVGFEMerge* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         mutable SVGFEMerge* m_filterEffect;
index 68ca5f3..c601fde 100644 (file)
@@ -37,10 +37,9 @@ namespace WebCore
         virtual void parseMappedAttribute(MappedAttribute*);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGFEMergeNodeElement)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEMergeNodeElement, String, String, In1, in1)
     };
 
index 8794bb8..01ee9ea 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore
         virtual SVGFEOffset* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, String, String, In1, in1)
index c169884..435882e 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore
         virtual SVGFESpecularLighting* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, String, String, In1, in1)
index d71710d..256e8a0 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore
         virtual SVGFETile* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, String, In1, in1)
index 963d1c5..a62bf15 100644 (file)
@@ -45,7 +45,7 @@ namespace WebCore
         virtual SVGFETurbulence* filterEffect(SVGResourceFilter*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, float, float, BaseFrequencyX, baseFrequencyX)
index 890d912..a7dacea 100644 (file)
@@ -42,10 +42,10 @@ SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document* doc)
     , SVGExternalResourcesRequired()
     , m_filterUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_primitiveUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
     , m_filterResX(0)
     , m_filterResY(0)
 {
index d892c1a..f2d9773 100644 (file)
@@ -51,11 +51,11 @@ namespace WebCore {
         virtual bool rendererIsNeeded(RenderStyle*) { return false; }
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFilterElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFilterElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
  
         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, int, int, FilterUnits, filterUnits)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, int, int, PrimitiveUnits, primitiveUnits)
@@ -73,3 +73,5 @@ namespace WebCore {
 
 #endif // ENABLE(SVG)
 #endif
+
+// vim:ts=4:noet
index 4512db8..eae0434 100644 (file)
@@ -36,10 +36,10 @@ namespace WebCore {
 
 SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(const QualifiedName& tagName, Document* doc)
     : SVGStyledElement(tagName, doc)
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
 {
     // Spec: If the attribute is not specified, the effect is as if a value of "0%" were specified.
     setXBaseValue(SVGLength(this, LengthModeWidth, "0%"));
index 6259959..b639282 100644 (file)
@@ -47,7 +47,7 @@ namespace WebCore {
         void setStandardAttributes(SVGFilterEffect*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, SVGLength, X, x)
index 013cd07..2cf3dd7 100644 (file)
@@ -46,7 +46,7 @@ SVGFitToViewBox::~SVGFitToViewBox()
 }
 
 ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGFitToViewBox, FloatRect, Rect, rect, ViewBox, viewBox, SVGNames::viewBoxAttr, m_viewBox)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CONTEXT(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio)
+ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio.get())
 
 bool SVGFitToViewBox::parseViewBox(const UChar*& c, const UChar* end, float& x, float& y, float& w, float& h, bool validate)
 {
index bd62fec..16ea1c2 100644 (file)
 
 #if ENABLE(SVG)
 #include "SVGElement.h"
-#include "SVGPreserveAspectRatio.h"
 
 namespace WebCore {
 
     class AffineTransform;
+    class SVGPreserveAspectRatio;
 
     class SVGFitToViewBox {
     public:
@@ -44,7 +44,7 @@ namespace WebCore {
         bool isKnownAttribute(const QualifiedName&);
 
     protected:
-        virtual SVGElement* contextElement() = 0;
+        virtual const SVGElement* contextElement() const = 0;
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(SVGFitToViewBox, FloatRect, FloatRect, ViewBox, viewBox)
index 4bf17e6..4d0370b 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore {
         virtual ~SVGFontElement();
 
         virtual bool rendererIsNeeded(RenderStyle*) { return false; }    
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
         void invalidateGlyphCache();
 
index 49fc464..d48a1f8 100644 (file)
@@ -39,10 +39,10 @@ SVGForeignObjectElement::SVGForeignObjectElement(const QualifiedName& tagName, D
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
 {
 }
 
index 56144d4..f0c9830 100644 (file)
@@ -49,11 +49,11 @@ namespace WebCore {
         virtual RenderObject* createRenderer(RenderArena* arena, RenderStyle* style);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGForeignObjectElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGForeignObjectElement, SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, SVGLength, Y, y)
index 9dfaa21..9237ef8 100644 (file)
@@ -48,10 +48,10 @@ namespace WebCore {
         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGGElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
 
     private:
         friend class SVGUseElement;
index 0805a38..4cd527f 100644 (file)
@@ -53,7 +53,7 @@ SVGGradientElement::~SVGGradientElement()
 }
 
 ANIMATED_PROPERTY_DEFINITIONS(SVGGradientElement, int, Enumeration, enumeration, GradientUnits, gradientUnits, SVGNames::gradientUnitsAttr, m_gradientUnits)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGGradientElement, SVGTransformList, TransformList, transformList, GradientTransform, gradientTransform, SVGNames::gradientTransformAttr, m_gradientTransform)
+ANIMATED_PROPERTY_DEFINITIONS(SVGGradientElement, SVGTransformList*, TransformList, transformList, GradientTransform, gradientTransform, SVGNames::gradientTransformAttr, m_gradientTransform.get())
 ANIMATED_PROPERTY_DEFINITIONS(SVGGradientElement, int, Enumeration, enumeration, SpreadMethod, spreadMethod, SVGNames::spreadMethodAttr, m_spreadMethod)
 
 void SVGGradientElement::parseMappedAttribute(MappedAttribute* attr)
index db902d0..25579d0 100644 (file)
 #define SVGGradientElement_h
 
 #if ENABLE(SVG)
-#include "SVGExternalResourcesRequired.h"
 #include "SVGPaintServerGradient.h"
+#include "SVGExternalResourcesRequired.h"
 #include "SVGStyledElement.h"
-#include "SVGTransformList.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
     class SVGGradientElement;
+    class SVGTransformList;
 
     class SVGGradientElement : public SVGStyledElement,
                                public SVGURIReference,
@@ -68,8 +68,8 @@ namespace WebCore {
         mutable RefPtr<SVGPaintServerGradient> m_resource;
  
     protected:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGGradientElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGGradientElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
  
         ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, int, SpreadMethod, spreadMethod)
         ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, int, GradientUnits, gradientUnits)
index 5293133..b7c6aea 100644 (file)
@@ -43,10 +43,10 @@ SVGImageElement::SVGImageElement(const QualifiedName& tagName, Document* doc)
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
     , SVGURIReference()
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
     , m_preserveAspectRatio(SVGPreserveAspectRatio::create())
     , m_imageLoader(this)
 {
@@ -60,7 +60,7 @@ ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Length, length, X, x,
 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Length, length, Y, y, SVGNames::yAttr, m_y)
 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Length, length, Width, width, SVGNames::widthAttr, m_width)
 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Length, length, Height, height, SVGNames::heightAttr, m_height)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio)
+ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr, m_preserveAspectRatio.get())
 
 void SVGImageElement::parseMappedAttribute(MappedAttribute *attr)
 {
index b30dc3e..483d0fd 100644 (file)
 
 #if ENABLE(SVG)
 #include "SVGExternalResourcesRequired.h"
-#include "SVGImageLoader.h"
 #include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
+#include "SVGImageLoader.h"
 #include "SVGStyledTransformableElement.h"
 #include "SVGTests.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
+    class SVGPreserveAspectRatio;
     class SVGLength;
 
     class SVGImageElement : public SVGStyledTransformableElement,
@@ -62,11 +62,11 @@ namespace WebCore {
         virtual bool hasRelativeValues() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGImageElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGImageElement, SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, SVGLength, Y, y)
index 010911d..e6ecb82 100644 (file)
@@ -122,33 +122,6 @@ SVGLength::SVGLength(const SVGStyledElement* context, SVGLengthMode mode, const
     setValueAsString(valueAsString);
 }
 
-SVGLength::SVGLength(const SVGLength& other)
-    : m_valueInSpecifiedUnits(other.m_valueInSpecifiedUnits)
-    , m_unit(other.m_unit)
-    , m_context(other.m_context)
-{
-}
-
-SVGLength& SVGLength::operator=(const SVGLength& other)
-{
-    m_valueInSpecifiedUnits = other.m_valueInSpecifiedUnits;
-    m_unit = other.m_unit;
-    m_context = other.m_context;
-    return (*this);
-}
-
-bool SVGLength::operator==(const SVGLength& other) const
-{
-    return m_valueInSpecifiedUnits == other.m_valueInSpecifiedUnits &&
-           m_unit == other.m_unit &&
-           m_context == other.m_context;
-}
-
-bool SVGLength::operator!=(const SVGLength& other) const
-{
-    return !((*this) == other);
-}
-
 SVGLengthType SVGLength::unitType() const
 {
     return extractType(m_unit);
index 579f763..543221f 100644 (file)
@@ -69,11 +69,6 @@ namespace WebCore {
         };
 
         SVGLength(const SVGStyledElement* context = 0, SVGLengthMode mode = LengthModeOther, const String& valueAsString = String());
-        SVGLength(const SVGLength&);
-
-        SVGLength& operator=(const SVGLength&);
-        bool operator==(const SVGLength&) const;
-        bool operator!=(const SVGLength&) const;
 
         // 'SVGLength' functions
         SVGLengthType unitType() const;
index dfff47f..c2d8160 100644 (file)
@@ -59,22 +59,6 @@ void SVGLengthList::parse(const String& value, const SVGStyledElement* context,
     }
 }
 
-String SVGLengthList::valueAsString() const
-{
-    String result;
-
-    ExceptionCode ec = 0;
-    for (unsigned int i = 0; i < numberOfItems(); ++i) {
-        if (i > 0)
-            result += ", ";
-
-        result += getItem(i, ec).valueAsString();
-        ASSERT(ec == 0);
-    }
-
-    return result;
-}
-
 }
 
 #endif // ENABLE(SVG)
index d295a79..a2c615d 100644 (file)
@@ -35,9 +35,7 @@ namespace WebCore {
         virtual ~SVGLengthList();
 
         void parse(const String& value, const SVGStyledElement* context, SVGLengthMode mode);
-        String valueAsString() const;
-
+        
     private:
         SVGLengthList(const QualifiedName&);
     };
index c006360..3b664d1 100644 (file)
@@ -37,10 +37,10 @@ SVGLineElement::SVGLineElement(const QualifiedName& tagName, Document* doc)
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_x1(SVGLength(this, LengthModeWidth))
-    , m_y1(SVGLength(this, LengthModeHeight))
-    , m_x2(SVGLength(this, LengthModeWidth))
-    , m_y2(SVGLength(this, LengthModeHeight))
+    , m_x1(this, LengthModeWidth)
+    , m_y1(this, LengthModeHeight)
+    , m_x2(this, LengthModeWidth)
+    , m_y2(this, LengthModeHeight)
 {
 }
 
index e6e8329..c6dbc08 100644 (file)
@@ -51,11 +51,11 @@ namespace WebCore {
         virtual bool supportsMarkers() const { return true; }
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         virtual bool hasRelativeValues() const;
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGLineElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
  
         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, SVGLength, X1, x1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, SVGLength, Y1, y1)
index 385910a..6cddf07 100644 (file)
@@ -38,10 +38,10 @@ namespace WebCore {
 
 SVGLinearGradientElement::SVGLinearGradientElement(const QualifiedName& tagName, Document* doc)
     : SVGGradientElement(tagName, doc)
-    , m_x1(SVGLength(this, LengthModeWidth))
-    , m_y1(SVGLength(this, LengthModeHeight))
-    , m_x2(SVGLength(this, LengthModeWidth))
-    , m_y2(SVGLength(this, LengthModeHeight))
+    , m_x1(this, LengthModeWidth)
+    , m_y1(this, LengthModeHeight)
+    , m_x2(this, LengthModeWidth)
+    , m_y2(this, LengthModeHeight)
 {
     // Spec: If the attribute is not specified, the effect is as if a value of "100%" were specified.
     setX2BaseValue(SVGLength(this, LengthModeWidth, "100%"));
@@ -113,7 +113,7 @@ LinearGradientAttributes SVGLinearGradientElement::collectGradientProperties() c
             attributes.setSpreadMethod((SVGGradientSpreadMethod) current->spreadMethod());
 
         if (!attributes.hasBoundingBoxMode() && current->hasAttribute(SVGNames::gradientUnitsAttr))
-            attributes.setBoundingBoxMode(current->gradientUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            attributes.setBoundingBoxMode(current->getAttribute(SVGNames::gradientUnitsAttr) == "objectBoundingBox");
 
         if (!attributes.hasGradientTransform() && current->hasAttribute(SVGNames::gradientTransformAttr))
             attributes.setGradientTransform(current->gradientTransform()->consolidate().matrix());
index 6153d73..496585e 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
         LinearGradientAttributes collectGradientProperties() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGLength, SVGLength, X1, x1)
index 4f0c71b..1e84cc7 100644 (file)
@@ -43,7 +43,7 @@ namespace WebCore {
         SVGPathElement* pathElement();
         
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
     };
 
 } // namespace WebCore
index c54f3d7..60d6a51 100644 (file)
@@ -41,10 +41,10 @@ SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document* doc)
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
     , SVGFitToViewBox()
-    , m_refX(SVGLength(this, LengthModeWidth))
-    , m_refY(SVGLength(this, LengthModeHeight))
-    , m_markerWidth(SVGLength(this, LengthModeWidth))
-    , m_markerHeight(SVGLength(this, LengthModeHeight))
+    , m_refX(this, LengthModeWidth)
+    , m_refY(this, LengthModeHeight)
+    , m_markerWidth(this, LengthModeWidth)
+    , m_markerHeight(this, LengthModeHeight) 
     , m_markerUnits(SVG_MARKERUNITS_STROKEWIDTH)
     , m_orientType(0)
     , m_orientAngle(new SVGAngle())
@@ -64,7 +64,7 @@ ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, int, Enumeration, enumeration, M
 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, Length, length, MarkerWidth, markerWidth, SVGNames::markerWidthAttr, m_markerWidth)
 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, Length, length, MarkerHeight, markerHeight, SVGNames::markerHeightAttr, m_markerHeight)
 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGMarkerElement, int, Enumeration, enumeration, OrientType, orientType, SVGNames::orientAttr, "orientType", m_orientType)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CUSTOM_IDENTIFIER(SVGMarkerElement, SVGAngle, Angle, angle, OrientAngle, orientAngle, SVGNames::orientAttr, "orientAngle", m_orientAngle)
+ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGMarkerElement, SVGAngle*, Angle, angle, OrientAngle, orientAngle, SVGNames::orientAttr, "orientAngle", m_orientAngle.get())
 
 void SVGMarkerElement::parseMappedAttribute(MappedAttribute* attr)
 {
index 56eb87d..3e6cf25 100644 (file)
 #define SVGMarkerElement_h
 
 #if ENABLE(SVG)
-#include "SVGAngle.h"
+#include "SVGResourceMarker.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGLangSpace.h"
-#include "SVGResourceMarker.h"
 #include "SVGStyledElement.h"
 
 namespace WebCore {
 
+    class Document;
+    class SVGAngle;
+    
     class SVGMarkerElement : public SVGStyledElement,
                              public SVGLangSpace,
                              public SVGExternalResourcesRequired,
@@ -64,12 +66,12 @@ namespace WebCore {
         virtual SVGResource* canvasResource();
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGMarkerElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGMarkerElement, SVGFitToViewBox, FloatRect, ViewBox, viewBox)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGMarkerElement, SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired) 
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, SVGLength, RefX, refX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, SVGLength, RefY, refY)
index 393afb7..723fefa 100644 (file)
@@ -50,10 +50,10 @@ SVGMaskElement::SVGMaskElement(const QualifiedName& tagName, Document* doc)
     , SVGExternalResourcesRequired()
     , m_maskUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_maskContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
 {
     // Spec: If the attribute is not specified, the effect is as if a value of "-10%" were specified.
     setXBaseValue(SVGLength(this, LengthModeWidth, "-10%"));
index 2a66ac6..cd44baf 100644 (file)
@@ -54,9 +54,9 @@ namespace WebCore {
         std::auto_ptr<ImageBuffer> drawMaskerContent(const FloatRect& targetRect, FloatRect& maskRect) const;
 
     protected:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGMaskElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGMaskElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
-
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+            
         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, int, int, MaskUnits, maskUnits)
         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, int, int, MaskContentUnits, maskContentUnits)
  
@@ -65,7 +65,7 @@ namespace WebCore {
         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, SVGLength, Width, width)
         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, SVGLength, Height, height)
 
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         RefPtr<SVGResourceMasker> m_masker;
index be1e895..7931eca 100644 (file)
@@ -54,22 +54,6 @@ void SVGNumberList::parse(const String& value)
     }
 }
 
-String SVGNumberList::valueAsString() const
-{
-    String result;
-
-    ExceptionCode ec = 0;
-    for (unsigned int i = 0; i < numberOfItems(); ++i) {
-        if (i > 0)
-            result += ", ";
-
-        result += String::number(getItem(i, ec));
-        ASSERT(ec == 0);
-    }
-
-    return result;
-}
-
 }
 
 #endif // ENABLE(SVG)
index 6cd43ff..cd5957b 100644 (file)
@@ -37,9 +37,7 @@ namespace WebCore {
         virtual ~SVGNumberList();
 
         void parse(const String& value);
-        String valueAsString() const;
-
+        
     private:
         SVGNumberList(const QualifiedName&);
     };
index 6258fa9..140e8b1 100644 (file)
@@ -101,12 +101,13 @@ namespace WebCore {
         virtual bool supportsMarkers() const { return true; }
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         mutable RefPtr<SVGPathSegList> m_pathSegList;
 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPathElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
         ANIMATED_PROPERTY_DECLARATIONS(SVGPathElement, float, float, PathLength, pathLength)
     };
 
index add64d7..dda42d7 100644 (file)
@@ -57,10 +57,10 @@ SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document* doc
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
     , SVGFitToViewBox()
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
     , m_patternUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     , m_patternContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     , m_patternTransform(SVGTransformList::create(SVGNames::patternTransformAttr))
@@ -77,7 +77,7 @@ ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Length, length, X, x
 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Length, length, Y, y, SVGNames::yAttr, m_y)
 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Length, length, Width, width, SVGNames::widthAttr, m_width)
 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Length, length, Height, height, SVGNames::heightAttr, m_height)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGPatternElement, SVGTransformList, TransformList, transformList, PatternTransform, patternTransform, SVGNames::patternTransformAttr, m_patternTransform)
+ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGTransformList*, TransformList, transformList, PatternTransform, patternTransform, SVGNames::patternTransformAttr, m_patternTransform.get())
 
 void SVGPatternElement::parseMappedAttribute(MappedAttribute* attr)
 {
@@ -297,10 +297,10 @@ PatternAttributes SVGPatternElement::collectPatternProperties() const
             attributes.setHeight(current->height());
 
         if (!attributes.hasBoundingBoxMode() && current->hasAttribute(SVGNames::patternUnitsAttr))
-            attributes.setBoundingBoxMode(current->patternUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            attributes.setBoundingBoxMode(current->getAttribute(SVGNames::patternUnitsAttr) == "objectBoundingBox");
 
         if (!attributes.hasBoundingBoxModeContent() && current->hasAttribute(SVGNames::patternContentUnitsAttr))
-            attributes.setBoundingBoxModeContent(current->patternContentUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            attributes.setBoundingBoxModeContent(current->getAttribute(SVGNames::patternContentUnitsAttr) == "objectBoundingBox");
 
         if (!attributes.hasPatternTransform() && current->hasAttribute(SVGNames::patternTransformAttr))
             attributes.setPatternTransform(current->patternTransform()->consolidate().matrix());
index 18161b2..6b00a62 100644 (file)
 #define SVGPatternElement_h
 
 #if ENABLE(SVG)
+#include "SVGPaintServerPattern.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGLangSpace.h"
-#include "SVGPaintServerPattern.h"
 #include "SVGStyledElement.h"
 #include "SVGTests.h"
-#include "SVGTransformList.h"
 #include "SVGURIReference.h"
 
+
 namespace WebCore {
 
     struct PatternAttributes;
  
     class SVGLength;
+    class SVGTransformList;
 
     class SVGPatternElement : public SVGStyledElement,
                               public SVGURIReference,
@@ -59,10 +60,10 @@ namespace WebCore {
         virtual SVGResource* canvasResource();
 
     protected:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPatternElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPatternElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPatternElement, SVGFitToViewBox, FloatRect, ViewBox, viewBox)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPatternElement, SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, SVGLength, Y, y)
@@ -74,7 +75,7 @@ namespace WebCore {
 
         mutable RefPtr<SVGPaintServerPattern> m_resource;
 
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         friend class SVGPaintServerPattern;
index 9fadd7d..09ce1df 100644 (file)
@@ -53,13 +53,13 @@ namespace WebCore {
         virtual bool supportsMarkers() const { return true; }
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         bool m_ignoreAttributeChanges : 1;
         mutable RefPtr<SVGPointList> m_points;
 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGPolyElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
     };
 
 } // namespace WebCore
index 0388939..0709b9d 100644 (file)
@@ -202,59 +202,6 @@ AffineTransform SVGPreserveAspectRatio::getCTM(double logicX, double logicY,
     return temp;
 }
 
-String SVGPreserveAspectRatio::valueAsString() const
-{
-    String result;
-
-    switch ((SVGPreserveAspectRatioType) align()) {
-    default:
-    case SVG_PRESERVEASPECTRATIO_NONE:
-        result = "none";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMINYMIN:
-        result = "xMinYMin";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMIDYMIN:
-        result = "xMidYMin";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMAXYMIN:
-        result = "xMaxYMin";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMINYMID:
-        result = "xMinYMid";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMIDYMID:
-        result = "xMidYMid";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMAXYMID:
-        result = "xMaxYMid";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMINYMAX:
-        result = "xMinYMax";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMIDYMAX:
-        result = "xMidYMax";
-        break;
-    case SVG_PRESERVEASPECTRATIO_XMAXYMAX:
-        result = "xMaxYMax";
-        break;
-    };
-
-    switch ((SVGMeetOrSliceType) meetOrSlice()) {
-    default:
-    case SVG_MEETORSLICE_UNKNOWN:
-        break;
-    case SVG_MEETORSLICE_MEET:
-        result += " meet";
-        break;
-    case SVG_MEETORSLICE_SLICE:
-        result += " slice";
-        break;
-    };
-
-    return result;
-}
-
 }
 
 #endif // ENABLE(SVG)
index 0dfe940..a1bed65 100644 (file)
@@ -74,7 +74,6 @@ namespace WebCore {
 
         // Helper
         bool parsePreserveAspectRatio(const UChar*& currParam, const UChar* end, bool validate = true);
-        String valueAsString() const;
 
         const QualifiedName& associatedAttributeName() const { return SVGNames::preserveAspectRatioAttr; }
 
index 78b984d..9ec5eb8 100644 (file)
@@ -41,11 +41,11 @@ namespace WebCore {
 
 SVGRadialGradientElement::SVGRadialGradientElement(const QualifiedName& tagName, Document* doc)
     : SVGGradientElement(tagName, doc)
-    , m_cx(SVGLength(this, LengthModeWidth))
-    , m_cy(SVGLength(this, LengthModeHeight))
-    , m_r(SVGLength(this, LengthModeOther))
-    , m_fx(SVGLength(this, LengthModeWidth))
-    , m_fy(SVGLength(this, LengthModeHeight))
+    , m_cx(this, LengthModeWidth)
+    , m_cy(this, LengthModeHeight)
+    , m_r(this, LengthModeOther)
+    , m_fx(this, LengthModeWidth)
+    , m_fy(this, LengthModeHeight)
 {
     // Spec: If the attribute is not specified, the effect is as if a value of "50%" were specified.
     setCxBaseValue(SVGLength(this, LengthModeWidth, "50%"));
@@ -89,7 +89,7 @@ void SVGRadialGradientElement::svgAttributeChanged(const QualifiedName& attrName
         return;
 
     if (attrName == SVGNames::cxAttr || attrName == SVGNames::cyAttr ||
-        attrName == SVGNames::fxAttr || attrName == SVGNames::fyAttr ||
+        attrName == SVGNames::fyAttr || attrName == SVGNames::fyAttr ||
         attrName == SVGNames::rAttr)
         m_resource->invalidate();
 }
@@ -126,7 +126,7 @@ RadialGradientAttributes SVGRadialGradientElement::collectGradientProperties() c
             attributes.setSpreadMethod((SVGGradientSpreadMethod) current->spreadMethod());
 
         if (!attributes.hasBoundingBoxMode() && current->hasAttribute(SVGNames::gradientUnitsAttr))
-            attributes.setBoundingBoxMode(current->gradientUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
+            attributes.setBoundingBoxMode(current->getAttribute(SVGNames::gradientUnitsAttr) == "objectBoundingBox");
 
         if (!attributes.hasGradientTransform() && current->hasAttribute(SVGNames::gradientTransformAttr))
             attributes.setGradientTransform(current->gradientTransform()->consolidate().matrix());
index d243464..7007ea5 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
         RadialGradientAttributes collectGradientProperties() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, Cx, cx)
index 485dfaf..6820b9d 100644 (file)
@@ -36,12 +36,12 @@ SVGRectElement::SVGRectElement(const QualifiedName& tagName, Document *doc)
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
-    , m_rx(SVGLength(this, LengthModeWidth))
-    , m_ry(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
+    , m_rx(this, LengthModeWidth)
+    , m_ry(this, LengthModeHeight)
 {
 }
 
index 8fbe430..244a6ef 100644 (file)
@@ -47,11 +47,11 @@ namespace WebCore {
         virtual Path toPathData() const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         virtual bool hasRelativeValues() const;
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGRectElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, SVGLength, Y, y)
index e1a84b9..99289f7 100644 (file)
@@ -63,10 +63,10 @@ SVGSVGElement::SVGSVGElement(const QualifiedName& tagName, Document* doc)
     , SVGExternalResourcesRequired()
     , SVGFitToViewBox()
     , SVGZoomAndPan()
-    , m_x(SVGLength(this, LengthModeWidth))
-    , m_y(SVGLength(this, LengthModeHeight))
-    , m_width(SVGLength(this, LengthModeWidth))
-    , m_height(SVGLength(this, LengthModeHeight))
+    , m_x(this, LengthModeWidth)
+    , m_y(this, LengthModeHeight)
+    , m_width(this, LengthModeWidth)
+    , m_height(this, LengthModeHeight)
     , m_useCurrentView(false)
     , m_timeScheduler(new TimeScheduler(doc))
     , m_viewSpec(0)
@@ -187,7 +187,7 @@ void SVGSVGElement::setUseCurrentView(bool currentView)
 SVGViewSpec* SVGSVGElement::currentView() const
 {
     if (!m_viewSpec)
-        m_viewSpec.set(new SVGViewSpec(const_cast<SVGSVGElement*>(this)));
+        m_viewSpec.set(new SVGViewSpec(this));
 
     return m_viewSpec.get();
 }
index 0af8077..4296938 100644 (file)
@@ -135,7 +135,7 @@ namespace WebCore
         void inheritViewAttributes(SVGViewElement*);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
         friend class RenderSVGRoot;
         friend class RenderSVGViewportContainer;
@@ -147,9 +147,9 @@ namespace WebCore
     private:
         void addSVGWindowEventListener(const AtomicString& eventType, const Attribute* attr);   
 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSVGElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSVGElement, SVGFitToViewBox, FloatRect, ViewBox, viewBox)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSVGElement, SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, SVGLength, X, x)
         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, SVGLength, Y, y)
index 1a05dd0..8ea374a 100644 (file)
@@ -48,12 +48,11 @@ namespace WebCore
         virtual void getSubresourceAttributeStrings(Vector<String>&) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGScriptElement)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGScriptElement, SVGURIReference, String, Href, href)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGScriptElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         String m_type;
     };
index 51f4154..91fc380 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore
         virtual ~SVGSetElement();
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
         
         virtual bool updateAnimatedValue(EAnimationMode, float timePercentage, unsigned valueIndex, float percentagePast);
         virtual bool calculateFromAndToValues(EAnimationMode, unsigned valueIndex);
index 35d9eb9..0d798ab 100644 (file)
@@ -69,7 +69,6 @@ namespace WebCore {
         static int cssPropertyIdForSVGAttributeName(const QualifiedName&);
 
     private:
-        ANIMATED_PROPERTY_START_DECLARATIONS(SVGStyledElement)
         ANIMATED_PROPERTY_DECLARATIONS(SVGStyledElement, String, String, ClassName, className)
 
         void updateElementInstance(SVGDocumentExtensions*) const;
index b37d519..28ce33c 100644 (file)
@@ -46,7 +46,7 @@ SVGStyledTransformableElement::~SVGStyledTransformableElement()
 {
 }
 
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGStyledTransformableElement, SVGTransformList, TransformList, transformList, Transform, transform, SVGNames::transformAttr, m_transform)
+ANIMATED_PROPERTY_DEFINITIONS(SVGStyledTransformableElement, SVGTransformList*, TransformList, transformList, Transform, transform, SVGNames::transformAttr, m_transform.get())
 
 AffineTransform SVGStyledTransformableElement::getCTM() const
 {
index 5f5bec4..8e23a51 100644 (file)
 #if ENABLE(SVG)
 #include "SVGStyledLocatableElement.h"
 #include "SVGTransformable.h"
-#include "SVGTransformList.h"
 
 namespace WebCore {
 
     class AffineTransform;
+    class SVGTransformList;
 
     class SVGStyledTransformableElement : public SVGStyledLocatableElement,
                                           public SVGTransformable {
index 7c442be..3bfc275 100644 (file)
@@ -47,12 +47,12 @@ namespace WebCore
         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         mutable bool m_insideRenderSection;
 
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSwitchElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
     };
 
 } // namespace WebCore
index c52fe69..eaa0b94 100644 (file)
@@ -46,11 +46,11 @@ namespace WebCore
         virtual bool rendererIsNeeded(RenderStyle*) { return false; }
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
  
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSymbolElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)       
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSymbolElement, SVGFitToViewBox, FloatRect, ViewBox, viewBox)
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGSymbolElement, SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)       
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, SVGPreserveAspectRatio*, PreserveAspectRatio, preserveAspectRatio)
     };
 
 } // namespace WebCore
index 0e76974..16ea5c3 100644 (file)
@@ -41,10 +41,10 @@ namespace WebCore
         bool childShouldCreateRenderer(Node*) const;
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGTRefElement, SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
 
         void updateReferencedText();
     };
index 78aa8d7..f2d0303 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore
         bool childShouldCreateRenderer(Node*) const;
     
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
     };
 
 } // namespace WebCore
index a5f3c17..f864eba 100644 (file)
@@ -48,7 +48,7 @@ SVGTextContentElement::SVGTextContentElement(const QualifiedName& tagName, Docum
     , SVGTests()
     , SVGLangSpace()
     , SVGExternalResourcesRequired()
-    , m_textLength(SVGLength(this, LengthModeOther))
+    , m_textLength(this, LengthModeOther)
     , m_lengthAdjust(LENGTHADJUST_SPACING)
 {
 }
index 5591cfe..b36b098 100644 (file)
@@ -64,7 +64,7 @@ namespace WebCore {
         bool isKnownAttribute(const QualifiedName&);
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGTextContentElement, SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, SVGLength, SVGLength, TextLength, textLength)
         ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, int, int, LengthAdjust, lengthAdjust)
index 4e30aa9..0c66081 100644 (file)
@@ -46,7 +46,7 @@ SVGTextElement::~SVGTextElement()
 {
 }
 
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextElement, SVGTransformList, TransformList, transformList, Transform, transform, SVGNames::transformAttr, m_transform)
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextElement, SVGTransformList*, TransformList, transformList, Transform, transform, SVGNames::transformAttr, m_transform.get())
 
 void SVGTextElement::parseMappedAttribute(MappedAttribute* attr)
 {
index 4964d8c..6cf2baf 100644 (file)
@@ -26,7 +26,6 @@
 #if ENABLE(SVG)
 #include "SVGTextPositioningElement.h"
 #include "SVGTransformable.h"
-#include "SVGTransformList.h"
 
 namespace WebCore {
 
@@ -52,11 +51,10 @@ namespace WebCore {
         virtual void svgAttributeChanged(const QualifiedName&);
 
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
         mutable AffineTransform m_localMatrix;
-
         ANIMATED_PROPERTY_DECLARATIONS(SVGTextElement, SVGTransformList*, RefPtr<SVGTransformList>, Transform, transform)
     };
 
index a2471f9..a0e2929 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore {
 SVGTextPathElement::SVGTextPathElement(const QualifiedName& tagName, Document* doc)
     : SVGTextContentElement(tagName, doc)
     , SVGURIReference()
-    , m_startOffset(SVGLength(this, LengthModeOther))
+    , m_startOffset(this, LengthModeOther)
     , m_method(SVG_TEXTPATH_METHODTYPE_ALIGN)
     , m_spacing(SVG_TEXTPATH_SPACINGTYPE_EXACT)
 {
index d1793d7..4db7a94 100644 (file)
@@ -67,10 +67,10 @@ namespace WebCore
         bool childShouldCreateRenderer(Node*) const;
     
     protected:
-        virtual SVGElement* contextElement() { return this; }
+        virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGTextPathElement, SVGURIReference, String, Href, href)
+        ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
 
         ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, SVGLength, SVGLength, StartOffset, startOffset)
         ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, int, int, Method, method)
index eb7265c..15aed69 100644 (file)
@@ -45,11 +45,11 @@ SVGTextPositioningElement::~SVGTextPositioningElement()
 {
 }
 
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, LengthList, lengthList, X, x, SVGNames::xAttr, m_x)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, LengthList, lengthList, Y, y, SVGNames::yAttr, m_y)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, LengthList, lengthList, Dx, dx, SVGNames::dxAttr, m_dx)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, LengthList, lengthList, Dy, dy, SVGNames::dyAttr, m_dy)
-ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGNumberList, NumberList, numberList, Rotate, rotate, SVGNames::rotateAttr, m_rotate)
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextPositioningElement, SVGLengthList*, LengthList, lengthList, X, x, SVGNames::xAttr, m_x.get())
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextPositioningElement, SVGLengthList*, LengthList, lengthList, Y, y, SVGNames::yAttr, m_y.get())
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextPositioningElement, SVGLengthList*, LengthList, lengthList, Dx, dx, SVGNames::dxAttr, m_dx.get())
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextPositioningElement, SVGLengthList*, LengthList, lengthList, Dy, dy, SVGNames::dyAttr, m_dy.get())
+ANIMATED_PROPERTY_DEFINITIONS(SVGTextPositioningElement, SVGNumberList*, NumberList, numberList, Rotate, rotate, SVGNames::rotateAttr, m_rotate.get())
 
 void SVGTextPositioningElement::parseMappedAttribute(MappedAttribute* attr)
 {
index 1bb8a4b..9deb3b6 100644 (file)
 #define SVGTextPositioningElement_h
 
 #if ENABLE(SVG)
-#include "SVGLengthList.h"
-#include "SVGNumberList.h"
 #include "SVGTextContentElement.h"
 
 namespace WebCore {
 
+    class SVGLengthList;
+    class SVGNumberList;
+
     class SVGTextPositioningElement : public SVGTextContentElement {
     public:
         SVGTextPositioningElement(const QualifiedName&, Document*);
index 9800922..9b75848 100644 (file)
@@ -82,16 +82,4 @@ SVGTransform SVGTransformList::concatenateForType(SVGTransform::SVGTransformType
     return totalTransform.addToSVGTransform(SVGTransform());
 }
 
-String SVGTransformList::valueAsString() const
-{
-    // TODO: We may want to build a real transform string, instead of concatting to a matrix(...).
-    SVGTransform transform = concatenate();
-    if (transform.type() == SVGTransform::SVG_TRANSFORM_MATRIX) {
-        AffineTransform matrix = transform.matrix();
-        return String::format("matrix(%f %f %f %f %f %f)", matrix.a(), matrix.b(), matrix.c(), matrix.d(), matrix.e(), matrix.f());
-    }
-
-    return String();
-}
-
 #endif // ENABLE(SVG)
index a405c58..be72f9d 100644 (file)
@@ -30,8 +30,6 @@
 
 namespace WebCore {
 
-    class String;
-
     class SVGTransformList : public SVGPODList<SVGTransform> {
     public:
         static PassRefPtr<SVGTransformList> create(const QualifiedName& attributeName) { return adoptRef(new SVGTransformList(attributeName)); }
@@ -43,9 +41,7 @@ namespace WebCore {
         // Internal use only
         SVGTransform concatenate() const;
         SVGTransform concatenateForType(SVGTransform::SVGTransformType) const;
-        String valueAsString() const;
-
+        
     private:
         SVGTransformList(const QualifiedName&);
     };