Commit bbd697ce authored by zimmermann@webkit.org's avatar zimmermann@webkit.org

2010-11-10 Nikolas Zimmermann <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Convert SVGMatrix/SVGTransform/SVGTransformList to the new SVGPropertyTearOff concept
        https://bugs.webkit.org/show_bug.cgi?id=49311

        Move the last list type, SVGTransformList, and the last POD types, SVGMatrix & SVGTransform, over to the new SVGPropertyTearOff concept.
        Removes the need for a custom JSSVGMatrix/V8SVGMatrix implementation, it's all integrated within the bindings now.

        Tests: svg/W3C-SVG-1.1-SE/coords-dom-01-f.svg
               svg/W3C-SVG-1.1-SE/coords-dom-02-f.svg
               svg/W3C-SVG-1.1-SE/coords-dom-03-f.svg
               svg/W3C-SVG-1.1-SE/coords-dom-04-f.svg
               svg/W3C-SVG-1.1-SE/types-dom-01-b.svg
               svg/W3C-SVG-1.1-SE/types-dom-02-f.svg
               svg/W3C-SVG-1.1-SE/types-dom-03-b.svg
               svg/W3C-SVG-1.1-SE/types-dom-04-b.svg
               svg/W3C-SVG-1.1-SE/types-dom-05-b.svg
               svg/dom/SVGMatrix.html
               svg/dom/SVGTransform.html
               svg/dom/SVGTransformList.html

        * Android.jscbindings.mk: Removed JSSVGMatrixCustom.cpp.
        * Android.v8bindings.mk: Removed V8SVGMatrixCustom.cpp.
        * CMakeLists.txt: Remove JSSVGMatrixCustom.cpp. 
        * GNUmakefile.am: Ditto. Add SVGAnimatedTransformListPropertyTearOff.h/SVGStaticPropertyWithParentTearOff.h/SVGTransformListPropertyTearOff.h/SVGAnimatedTransformList.h/SVGMatrix.h to build.
        * WebCore.gypi: Ditto.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Remove JSSVGMatrixCustom.cpp
        * bindings/js/JSSVGMatrixCustom.cpp: Removed.
        * bindings/scripts/CodeGenerator.pm: Convert SVGMatrix/SVGTransform/SVGTransformList to the new concept.
        * bindings/scripts/CodeGeneratorJS.pm: Ditto.
        * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        * bindings/v8/custom/V8SVGMatrixCustom.cpp: Removed.
        * svg/DeprecatedSVGAnimatedPropertyTraits.h: Remove SVGTransformList handling.
        * svg/DeprecatedSVGAnimatedTemplate.h: Ditto.
        * svg/SVGAnimateTransformElement.cpp: Adapt to SVGTransformList API changes.
        (WebCore::transformListFor):
        (WebCore::SVGAnimateTransformElement::resetToBaseValue):
        (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
        (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
        * svg/SVGAnimatedTransformList.h: Added.
        * svg/SVGGradientElement.cpp: Ditto.
        (WebCore::SVGGradientElement::SVGGradientElement):
        (WebCore::SVGGradientElement::parseMappedAttribute):
        * svg/SVGGradientElement.h: Ditto.
        * svg/SVGLinearGradientElement.cpp: Ditto.
        (WebCore::SVGLinearGradientElement::collectGradientAttributes):
        * svg/SVGMatrix.h: Added. SVGMatrix inherits from AffineTransform, and is only used in the bindings. It implements SVGs special requirements.
        (WebCore::SVGMatrix::translate): Returns a copy of the matrix, not affecting the original matrix.
        (WebCore::SVGMatrix::scale): Ditto.
        (WebCore::SVGMatrix::scaleNonUniform): Ditto.
        (WebCore::SVGMatrix::rotate): Ditto.
        (WebCore::SVGMatrix::flipX): Ditto.
        (WebCore::SVGMatrix::flipY): Ditto.
        (WebCore::SVGMatrix::skewX): Ditto.
        (WebCore::SVGMatrix::skewY): Ditto.
        (WebCore::SVGMatrix::multiply): Ditto.
        (WebCore::SVGMatrix::inverse): Ditto.
        (WebCore::SVGMatrix::rotateFromVector): Dittto.
        * svg/SVGMatrix.idl: Enable StrictTypeChecking/RequiresAllArguments=Raise on all attributes/functions.
        * svg/SVGPatternElement.cpp: Adapt to SVGTransformList API changes.
        (WebCore::SVGPatternElement::SVGPatternElement):
        (WebCore::SVGPatternElement::parseMappedAttribute):
        (WebCore::SVGPatternElement::collectPatternAttributes):
        * svg/SVGPatternElement.h: Ditto.
        * svg/SVGPoint.idl: Enable StrictTypeChecking/RequiresAllArguments=Raise for 'matrixTransform', now that SVGMatrix has been converted to the new scheme.
        * svg/SVGRadialGradientElement.cpp: Adapt to SVGTransformList API changes.
        (WebCore::SVGRadialGradientElement::collectGradientAttributes):
        * svg/SVGSVGElement.cpp: Ditto.
        (WebCore::SVGSVGElement::createSVGTransformFromMatrix):
        (WebCore::SVGSVGElement::viewBoxToViewTransform):
        * svg/SVGSVGElement.h: Ditto.
        * svg/SVGStyledTransformableElement.cpp: Ditto.
        (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
        (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
        (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
        * svg/SVGStyledTransformableElement.h: Ditto.
        * svg/SVGTextElement.cpp: Ditto.
        (WebCore::SVGTextElement::SVGTextElement):
        (WebCore::SVGTextElement::parseMappedAttribute):
        (WebCore::SVGTextElement::animatedLocalTransform):
        * svg/SVGTextElement.h: Ditto.
        * svg/SVGTransform.cpp: Modernize code, inlined some getters.
        (WebCore::SVGTransform::SVGTransform):
        (WebCore::SVGTransform::setMatrix):
        * svg/SVGTransform.h: Reindent header.
        (WebCore::SVGTransform::type):
        (WebCore::SVGTransform::svgMatrix):
        (WebCore::SVGTransform::matrix):
        (WebCore::SVGTransform::angle):
        (WebCore::SVGTransform::rotationCenter):
        (WebCore::SVGTransform::isValid):
        (WebCore::operator==): Avoid function calls, make operator== a friend of SVGTransform, and compare members directly.
        (WebCore::operator!=):
        * svg/SVGTransform.idl:
        * svg/SVGTransformList.cpp: Rewritten as plain Vector<SVGTransform>.
        (WebCore::SVGTransformList::createSVGTransformFromMatrix):
        (WebCore::SVGTransformList::consolidate):
        (WebCore::SVGTransformList::concatenate):
        (WebCore::SVGTransformList::valueAsString):
        * svg/SVGTransformList.h:
        (WebCore::SVGTransformList::SVGTransformList):
        * svg/SVGTransformList.idl: Enable StrictTypeChecking/RequiresAllArguments=Raise on all attributes/functions.
        * svg/SVGTransformable.cpp: Adapt to SVGTransformList API changes.
        (WebCore::SVGTransformable::parseTransformAttribute):
        * svg/SVGTransformable.h: Ditto.
        * svg/SVGViewSpec.cpp: Ditto.
        (WebCore::SVGViewSpec::SVGViewSpec):
        (WebCore::SVGViewSpec::setTransform):
        (WebCore::SVGViewSpec::parseViewSpec):
        * svg/SVGViewSpec.h: Ditto.
        (WebCore::SVGViewSpec::transform):
        * svg/properties/SVGAnimatedListPropertyTearOff.h: Made constructor and members protected.
        * svg/properties/SVGAnimatedPropertyMacros.h: Add new helper macro DECLARE_ANIMATED_TRANSFORM_LIST_PROPERTY. This is needed until we expand all macros.
        * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Added. Extends SVGAnimatedListPropertyTearOff, returning SVGTransformListPropertyTearOff objects.
        (WebCore::SVGAnimatedTransformListPropertyTearOff::baseVal):
        (WebCore::SVGAnimatedTransformListPropertyTearOff::animVal):
        (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
        (WebCore::SVGAnimatedTransformListPropertyTearOff::SVGAnimatedTransformListPropertyTearOff):
        * svg/properties/SVGListPropertyTearOff.h: Made construct and members protected.
        * svg/properties/SVGProperty.h: Declare commitChange() as pure virtual method.
        * svg/properties/SVGPropertyTraits.h: Handle SVGTransformList.
        * svg/properties/SVGStaticPropertyWithParentTearOff.h: Added. Same concept as JSSVGStaticPODTypeWrapperWithParent, used to expose SVGPropertyTearOffs for types
                                                               that are using this concept themselves. (SVGMatrix attribute of SVGTransform, both are POD types, using SVGPropertyTearOff).
        (WebCore::SVGStaticPropertyWithParentTearOff::create):
        (WebCore::SVGStaticPropertyWithParentTearOff::commitChange):
        (WebCore::SVGStaticPropertyWithParentTearOff::SVGStaticPropertyWithParentTearOff):
        * svg/properties/SVGTransformListPropertyTearOff.h: Added. Extends SVGListPropertyTearOff by two special SVGTransformList methods: consolidate and createSVGTransformFromMatrix.
        (WebCore::SVGTransformListPropertyTearOff::create):
        (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
        (WebCore::SVGTransformListPropertyTearOff::consolidate):
        (WebCore::SVGTransformListPropertyTearOff::SVGTransformListPropertyTearOff):
2010-11-10  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Convert SVGMatrix/SVGTransform/SVGTransformList to the new SVGPropertyTearOff concept
        https://bugs.webkit.org/show_bug.cgi?id=49311

        Add tests covering StrictTypeChecking and RequiresAllArguments=Raise for SVGMatrix/SVGPoint.
        Imported several new tests from SVG 1.1 2nd Edition, regarding SVG DOM primitives.

        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.checksum: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png: Added.
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: Added.
        * svg/W3C-SVG-1.1-SE/coords-dom-01-f.svg: Added.
        * svg/W3C-SVG-1.1-SE/coords-dom-02-f.svg: Added.
        * svg/W3C-SVG-1.1-SE/coords-dom-03-f.svg: Added.
        * svg/W3C-SVG-1.1-SE/coords-dom-04-f.svg: Added.
        * svg/W3C-SVG-1.1-SE/types-dom-01-b.svg: Added.
        * svg/W3C-SVG-1.1-SE/types-dom-02-f.svg: Added.
        * svg/W3C-SVG-1.1-SE/types-dom-03-b.svg: Added.
        * svg/W3C-SVG-1.1-SE/types-dom-04-b.svg: Added.
        * svg/W3C-SVG-1.1-SE/types-dom-05-b.svg: Added.
        * svg/dom/SVGMatrix-expected.txt: Added.
        * svg/dom/SVGMatrix.html: Added.
        * svg/dom/SVGPoint-expected.txt:
        * svg/dom/SVGTransform-expected.txt: Added.
        * svg/dom/SVGTransform.html: Added.
        * svg/dom/SVGTransformList-expected.txt: Added.
        * svg/dom/SVGTransformList.html: Added.
        * svg/dom/script-tests/SVGMatrix.js: Added.
        * svg/dom/script-tests/SVGPoint.js:
        * svg/dom/script-tests/SVGTransform.js: Added.
        * svg/dom/script-tests/SVGTransformList.js: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 41ca806b
2010-11-10 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Convert SVGMatrix/SVGTransform/SVGTransformList to the new SVGPropertyTearOff concept
https://bugs.webkit.org/show_bug.cgi?id=49311
Add tests covering StrictTypeChecking and RequiresAllArguments=Raise for SVGMatrix/SVGPoint.
Imported several new tests from SVG 1.1 2nd Edition, regarding SVG DOM primitives.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.checksum: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png: Added.
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: Added.
* svg/W3C-SVG-1.1-SE/coords-dom-01-f.svg: Added.
* svg/W3C-SVG-1.1-SE/coords-dom-02-f.svg: Added.
* svg/W3C-SVG-1.1-SE/coords-dom-03-f.svg: Added.
* svg/W3C-SVG-1.1-SE/coords-dom-04-f.svg: Added.
* svg/W3C-SVG-1.1-SE/types-dom-01-b.svg: Added.
* svg/W3C-SVG-1.1-SE/types-dom-02-f.svg: Added.
* svg/W3C-SVG-1.1-SE/types-dom-03-b.svg: Added.
* svg/W3C-SVG-1.1-SE/types-dom-04-b.svg: Added.
* svg/W3C-SVG-1.1-SE/types-dom-05-b.svg: Added.
* svg/dom/SVGMatrix-expected.txt: Added.
* svg/dom/SVGMatrix.html: Added.
* svg/dom/SVGPoint-expected.txt:
* svg/dom/SVGTransform-expected.txt: Added.
* svg/dom/SVGTransform.html: Added.
* svg/dom/SVGTransformList-expected.txt: Added.
* svg/dom/SVGTransformList.html: Added.
* svg/dom/script-tests/SVGMatrix.js: Added.
* svg/dom/script-tests/SVGPoint.js:
* svg/dom/script-tests/SVGTransform.js: Added.
* svg/dom/script-tests/SVGTransformList.js: Added.
2010-11-11 Kent Tamura <tkent@chromium.org>
Reviewed by Shinichiro Hamaji.
8fd79fe9781a9bd714d37014bd4cca34
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (200,140) size 80x80
RenderSVGContainer {g} at (200,140) size 80x80 [transform={m=((1.00,0.00)(0.00,1.00)) t=(240.00,180.00)}]
RenderSVGContainer {g} at (200,140) size 80x80
RenderSVGPath {circle} at (200,140) size 80x80 [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [r=40.00]
RenderSVGContainer {g} at (200,140) size 80x80 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(0.00,0.00)}]
RenderSVGPath {circle} at (200,140) size 80x80 [fill={[type=SOLID] [color=#00FF00]}] [cx=0.00] [cy=0.00] [r=40.00]
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.7 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
c88d033f28473566d8d957c53222282f
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (160,140) size 160x80
RenderSVGContainer {g} at (160,140) size 160x80 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,160.00)}]
RenderSVGContainer {g} at (160,140) size 160x80
RenderSVGPath {circle} at (160,140) size 160x80 [transform={m=((2.00,0.00)(0.00,1.00)) t=(20.00,20.00)}] [fill={[type=SOLID] [color=#FF0000]}] [cx=0.00] [cy=0.00] [r=40.00]
RenderSVGContainer {g} at (160,140) size 160x80 [transform={m=((2.00,0.00)(0.00,1.00)) t=(20.00,20.00)}]
RenderSVGPath {circle} at (160,140) size 160x80 [fill={[type=SOLID] [color=#00FF00]}] [cx=0.00] [cy=0.00] [r=40.00]
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.7 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
2e347e5fe2d169ec3b91cab22df9f2c9
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (10,17) size 392x203
RenderSVGText {text} at (10,17) size 392x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 392x16
chunk 1 text run 1 at (10.00,30.00) startOffset 0 endOffset 60 width 392.00: "Test that some methods taking an SVGMatrix take a copy of it"
RenderSVGPath {rect} at (10,50) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=10.00] [y=50.00] [width=50.00] [height=50.00]
RenderSVGPath {rect} at (10,110) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=10.00] [y=110.00] [width=50.00] [height=50.00]
RenderSVGPath {rect} at (10,170) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=10.00] [y=170.00] [width=50.00] [height=50.00]
RenderSVGContainer {g} at (70,70) size 240x132
RenderSVGText {text} at (70,70) size 240x12 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 240x12
chunk 1 text run 1 at (70.00,80.00) startOffset 0 endOffset 47 width 240.00: "SVGTransformList.createSVGTransformFromMatrix()"
RenderSVGText {text} at (70,130) size 238x12 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 238x12
chunk 1 text run 1 at (70.00,140.00) startOffset 0 endOffset 44 width 238.00: "SVGSVGElement.createSVGTransformFromMatrix()"
RenderSVGText {text} at (70,190) size 118x12 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 118x12
chunk 1 text run 1 at (70.00,200.00) startOffset 0 endOffset 24 width 118.00: "SVGTransform.setMatrix()"
RenderSVGContainer {g} at (0,0) size 0x0 [transform={m=((3.00,0.00)(0.00,1.00)) t=(0.00,0.00)}]
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.7 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
258dc3d456ef36aca814c3c9d7994f1f
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (19,33) size 179x261
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (19,33) size 179x261 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
RenderSVGContainer {g} at (19,33) size 179x261 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,40.00)}]
RenderSVGPath {rect} at (19,34) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=5.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,3) size 139x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 139x21
chunk 1 text run 1 at (20.00,20.00) startOffset 0 endOffset 17 width 139.00: "Scripting enabled"
RenderSVGPath {rect} at (19,54) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=25.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,23) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,40.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #1"
RenderSVGPath {rect} at (19,74) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=45.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,43) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,60.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #2"
RenderSVGPath {rect} at (19,94) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=65.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,63) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,80.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #3"
RenderSVGPath {rect} at (19,114) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=85.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,83) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,100.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #4"
RenderSVGPath {rect} at (19,134) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=105.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,103) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,120.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #5"
RenderSVGPath {rect} at (19,154) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=125.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,123) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,140.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #6"
RenderSVGPath {rect} at (19,174) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=145.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,143) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,160.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #7"
RenderSVGPath {rect} at (19,194) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=165.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,163) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,180.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #8"
RenderSVGPath {rect} at (19,214) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=185.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,183) size 148x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 148x21
chunk 1 text run 1 at (20.00,200.00) startOffset 0 endOffset 17 width 148.00: "Passed subtest #9"
RenderSVGPath {rect} at (19,234) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=205.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,203) size 158x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 158x21
chunk 1 text run 1 at (20.00,220.00) startOffset 0 endOffset 18 width 158.00: "Passed subtest #10"
RenderSVGPath {rect} at (19,254) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=225.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,223) size 158x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 158x21
chunk 1 text run 1 at (20.00,240.00) startOffset 0 endOffset 18 width 158.00: "Passed subtest #11"
RenderSVGPath {rect} at (19,274) size 17x17 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=245.00] [width=15.00] [height=15.00]
RenderSVGText {text} at (20,243) size 158x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 158x21
chunk 1 text run 1 at (20.00,260.00) startOffset 0 endOffset 18 width 158.00: "Passed subtest #12"
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.5 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
25956c72537d152c485b50b8561dad57
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (10,8) size 365x295
RenderSVGContainer {g} at (10,8) size 365x295
RenderSVGContainer {g} at (16,8) size 359x157 [transform={m=((1.00,0.00)(0.00,1.00)) t=(70.00,-60.00)}]
RenderSVGText {text} at (30,132) size 344x23 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 344x23
chunk 1 text run 1 at (30.00,150.00) startOffset 0 endOffset 37 width 344.00: "Rotated Text for testing SVGLocatable"
RenderSVGText {text} at (100,112) size 304x23 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 304x23
chunk 1 text run 1 at (100.00,130.00) startOffset 0 endOffset 35 width 304.00: "Some other text with id 'otherText'"
RenderSVGViewportContainer {svg} at (275,45) size 100x100
RenderSVGPath {circle} at (275,45) size 100x100 [fill={[type=SOLID] [color=#0000FF]}] [cx=0.00] [cy=0.00] [r=50.00]
RenderSVGText {text} at (10,189) size 280x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 280x14
chunk 1 text run 1 at (10.00,200.00) startOffset 0 endOffset 50 width 280.00: ".getScreenCTM(): 0.42,0.42,-0.42,0.42,70.00,-60.00"
RenderSVGText {text} at (10,209) size 241x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 241x14
chunk 1 text run 1 at (10.00,220.00) startOffset 0 endOffset 44 width 241.00: ".getCTM(): 0.42,0.42,-0.42,0.42,70.00,-60.00"
RenderSVGText {text} at (10,229) size 311x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 311x14
chunk 1 text run 1 at (10.00,240.00) startOffset 0 endOffset 56 width 311.00: ".getTransformToElement(): 0.42,0.42,-0.42,0.42,0.00,0.00"
RenderSVGText {text} at (10,249) size 345x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 345x14
chunk 1 text run 1 at (10.00,260.00) startOffset 0 endOffset 65 width 345.00: ".getBBox() for 'blueCircle': .x=-50,.y=-50,.width=100,.height=100"
RenderSVGText {text} at (10,269) size 259x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 259x14
chunk 1 text run 1 at (10.00,280.00) startOffset 0 endOffset 47 width 259.00: ".farthestViewportElement of blueCircle=svg-root"
RenderSVGText {text} at (10,289) size 278x14 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 278x14
chunk 1 text run 1 at (10.00,300.00) startOffset 0 endOffset 47 width 278.00: ".nearestViewportElement of blueCircle=nestedSVG"
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.6 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
2bf592766edbf0a467f15d87c2c92bb1
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (49,38) size 391x254
RenderSVGText {text} at (49,38) size 161x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 161x21
chunk 1 (end anchor) text run 1 at (49.00,55.00) startOffset 0 endOffset 19 width 161.00: "animVal != baseVal:"
RenderSVGContainer {g} at (240,40) size 200x252 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(500.00,0.00)}]
RenderSVGPath {rect} at (420,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=60.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,62) size 162x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 162x16
chunk 1 text run 1 at (70.00,75.00) startOffset 0 endOffset 21 width 162.00: "SVGAnimatedNumberList"
RenderSVGPath {rect} at (390,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=90.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,92) size 133x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 133x16
chunk 1 text run 1 at (70.00,105.00) startOffset 0 endOffset 17 width 133.00: "SVGAnimatedLength"
RenderSVGPath {rect} at (360,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=120.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,122) size 155x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 155x16
chunk 1 text run 1 at (70.00,135.00) startOffset 0 endOffset 21 width 155.00: "SVGAnimatedLengthList"
RenderSVGPath {rect} at (330,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=150.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,152) size 125x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 125x16
chunk 1 text run 1 at (70.00,165.00) startOffset 0 endOffset 16 width 125.00: "SVGAnimatedAngle"
RenderSVGPath {rect} at (300,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=180.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,182) size 118x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 118x16
chunk 1 text run 1 at (70.00,195.00) startOffset 0 endOffset 15 width 118.00: "SVGAnimatedRect"
RenderSVGPath {rect} at (270,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=210.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,212) size 177x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 177x16
chunk 1 text run 1 at (70.00,225.00) startOffset 0 endOffset 24 width 177.00: "SVGAnimatedTransformList"
RenderSVGPath {rect} at (240,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=240.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,242) size 222x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 222x16
chunk 1 text run 1 at (70.00,255.00) startOffset 0 endOffset 30 width 222.00: "SVGAnimatedPreserveAspectRatio"
RenderSVGHiddenContainer {g} at (0,0) size 0x0
RenderSVGText {text} at (0,-17) size 38x26 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 38x26
chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 1 width 10.00: "a"
chunk 1 text run 2 at (10.00,0.00) startOffset 1 endOffset 2 width 10.00: "b"
chunk 1 text run 3 at (20.00,0.00) startOffset 2 endOffset 3 width 9.00: "c"
RenderSVGPath {circle} at (0,0) size 50x50 [fill={[type=SOLID] [color=#000000]}] [cx=0.00] [cy=0.00] [r=50.00]
RenderSVGResourceMarker {marker} [id="marker"] [markerUnits=strokeWidth] [ref at (0,0)] [angle=90.00]
RenderSVGViewportContainer {svg} at (0,0) size 0x0
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.8 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
6f1abdce08d52a0e07c5153d3fca804e
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (10,13) size 470x347
RenderSVGText {text} at (10,13) size 346x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 346x21
chunk 1 text run 1 at (10.00,30.00) startOffset 0 endOffset 40 width 346.00: "Test that getBBox() works before SVGLoad"
RenderSVGPath {rect} at (10,40) size 50x50 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=40.00] [width=50.00] [height=50.00]
RenderSVGText {text} at (1000,983) size 31x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 31x21
chunk 1 text run 1 at (1000.00,1000.00) startOffset 0 endOffset 3 width 31.00: "Abc"
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.7 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
dfc0a9a72238773656a655694b96b85d
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (10,13) size 430x279
RenderSVGText {text} at (10,13) size 301x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 301x21
chunk 1 text run 1 at (10.00,30.00) startOffset 0 endOffset 35 width 301.00: "Testing liveness of SVG DOM objects"
RenderSVGContainer {g} at (90,40) size 350x252 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(500.00,0.00)}]
RenderSVGPath {rect} at (420,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=60.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,62) size 162x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 162x16
chunk 1 text run 1 at (70.00,75.00) startOffset 0 endOffset 21 width 162.00: "SVGAnimatedNumberList"
RenderSVGPath {rect} at (390,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=90.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,92) size 133x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 133x16
chunk 1 text run 1 at (70.00,105.00) startOffset 0 endOffset 17 width 133.00: "SVGAnimatedLength"
RenderSVGPath {rect} at (360,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=120.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,122) size 155x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 155x16
chunk 1 text run 1 at (70.00,135.00) startOffset 0 endOffset 21 width 155.00: "SVGAnimatedLengthList"
RenderSVGPath {rect} at (330,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=150.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,152) size 125x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 125x16
chunk 1 text run 1 at (70.00,165.00) startOffset 0 endOffset 16 width 125.00: "SVGAnimatedAngle"
RenderSVGPath {rect} at (300,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=180.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,182) size 118x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 118x16
chunk 1 text run 1 at (70.00,195.00) startOffset 0 endOffset 15 width 118.00: "SVGAnimatedRect"
RenderSVGPath {rect} at (270,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=210.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,212) size 177x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 177x16
chunk 1 text run 1 at (70.00,225.00) startOffset 0 endOffset 24 width 177.00: "SVGAnimatedTransformList"
RenderSVGPath {rect} at (240,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=240.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,242) size 222x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 222x16
chunk 1 text run 1 at (70.00,255.00) startOffset 0 endOffset 30 width 222.00: "SVGAnimatedPreserveAspectRatio"
RenderSVGPath {rect} at (210,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=270.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,272) size 141x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 141x16
chunk 1 text run 1 at (70.00,285.00) startOffset 0 endOffset 18 width 141.00: "SVGAnimatedBoolean"
RenderSVGPath {rect} at (180,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=300.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,302) size 126x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 126x16
chunk 1 text run 1 at (70.00,315.00) startOffset 0 endOffset 17 width 126.00: "SVGAnimatedString"
RenderSVGPath {rect} at (150,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=330.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,332) size 170x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 170x16
chunk 1 text run 1 at (70.00,345.00) startOffset 0 endOffset 22 width 170.00: "SVGAnimatedEnumeration"
RenderSVGPath {rect} at (120,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=360.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,362) size 134x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 134x16
chunk 1 text run 1 at (70.00,375.00) startOffset 0 endOffset 18 width 134.00: "SVGAnimatedInteger"
RenderSVGPath {rect} at (90,40) size 20x20 [fill={[type=SOLID] [color=#008000]}] [x=40.00] [y=390.00] [width=20.00] [height=20.00]
RenderSVGText {text} at (70,392) size 140x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 140x16
chunk 1 text run 1 at (70.00,405.00) startOffset 0 endOffset 17 width 140.00: "SVGAnimatedNumber"
RenderSVGHiddenContainer {g} at (0,0) size 0x0
RenderSVGText {text} at (10,-17) size 35x25 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 35x25
chunk 1 text run 1 at (10.00,0.00) startOffset 0 endOffset 1 width 10.00: "a"
chunk 1 text run 2 at (20.00,0.00) startOffset 1 endOffset 2 width 10.00: "b"
chunk 1 text run 3 at (30.00,0.00) startOffset 2 endOffset 3 width 9.00: "c"
RenderSVGPath {circle} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [cx=0.00] [cy=0.00] [r=100.00]
RenderSVGResourceMarker {marker} [id="marker"] [markerUnits=strokeWidth] [ref at (0,0)] [angle=60.00]
RenderSVGViewportContainer {svg} at (0,0) size 0x0
RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
[feTurbulence type="TURBULANCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.7 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
f5fb7b810d10db343299888950fb87f9
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (10,13) size 368x177
RenderSVGText {text} at (10,13) size 368x21 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 368x21
chunk 1 text run 1 at (10.00,30.00) startOffset 0 endOffset 47 width 368.00: "Test side effects of assigning to valueAsString"
RenderSVGPath {rect} at (10,40) size 30x30 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=40.00] [width=30.00] [height=30.00]
RenderSVGPath {rect} at (10,80) size 30x30 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=80.00] [width=30.00] [height=30.00]
RenderSVGPath {rect} at (10,120) size 30x30 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=120.00] [width=30.00] [height=30.00]
RenderSVGPath {rect} at (10,160) size 30x30 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=160.00] [width=30.00] [height=30.00]
RenderSVGContainer {g} at (50,46) size 182x137
RenderSVGText {text} at (50,46) size 172x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 172x17
chunk 1 text run 1 at (50.00,60.00) startOffset 0 endOffset 25 width 172.00: "Valid string on SVGLength"
RenderSVGText {text} at (50,86) size 182x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 182x17
chunk 1 text run 1 at (50.00,100.00) startOffset 0 endOffset 27 width 182.00: "Invalid string on SVGLength"
RenderSVGText {text} at (50,126) size 165x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 165x17
chunk 1 text run 1 at (50.00,140.00) startOffset 0 endOffset 24 width 165.00: "Valid string on SVGAngle"
RenderSVGText {text} at (50,166) size 175x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 175x17
chunk 1 text run 1 at (50.00,180.00) startOffset 0 endOffset 26 width 175.00: "Invalid string on SVGAngle"
RenderSVGContainer {g} at (10,310) size 231x37
RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 231x37
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.6 $"
RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
<svg id="svg-root" width="100%" height="100%"
viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!--======================================================================-->
<!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, European Research Consortium for =-->
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
<!--= All Rights Reserved. =-->
<!--= See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================-->
<d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
template-version="1.4" reviewer="CM" author="ED" status="accepted"
version="$Revision: 1.7 $" testname="$RCSfile: coords-dom-01-f.svg,v $">
<d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/coords.html#DOMInterfaces">
<p>
Tests the liveness of SVGTransform.matrix.
</p>
</d:testDescription>
<d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
<p>
Load the svg, you should see a green circle.
</p>
</d:operatorScript>
<d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
<p>
The test has passed if:
</p>
<ul>
<li>There is no red visible</li>
<li>There is a green circle visible</li>
</ul>
</d:passCriteria>
</d:SVGTestCase>
<title id="test-title">$RCSfile: coords-dom-01-f.svg,v $</title>
<defs>
<font-face
font-family="SVGFreeSansASCII"
unicode-range="U+0-7F">
<font-face-src>
<font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
</font-face-src>
</font-face>
</defs>
<g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
<g transform="translate(240 180)">
<g id="reference">
<circle r="40" fill="red"/>
</g>
<g id="g" transform="translate(20 20)">
<circle id="c" r="40" fill="blue"/>
</g>
</g>
<script type="text/ecmascript"><![CDATA[
var eps = 1 / 65535; // 16.16 fixpoint epsilon
var passed = false;
function isequal( value, expected, epsilon )
{
return(Math.abs(value - expected) < epsilon);
}
try
{
var g = document.getElementById("g");
var c = document.getElementById("c");
var tfm = g.transform.baseVal.getItem(0);
var mtx = tfm.matrix;
tfm.setTranslate(300,200);
if(tfm.type == SVGTransform.SVG_TRANSFORM_TRANSLATE &&
isequal(mtx.e, 300, eps) && isequal(mtx.f, 200, eps))
{
tfm.setScale(4,4);
if(tfm.type == SVGTransform.SVG_TRANSFORM_SCALE &&
isequal(mtx.a, 4, eps) && isequal(mtx.d, 4, eps))
{
tfm.setRotate(90,0,0);
if(tfm.type == SVGTransform.SVG_TRANSFORM_ROTATE &&
isequal(mtx.a, Math.cos(Math.PI/2), eps) && isequal(mtx.b, Math.sin(Math.PI/2), eps) &&
isequal(mtx.c, -Math.sin(Math.PI/2), eps) && isequal(mtx.d, Math.cos(Math.PI/2), eps) &&
isequal(mtx.e, 0, eps) && isequal(mtx.f, 0, eps))
{
passed = true;
}
}
}
}
catch(e) {}
if(passed)
{
c.setAttribute("fill", "lime");
}
else
{
c.setAttribute("fill", "red");
}
]]></script>
</g>
<g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
<text id="revision" x="10" y="340" stroke="none"
fill="black">$Revision: 1.7 $</text>
</g>
<rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
<!-- comment out this watermark once the test is approved --><!--
<g id="draft-watermark">
<rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
<text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
</g>-->
</svg>
<svg id="svg-root" width="100%" height="100%"
viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"