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-04-b.svg,v $">
|
|
|
|
<d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/svgdom.html#SVGDOMOverview">
|
|
|
|
<p>
|
|
|
|
This tests that SVG DOM objects that correspond to attributes
|
|
|
|
are live.
|
|
|
|
This is tested for interfaces
|
|
|
|
SVGAnimatedNumberList, SVGAnimatedLength,
|
|
|
|
SVGAnimatedLengthList, SVGAnimatedAngle, SVGAnimatedRect,
|
|
|
|
SVGAnimatedTransformList, SVGAnimatedPreserveAspectRatio,
|
|
|
|
SVGAnimatedBoolean, SVGAnimatedString, SVGAnimatedEnumeration,
|
|
|
|
SVGAnimatedInteger and SVGAnimatedNumber.
|
|
|
|
</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>
|
|
|
|
Once loaded, the test shows 12 rectangles, one for
|
|
|
|
each sub-test. Each sub-test is checking that
|
|
|
|
an SVG DOM object of a particular interface is live.
|
|
|
|
The rectangle indicates the result of running the
|
|
|
|
sub-test: black to indicate that it wasn't run,
|
|
|
|
red to indicate that it failed, and green to indicate
|
|
|
|
that it passed.
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
The test is passed if all 12 rectangles are green.
|
|
|
|
</p>
|
|
|
|
</d:passCriteria>
|
|
|
|
</d:SVGTestCase>
|
|
|
|
<title id="test-title">$RCSfile: types-dom-04-b.svg,v $</title>
|
|
|
|
<defs>
|
|
|
|
<font-face
|
|
|
|
font-family="SVGFreeSansASCII"
|
|
|
|
unicode-range="U+0-7F">
|
|
|
|
<font-face-src>
|
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'>Testing liveness of SVG DOM objects</text>
|
|
|
|
|
|
|
|
<g font-size='14' transform='translate(500)rotate(90)'>
|
|
|
|
<rect id='r1' x='40' y='60' width='20' height='20'/>
|
|
|
|
<text x='70' y='75'>SVGAnimatedNumberList</text>
|
|
|
|
<rect id='r2' x='40' y='90' width='20' height='20'/>
|
|
|
|
<text x='70' y='105'>SVGAnimatedLength</text>
|
|
|
|
<rect id='r3' x='40' y='120' width='20' height='20'/>
|
|
|
|
<text x='70' y='135'>SVGAnimatedLengthList</text>
|
|
|
|
<rect id='r4' x='40' y='150' width='20' height='20'/>
|
|
|
|
<text x='70' y='165'>SVGAnimatedAngle</text>
|
|
|
|
<rect id='r5' x='40' y='180' width='20' height='20'/>
|
|
|
|
<text x='70' y='195'>SVGAnimatedRect</text>
|
|
|
|
<rect id='r6' x='40' y='210' width='20' height='20'/>
|
|
|
|
<text x='70' y='225'>SVGAnimatedTransformList</text>
|
|
|
|
<rect id='r7' x='40' y='240' width='20' height='20'/>
|
|
|
|
<text x='70' y='255'>SVGAnimatedPreserveAspectRatio</text>
|
|
|
|
<rect id='r8' x='40' y='270' width='20' height='20'/>
|
|
|
|
<text x='70' y='285'>SVGAnimatedBoolean</text>
|
|
|
|
<rect id='r9' x='40' y='300' width='20' height='20'/>
|
|
|
|
<text x='70' y='315'>SVGAnimatedString</text>
|
|
|
|
<rect id='r10' x='40' y='330' width='20' height='20'/>
|
|
|
|
<text x='70' y='345'>SVGAnimatedEnumeration</text>
|
|
|
|
<rect id='r11' x='40' y='360' width='20' height='20'/>
|
|
|
|
<text x='70' y='375'>SVGAnimatedInteger</text>
|
|
|
|
<rect id='r12' x='40' y='390' width='20' height='20'/>
|
|
|
|
<text x='70' y='405'>SVGAnimatedNumber</text>
|
|
|
|
</g>
|
|
|
|
|
|
|
|
<g display='none'>
|
|
|
|
<text id='text' rotate='0 20 40' x='10 20' lengthAdjust='spacing'>abc</text>
|
|
|
|
<circle id='circle' r='50' transform='scale(1) scale(2)' class='one'/>
|
|
|
|
<marker id='marker' orient='30'/>
|
2019-10-19 01:18:17 +00:00
|
|
|
<svg id='svg' viewBox='10 20 30 40' preserveAspectRatio='none'/>
|
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
|
|
|
<filter>
|
|
|
|
<feTurbulence id='feTurbulence' baseFrequency='2 3' numOctaves='2'/>
|
|
|
|
</filter>
|
2019-10-19 01:18:17 +00:00
|
|
|
<filter>
|
|
|
|
<feConvolveMatrix id='feConvolveMatrix' order="1" kernelMatrix="1"/>
|
|
|
|
</filter>
|
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
|
|
|
</g>
|
|
|
|
|
|
|
|
<script><![CDATA[
|
|
|
|
function $(id) { return document.getElementById(id); }
|
|
|
|
|
|
|
|
var text = $('text'),
|
|
|
|
circle = $('circle'),
|
|
|
|
marker = $('marker'),
|
|
|
|
svg = $('svg'),
|
|
|
|
feTurbulence = $('feTurbulence');
|
2019-10-19 01:18:17 +00:00
|
|
|
feConvolveMatrix = $('feConvolveMatrix');
|
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
|
|
|
|
|
|
|
function expect_exception(id, fn, code) {
|
|
|
|
try {
|
|
|
|
fn();
|
|
|
|
} catch (e) {
|
|
|
|
if (e.code == code) {
|
|
|
|
$(id).setAttribute('fill', 'green');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$(id).setAttribute('fill', 'red');
|
|
|
|
}
|
|
|
|
|
|
|
|
function expect_value(id, fn, value) {
|
|
|
|
try {
|
|
|
|
if (fn() === value) {
|
|
|
|
$(id).setAttribute('fill', 'green');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
}
|
|
|
|
$(id).setAttribute('fill', 'red');
|
|
|
|
}
|
|
|
|
|
|
|
|
// SVGAnimatedNumberList: rotate on text
|
|
|
|
expect_value
|
|
|
|
('r1',
|
|
|
|
function() {
|
|
|
|
return text.rotate.baseVal.numberOfItems == 3
|
|
|
|
&& (text.setAttribute('rotate', '0 20'), text.rotate.baseVal.numberOfItems == 2);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedLength: r on circle
|
|
|
|
expect_value
|
|
|
|
('r2',
|
|
|
|
function() {
|
|
|
|
return circle.r.baseVal.value == 50
|
|
|
|
&& (circle.setAttribute('r', '100'), circle.r.baseVal.value == 100);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedLengthList: x on text
|
|
|
|
expect_value
|
|
|
|
('r3',
|
|
|
|
function() {
|
|
|
|
return text.x.baseVal.numberOfItems == 2
|
|
|
|
&& (text.setAttribute('x', '10'), text.x.baseVal.numberOfItems == 1);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedAngle: orient on marker
|
|
|
|
expect_value
|
|
|
|
('r4',
|
|
|
|
function() {
|
|
|
|
return marker.orientAngle.baseVal.value == 30
|
|
|
|
&& (marker.setAttribute('orient', '60'), marker.orientAngle.baseVal.value == 60);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedRect: viewBox on svg
|
|
|
|
expect_value
|
|
|
|
('r5',
|
|
|
|
function() {
|
|
|
|
return svg.viewBox.baseVal.x == 10
|
|
|
|
&& (svg.setAttribute('viewBox', '20 30 40 50'), svg.viewBox.baseVal.x == 20);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedTransformList: transform on circle
|
|
|
|
expect_value
|
|
|
|
('r6',
|
|
|
|
function() {
|
|
|
|
return circle.transform.baseVal.numberOfItems == 2
|
|
|
|
&& (circle.setAttribute('transform', 'scale(1)'), circle.transform.baseVal.numberOfItems == 1);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedPreserveAspectRatio: preserveAspectRatio on svg
|
|
|
|
expect_value
|
|
|
|
('r7',
|
|
|
|
function() {
|
|
|
|
return svg.preserveAspectRatio.baseVal.align == 1 /* none */
|
|
|
|
&& (svg.setAttribute('preserveAspectRatio', 'xMidYMid'), svg.preserveAspectRatio.baseVal.align == 6);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
2019-10-19 01:18:17 +00:00
|
|
|
// SVGAnimatedBoolean: preserveAlpha on feConvolveMatrix
|
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
|
|
|
expect_value
|
|
|
|
('r8',
|
|
|
|
function() {
|
2019-10-19 01:18:17 +00:00
|
|
|
return !feConvolveMatrix.preserveAlpha.baseVal
|
|
|
|
&& (feConvolveMatrix.setAttribute('preserveAlpha', 'true'), feConvolveMatrix.preserveAlpha.baseVal);
|
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
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedString: class on circle
|
|
|
|
expect_value
|
|
|
|
('r9',
|
|
|
|
function() {
|
|
|
|
return circle.className.baseVal == 'one'
|
|
|
|
&& (circle.setAttribute('class', 'two'), circle.className.baseVal == 'two');
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedEnumeration: lengthAdjust on text
|
|
|
|
expect_value
|
|
|
|
('r10',
|
|
|
|
function() {
|
|
|
|
return text.lengthAdjust.baseVal == 1 /* spacing*/
|
|
|
|
&& (text.setAttribute('lengthAdjust', 'spacingAndGlyphs'), text.lengthAdjust.baseVal == 2);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedInteger: numOctaves on feTurbulence
|
|
|
|
expect_value
|
|
|
|
('r11',
|
|
|
|
function() {
|
|
|
|
return feTurbulence.numOctaves.baseVal == 2
|
|
|
|
&& (feTurbulence.setAttribute('numOctaves', '1'), feTurbulence.numOctaves.baseVal == 1);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
|
|
|
|
// SVGAnimatedNumber: baseFrequency on feTurbulence
|
|
|
|
expect_value
|
|
|
|
('r12',
|
|
|
|
function() {
|
|
|
|
return feTurbulence.baseFrequencyY.baseVal == 3
|
|
|
|
&& (feTurbulence.setAttribute('baseFrequency', '4 5'), feTurbulence.baseFrequencyY.baseVal == 5);
|
|
|
|
},
|
|
|
|
true);
|
|
|
|
]]></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>
|