haikuwebkit/LayoutTests/svg/W3C-SVG-1.1-SE/types-dom-03-b.svg

85 lines
3.4 KiB
XML
Raw Permalink Normal View History

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. Canonical link: https://commits.webkit.org/62278@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@71802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-11-11 11:20:11 +00: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.3" reviewer="ED" author="CM" status="accepted"
version="$Revision: 1.7 $" testname="$RCSfile: types-dom-03-b.svg,v $">
<d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/#__svg__SVGLocatable__getBBox">
<p>
Test that bounding box geometry can be obtained
before the SVGLoad event is dispatched.
</p>
</d:testDescription>
<d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
<p>
Run the test. No interaction required.
</p>
</d:operatorScript>
<d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
<p>
Load the test. A rectangle will be shown indicating
the result of the test. It will be black if test
did not run, red if the test failed and green if
the test passed.
</p>
<p>
The test is passed if the rectangle is green.
</p>
</d:passCriteria>
</d:SVGTestCase>
<title id="test-title">$RCSfile: types-dom-03-b.svg,v $</title>
<defs>
<font-face
font-family="SVGFreeSansASCII"
unicode-range="U+0-7F">
<font-face-src>
2011-02-10 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Maciej Stachowiak. LayoutTests/svg cleanup https://bugs.webkit.org/show_bug.cgi?id=54184 Fix wrong xlink:hrefs in dozens of SVG testcases. SVGFreeSans.svg is now used in more places. Remove unnecessary xml-stylesheet declarations, and unneeded text css attributes in some places. Updated pixel test results for the affected testcases. * platform/mac-snowleopard/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt: * platform/mac/svg/batik/filters/feTile-expected.checksum: * platform/mac/svg/batik/filters/feTile-expected.png: * platform/mac/svg/batik/filters/feTile-expected.txt: * platform/mac/svg/css/circle-in-mask-with-shadow-expected.checksum: * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png: * platform/mac/svg/css/mask-with-shadow-expected.checksum: * platform/mac/svg/css/mask-with-shadow-expected.png: * platform/mac/svg/foreignObject/text-tref-02-b-expected.checksum: * platform/mac/svg/foreignObject/text-tref-02-b-expected.png: * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt: * platform/mac/svg/text/text-tref-01-b-expected.checksum: * platform/mac/svg/text/text-tref-01-b-expected.png: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.checksum: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.png: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.txt: * 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/paths-dom-02-f.svg: * svg/W3C-SVG-1.1-SE/pservers-pattern-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/W3C-SVG-1.1-SE/types-dom-06-f.svg: * svg/W3C-SVG-1.1-SE/types-dom-07-f.svg: * svg/W3C-SVG-1.1/filters-light-04-f.svg: * svg/W3C-SVG-1.1/filters-turb-02-f.svg: * svg/W3C-SVG-1.1/resources/interact-order-02-b-targ.svg: * svg/W3C-SVG-1.1/resources/interact-order-03-b-targ.svg: * svg/W3C-SVG-1.1/resources/linkingToc-t.svg: * svg/batik/filters/feTile.svg: * svg/css/circle-in-mask-with-shadow.svg: * svg/css/mask-with-shadow.svg: * svg/custom/image-clipped-hit.svg: * svg/foreignObject/text-tref-02-b.svg: * svg/hixie/cascade/002.css: Removed. * svg/text/text-tref-01-b.svg: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/zoom/page/zoom-mask-with-percentages.svg: * svg/zoom/page/zoom-zoom-coords.xhtml: Canonical link: https://commits.webkit.org/68200@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@78182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-02-10 10:25:55 +00:00
<font-face-uri xlink:href="../custom/resources/SVGFreeSans.svg#ascii"/>
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. Canonical link: https://commits.webkit.org/62278@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@71802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-11-11 11:20:11 +00:00
</font-face-src>
</font-face>
</defs>
<g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
<text x='10' y='30'>Test that getBBox() works before SVGLoad</text>
<rect id='r' x='10' y='40' width='50' height='50'/>
<text id='t' visibility='hidden' x='1000' y='1000'>Abc</text>
<script><![CDATA[
function $(x) { return document.getElementById(x); }
var t = $('t'),
r = $('r'),
b1, b2, pass = false;
try {
b1 = t.getBBox();
b2 = r.getBBox();
if (b1.x > 0 && b1.y > 0 && b1.width > 0 && b1.height > 0
&& b2.x == 10 && b2.y == 40 && b2.width == 50 && b2.height == 50) {
pass = true;
}
} catch (e) {
}
r.setAttribute('fill', pass ? 'green' : '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 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>