WebKit Bugzilla
Attachment 356730 Details for
Bug 191237
: Remove SVG properties tear-off objects
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
12-FilesRemoval
12-FilesRemoval.patch (text/plain), 301.39 KB, created by
Said Abou-Hallawa
on 2018-12-06 08:02:55 PST
(
hide
)
Description:
12-FilesRemoval
Filename:
MIME Type:
Creator:
Said Abou-Hallawa
Created:
2018-12-06 08:02:55 PST
Size:
301.39 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index a0f8a5e4f07..2b0c7035112 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,60 @@ >+2018-12-05 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ Remove SVG properties tear-off objects >+ https://bugs.webkit.org/show_bug.cgi?id=191237 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This removes the code of the SVG tear-off objects. >+ >+ * Sources.txt: >+ * WebCore.xcodeproj/project.pbxproj: >+ * svg/SVGAnimatedAngle.cpp: Removed. >+ * svg/SVGAnimatedAngle.h: Removed. >+ * svg/SVGAnimatedColor.cpp: Removed. >+ * svg/SVGAnimatedColor.h: Removed. >+ * svg/SVGAnimatedEnumeration.cpp: Removed. >+ * svg/SVGAnimatedEnumeration.h: Removed. >+ * svg/SVGAnimatedInteger.cpp: Removed. >+ * svg/SVGAnimatedInteger.h: Removed. >+ * svg/SVGAnimatedIntegerOptionalInteger.cpp: Removed. >+ * svg/SVGAnimatedIntegerOptionalInteger.h: Removed. >+ * svg/SVGAnimatedLength.cpp: Removed. >+ * svg/SVGAnimatedLength.h: Removed. >+ * svg/SVGAnimatedLengthList.cpp: Removed. >+ * svg/SVGAnimatedLengthList.h: Removed. >+ * svg/SVGAnimatedNumber.cpp: Removed. >+ * svg/SVGAnimatedNumber.h: Removed. >+ * svg/SVGAnimatedNumberList.cpp: Removed. >+ * svg/SVGAnimatedNumberList.h: Removed. >+ * svg/SVGAnimatedNumberOptionalNumber.cpp: Removed. >+ * svg/SVGAnimatedNumberOptionalNumber.h: Removed. >+ * svg/SVGAnimatedRect.cpp: Removed. >+ * svg/SVGAnimatedRect.h: Removed. >+ * svg/SVGAnimatedString.cpp: Removed. >+ * svg/SVGAnimatedString.h: Removed. >+ * svg/SVGAnimatedTransformList.cpp: Removed. >+ * svg/SVGAnimatedTransformList.h: Removed. >+ * svg/SVGAnimatedType.h: Removed. >+ * svg/SVGAnimatedTypeAnimator.cpp: Removed. >+ * svg/SVGAnimatedTypeAnimator.h: Removed. >+ * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h: Removed. >+ * svg/properties/SVGAnimatedListPropertyTearOff.h: Removed. >+ * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Removed. >+ * svg/properties/SVGAnimatedPropertyDescription.h: Removed. >+ * svg/properties/SVGAnimatedPropertyTearOff.h: Removed. >+ * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Removed. >+ * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Removed. >+ * * svg/properties/SVGAttribute.h: Removed. >+ * svg/properties/SVGAttributeAccessor.h: Removed. >+ * svg/properties/SVGAttributeOwnerProxyImpl.h: Removed. >+ * svg/properties/SVGAttributeRegistry.h: Removed. >+ * svg/properties/SVGListProperty.h: Removed. >+ * svg/properties/SVGListPropertyTearOff.h: Removed. >+ * svg/properties/SVGPropertyTearOff.h: Removed. >+ * svg/properties/SVGStaticListPropertyTearOff.h: Removed. >+ * svg/properties/SVGStaticPropertyTearOff.h: Removed. >+ > 2018-12-05 Said Abou-Hallawa <sabouhallawa@apple.com> > > Remove SVG properties tear-off objects >diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt >index 24e9d569e53..41a73861446 100644 >--- a/Source/WebCore/Sources.txt >+++ b/Source/WebCore/Sources.txt >@@ -2186,24 +2186,6 @@ svg/SVGAnimateElement.cpp > svg/SVGAnimateElementBase.cpp > svg/SVGAnimateMotionElement.cpp > svg/SVGAnimateTransformElement.cpp >-svg/SVGAnimatedAngle.cpp >-svg/SVGAnimatedBoolean.cpp >-svg/SVGAnimatedColor.cpp >-svg/SVGAnimatedEnumeration.cpp >-svg/SVGAnimatedInteger.cpp >-svg/SVGAnimatedIntegerOptionalInteger.cpp >-svg/SVGAnimatedLength.cpp >-svg/SVGAnimatedLengthList.cpp >-svg/SVGAnimatedNumber.cpp >-svg/SVGAnimatedNumberList.cpp >-svg/SVGAnimatedNumberOptionalNumber.cpp >-svg/SVGAnimatedPath.cpp >-svg/SVGAnimatedPointList.cpp >-svg/SVGAnimatedPreserveAspectRatio.cpp >-svg/SVGAnimatedRect.cpp >-svg/SVGAnimatedString.cpp >-svg/SVGAnimatedTransformList.cpp >-svg/SVGAnimatedTypeAnimator.cpp > svg/SVGAnimationElement.cpp > svg/SVGCircleElement.cpp > svg/SVGClipPathElement.cpp >@@ -2263,7 +2245,6 @@ svg/SVGImageElement.cpp > svg/SVGImageLoader.cpp > svg/SVGLangSpace.cpp > svg/SVGLengthContext.cpp >-svg/SVGLengthListValues.cpp > svg/SVGLengthValue.cpp > svg/SVGLineElement.cpp > svg/SVGLinearGradientElement.cpp >@@ -2273,7 +2254,6 @@ svg/SVGMarkerElement.cpp > svg/SVGMaskElement.cpp > svg/SVGMetadataElement.cpp > svg/SVGMissingGlyphElement.cpp >-svg/SVGNumberListValues.cpp > svg/SVGParserUtilities.cpp > svg/SVGPathBlender.cpp > svg/SVGPathBuilder.cpp >@@ -2281,16 +2261,13 @@ svg/SVGPathByteStreamBuilder.cpp > svg/SVGPathByteStreamSource.cpp > svg/SVGPathElement.cpp > svg/SVGPathParser.cpp >-svg/SVGPathSegList.cpp > svg/SVGPathSegListBuilder.cpp > svg/SVGPathSegListSource.cpp >-svg/SVGPathSegListValues.cpp > svg/SVGPathStringBuilder.cpp > svg/SVGPathStringSource.cpp > svg/SVGPathTraversalStateBuilder.cpp > svg/SVGPathUtilities.cpp > svg/SVGPatternElement.cpp >-svg/SVGPointListValues.cpp > svg/SVGPolyElement.cpp > svg/SVGPolygonElement.cpp > svg/SVGPolylineElement.cpp >@@ -2301,7 +2278,6 @@ svg/SVGSVGElement.cpp > svg/SVGScriptElement.cpp > svg/SVGSetElement.cpp > svg/SVGStopElement.cpp >-svg/SVGStringListValues.cpp > svg/SVGStyleElement.cpp > svg/SVGSwitchElement.cpp > svg/SVGSymbolElement.cpp >@@ -2314,10 +2290,7 @@ svg/SVGTextPathElement.cpp > svg/SVGTextPositioningElement.cpp > svg/SVGTitleElement.cpp > svg/SVGToOTFFontConversion.cpp >-svg/SVGTransform.cpp > svg/SVGTransformDistance.cpp >-svg/SVGTransformListValues.cpp >-svg/SVGTransformValue.cpp > svg/SVGTransformable.cpp > svg/SVGURIReference.cpp > svg/SVGUnknownElement.cpp >@@ -2340,7 +2313,6 @@ svg/graphics/filters/SVGFEImage.cpp > svg/graphics/filters/SVGFilter.cpp > svg/graphics/filters/SVGFilterBuilder.cpp > >-svg/properties/SVGAnimatedPathSegListPropertyTearOff.cpp > svg/properties/SVGAnimatedProperty.cpp > svg/properties/SVGAnimationAdditiveValueFunctionImpl.cpp > svg/properties/SVGAnimator.cpp >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index ca6599de79e..3dc53bee0a6 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -224,20 +224,14 @@ > 0806E57A12893045007CED32 /* SVGMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0806E57912893045007CED32 /* SVGMatrix.h */; }; > 080E49261255F3BD00EFCA27 /* SVGTextLayoutEngineBaseline.h in Headers */ = {isa = PBXBuildFile; fileRef = 080E49221255F3BD00EFCA27 /* SVGTextLayoutEngineBaseline.h */; }; > 080E49281255F3BD00EFCA27 /* SVGTextLayoutEngineSpacing.h in Headers */ = {isa = PBXBuildFile; fileRef = 080E49241255F3BD00EFCA27 /* SVGTextLayoutEngineSpacing.h */; }; >- 0810764412828556007C63BA /* SVGListProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 0810764312828556007C63BA /* SVGListProperty.h */; }; > 081093DC1255F0E700ED9D29 /* SVGTextLayoutAttributesBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 081093DA1255F0E700ED9D29 /* SVGTextLayoutAttributesBuilder.h */; }; >- 0813A4EA1284132600992511 /* SVGStaticPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 0813A4E91284132600992511 /* SVGStaticPropertyTearOff.h */; }; > 081668D4125603BF006F25DE /* SVGTextChunkBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 081668D2125603BF006F25DE /* SVGTextChunkBuilder.h */; }; > 081668DA125603D5006F25DE /* SVGTextLayoutEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 081668D8125603D5006F25DE /* SVGTextLayoutEngine.h */; }; > 081AA8DA1111237E002AB06E /* SVGElementRareData.h in Headers */ = {isa = PBXBuildFile; fileRef = 081AA8D91111237E002AB06E /* SVGElementRareData.h */; }; > 081EBF3B0FD34F4100DA7559 /* SVGFilterBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 081EBF390FD34F4100DA7559 /* SVGFilterBuilder.h */; }; >- 0823D159127AD6AC000EBC95 /* SVGAnimatedInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */; }; >- 08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */; }; > 083DAEA70F01A7FB00342754 /* RenderTextControlMultiLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 083DAEA30F01A7FB00342754 /* RenderTextControlMultiLine.h */; }; > 083DAEA90F01A7FB00342754 /* RenderTextControlSingleLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 083DAEA50F01A7FB00342754 /* RenderTextControlSingleLine.h */; }; > 0845680812B90DA600960A9F /* FontMetrics.h in Headers */ = {isa = PBXBuildFile; fileRef = 0845680712B90DA600960A9F /* FontMetrics.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 084DB59B128008CC002A6D64 /* SVGAnimatedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 084DB59A128008CC002A6D64 /* SVGAnimatedString.h */; }; >- 08525E631278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 08525E621278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0854B0151255E4E600B9CDD0 /* RenderSVGInline.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0031255E4E600B9CDD0 /* RenderSVGInline.h */; }; > 0854B0171255E4E600B9CDD0 /* RenderSVGInlineText.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0051255E4E600B9CDD0 /* RenderSVGInlineText.h */; }; > 0854B0191255E4E600B9CDD0 /* RenderSVGText.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0071255E4E600B9CDD0 /* RenderSVGText.h */; }; >@@ -247,38 +241,20 @@ > 0854B0211255E4E600B9CDD0 /* SVGInlineTextBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B00F1255E4E600B9CDD0 /* SVGInlineTextBox.h */; }; > 0854B0231255E4E600B9CDD0 /* SVGRootInlineBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0111255E4E600B9CDD0 /* SVGRootInlineBox.h */; }; > 0854B0251255E4E600B9CDD0 /* SVGTextQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0131255E4E600B9CDD0 /* SVGTextQuery.h */; }; >- 085797091278394C00A8EC5F /* SVGAnimatedBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = 085797081278394C00A8EC5F /* SVGAnimatedBoolean.h */; }; >- 085A15931289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */; }; > 085B92BB0EFDE73D00E6123C /* FormDataBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 085B92B90EFDE73D00E6123C /* FormDataBuilder.h */; settings = {ATTRIBUTES = (); }; }; >- 0863951613B5FE5700BB344D /* SVGAnimatedPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0863951413B5FE5700BB344D /* SVGAnimatedPath.h */; }; > 08641D4812142F7D008DE9F6 /* RenderImageResourceStyleImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 08641D4612142F7D008DE9F6 /* RenderImageResourceStyleImage.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 086BBD0F136039C2008B15D8 /* Glyph.h in Headers */ = {isa = PBXBuildFile; fileRef = 086BBD0E136039C2008B15D8 /* Glyph.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0873B86B136064EA00A522C2 /* GlyphPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0873B86A136064EA00A522C2 /* GlyphPage.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 087558C613B4A57D00F49307 /* SurrogatePairAwareTextIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 087558C413B4A57D00F49307 /* SurrogatePairAwareTextIterator.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 087B84961272CEC800A14417 /* SVGAnimatedAngle.h in Headers */ = {isa = PBXBuildFile; fileRef = 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */; }; >- 0880F70E1282B46D00948505 /* SVGStaticListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 0880F70D1282B46D00948505 /* SVGStaticListPropertyTearOff.h */; }; > 0885067F11DA045B00182B98 /* PaintInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0885067D11DA045B00182B98 /* PaintInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0885068011DA045B00182B98 /* PaintPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0885067E11DA045B00182B98 /* PaintPhase.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 088A0E04126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0DFB126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h */; }; >- 088A0E06126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0DFD126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 088A0E08126EF1DB00978F7A /* SVGAnimatedPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0DFF126EF1DB00978F7A /* SVGAnimatedPropertyTearOff.h */; }; >- 088A0E09126EF1DB00978F7A /* SVGListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0E00126EF1DB00978F7A /* SVGListPropertyTearOff.h */; }; > 088A0E0A126EF1DB00978F7A /* SVGProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0E01126EF1DB00978F7A /* SVGProperty.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 088A0E0B126EF1DB00978F7A /* SVGPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0E02126EF1DB00978F7A /* SVGPropertyTearOff.h */; }; > 088A0E0C126EF1DB00978F7A /* SVGPropertyTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0E03126EF1DB00978F7A /* SVGPropertyTraits.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 088C2F7A12390081003D65CE /* SVGTextLayoutAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 088C2F7612390080003D65CE /* SVGTextLayoutAttributes.h */; }; >- 089021A9126EF5DE0092D5EA /* SVGAnimatedLength.h in Headers */ = {isa = PBXBuildFile; fileRef = 089021A8126EF5DE0092D5EA /* SVGAnimatedLength.h */; }; >- 089021AD126EF5E90092D5EA /* SVGAnimatedLengthList.h in Headers */ = {isa = PBXBuildFile; fileRef = 089021AC126EF5E90092D5EA /* SVGAnimatedLengthList.h */; }; > 089582560E857A7E00F82C83 /* ImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 089582540E857A7E00F82C83 /* ImageLoader.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 089A8E07128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */; }; > 08A484780E5272C500C3FE76 /* ScriptElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08A484760E5272C500C3FE76 /* ScriptElement.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 08B35B13127B6A7C005314DD /* SVGAnimatedNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */; }; >- 08B35B17127B6A88005314DD /* SVGAnimatedNumberList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */; }; > 08C7A2C710DC7462002D368B /* SVGNames.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 656581E909D1508D000E61D7 /* SVGNames.h */; }; >- 08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C859BF1274575300A5728D /* SVGAnimatedRect.h */; }; > 08C9251A0FCC7C4A00480DEC /* FilterEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C925180FCC7C4A00480DEC /* FilterEffect.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 08CA3D4412894A3800FFF260 /* SVGMatrixTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 08CA3D4312894A3800FFF260 /* SVGMatrixTearOff.h */; }; >- 08D46CE3127AD5FC0089694B /* SVGAnimatedEnumeration.h in Headers */ = {isa = PBXBuildFile; fileRef = 08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */; }; > 08EDE19F12A50B8E00B95797 /* SVGRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08EDE19E12A50B8E00B95797 /* SVGRect.h */; }; > 08F0BFC31255C53C00075185 /* SVGTextChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F0BFBE1255C53C00075185 /* SVGTextChunk.h */; }; > 08F0BFC41255C53C00075185 /* SVGTextFragment.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F0BFBF1255C53C00075185 /* SVGTextFragment.h */; }; >@@ -286,7 +262,6 @@ > 08F2F00A1213E61700DCEC48 /* RenderImageResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F2F0081213E61700DCEC48 /* RenderImageResource.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 08F859D51463F9CD0067D933 /* SVGImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F859D31463F9CD0067D933 /* SVGImageCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 08F859D51463F9CD0067D934 /* SVGImageForContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F859D31463F9CD0067D934 /* SVGImageForContainer.h */; }; >- 08FE0BC5127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */; }; > 0AFDAC3D10F5448C00E1F3D2 /* PluginViewBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AFDAC3C10F5448C00E1F3D2 /* PluginViewBase.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0B90561A0F2578BF0095FF6A /* DocumentThreadableLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B9056160F2578BE0095FF6A /* DocumentThreadableLoader.h */; settings = {ATTRIBUTES = (); }; }; > 0B90561B0F2578BF0095FF6A /* ThreadableLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B9056170F2578BE0095FF6A /* ThreadableLoader.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1160,7 +1135,6 @@ > 427DA71D13735DFA007C57FB /* JSServiceWorkerInternals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 427DA71B13735DFA007C57FB /* JSServiceWorkerInternals.cpp */; }; > 427DA71E13735DFA007C57FB /* JSServiceWorkerInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 427DA71C13735DFA007C57FB /* JSServiceWorkerInternals.h */; }; > 43107BE218CC19DE00CC18E8 /* SelectorPseudoTypeMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 43107BE118CC19DE00CC18E8 /* SelectorPseudoTypeMap.h */; }; >- 431A2F9C13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 431A2F9A13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.h */; }; > 432D3FE818A8658400D7DC03 /* SelectorCheckerTestFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 432D3FE718A8658400D7DC03 /* SelectorCheckerTestFunctions.h */; }; > 4358E87D1360A2EE00E4748C /* JSSVGFEDropShadowElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4358E87B1360A2EE00E4748C /* JSSVGFEDropShadowElement.h */; }; > 4358E8811360A31700E4748C /* FEDropShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 4358E87F1360A31700E4748C /* FEDropShadow.h */; }; >@@ -1205,12 +1179,8 @@ > 439046EA12DA25E812AF80AC /* MathOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D612DA25E812AF80AC /* MathOperator.h */; }; > 439046EC12DA25E800AF80A9 /* RenderMathMLToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D812DA25E800AF80A9 /* RenderMathMLToken.h */; }; > 439176E012DA25E17BAF80A2 /* MathMLStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 439176CC12DA25E17BAF80A2 /* MathMLStyle.h */; }; >- 439D334313A6911C00C20F4F /* SVGAnimatedType.h in Headers */ = {isa = PBXBuildFile; fileRef = 439D334013A6911C00C20F4F /* SVGAnimatedType.h */; }; >- 439D334413A6911C00C20F4F /* SVGAnimatedTypeAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 439D334113A6911C00C20F4F /* SVGAnimatedTypeAnimator.h */; }; > 439D334513A6911C00C20F4F /* SVGAnimatorFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 439D334213A6911C00C20F4F /* SVGAnimatorFactory.h */; }; >- 43A625F813B3304000AC94B8 /* SVGAnimatedColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 43A625F613B3304000AC94B8 /* SVGAnimatedColor.h */; }; > 43B85ED418CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43B85ED218CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.cpp */; }; >- 43B9336913B261B1004584BF /* SVGAnimatedPointList.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B9336713B261B1004584BF /* SVGAnimatedPointList.h */; }; > 43C092BC12D9E4EE00A989C3 /* RenderSVGForeignObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 43C092BA12D9E4EE00A989C3 /* RenderSVGForeignObject.h */; }; > 43EDD67F1B485DBF00640E75 /* CombinedFiltersAlphabet.h in Headers */ = {isa = PBXBuildFile; fileRef = 43EDD67D1B485DBF00640E75 /* CombinedFiltersAlphabet.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 4415292E0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1758,7 +1728,6 @@ > 53ED3FDE167A88E7006762E6 /* JSInternalSettingsGenerated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */; }; > 53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */; }; > 550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 55346AF121150FAF0059BCDD /* SVGAttributeOwnerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 55346AF021150FAF0059BCDD /* SVGAttributeOwnerProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 5546757B1FD212A9003B10B0 /* ImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 554675781FD1FC1A003B10B0 /* ImageSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 5550CB421E955E3C00111AA0 /* ImageTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5550CB411E955E3C00111AA0 /* ImageTypes.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 555130011E7CCCCB00A69E38 /* DecodingOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 555130001E7CCCCA00A69E38 /* DecodingOptions.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1767,11 +1736,7 @@ > 55A336F91D821E3C0022C4C7 /* ImageBackingStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 55A336F81D821E3C0022C4C7 /* ImageBackingStore.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 55AF14E61EAAC59B0026EEAA /* UTIRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 55AF14E41EAAC59B0026EEAA /* UTIRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 55EC9599206AA7A0007DD0A9 /* PaintFrequencyTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 55EC95972069C92D007DD0A9 /* PaintFrequencyTracker.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 55FA7FF0210FA386005AEFE7 /* SVGAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA7FEF210FA386005AEFE7 /* SVGAttribute.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 55FA7FF5210FB6B1005AEFE7 /* SVGAttributeAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA7FF4210FB688005AEFE7 /* SVGAttributeAccessor.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 55FA7FF7210FBE3E005AEFE7 /* SVGAttributeRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA7FF6210FBE3E005AEFE7 /* SVGAttributeRegistry.h */; }; > 55FA7FFB2110ECD7005AEFE7 /* SVGZoomAndPanType.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA7FFA2110ECD7005AEFE7 /* SVGZoomAndPanType.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 55FA7FFF21110E6E005AEFE7 /* SVGAnimatedPropertyType.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA7FFE21110E6E005AEFE7 /* SVGAnimatedPropertyType.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 55FA8001211113EE005AEFE7 /* SVGAnimatedProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A0DFC126EF1DB00978F7A /* SVGAnimatedProperty.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 5704405A1E53936200356601 /* JSAesCbcCfbParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 570440591E53936200356601 /* JSAesCbcCfbParams.h */; }; > 5706A6961DDE5C9500A03B14 /* CryptoAlgorithmRsaOaepParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 5706A6951DDE5C9500A03B14 /* CryptoAlgorithmRsaOaepParams.h */; }; >@@ -2099,9 +2064,7 @@ > 71C916081D1483A300ACA47D /* UserInterfaceLayoutDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 71C916071D1483A300ACA47D /* UserInterfaceLayoutDirection.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 71DCB7021568197600862271 /* JSSVGZoomAndPan.h in Headers */ = {isa = PBXBuildFile; fileRef = 71DCB7001568197600862271 /* JSSVGZoomAndPan.h */; }; > 71E2183A17359FB8006E6E4D /* PlugInsResources.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E2183817359FB8006E6E4D /* PlugInsResources.h */; }; >- 71E623D1151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E623CF151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h */; }; > 71EFCEDC202B38A900D7C411 /* AnimationEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 71EFCED7202B388D00D7C411 /* AnimationEffect.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 71FB967B1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 71FB967A1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h */; }; > 724ED32C1A3A7E5400F5F13C /* EXTBlendMinMax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 724ED3291A3A7E5400F5F13C /* EXTBlendMinMax.cpp */; }; > 724ED3321A3A8B2300F5F13C /* JSEXTBlendMinMax.h in Headers */ = {isa = PBXBuildFile; fileRef = 724ED3301A3A8B2300F5F13C /* JSEXTBlendMinMax.h */; }; > 724EE5501DC80D7F00A91FFB /* ActivityState.h in Headers */ = {isa = PBXBuildFile; fileRef = 724EE54E1DC7F25B00A91FFB /* ActivityState.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -5514,10 +5477,8 @@ > 080E49221255F3BD00EFCA27 /* SVGTextLayoutEngineBaseline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextLayoutEngineBaseline.h; sourceTree = "<group>"; }; > 080E49231255F3BD00EFCA27 /* SVGTextLayoutEngineSpacing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextLayoutEngineSpacing.cpp; sourceTree = "<group>"; }; > 080E49241255F3BD00EFCA27 /* SVGTextLayoutEngineSpacing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextLayoutEngineSpacing.h; sourceTree = "<group>"; }; >- 0810764312828556007C63BA /* SVGListProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGListProperty.h; sourceTree = "<group>"; }; > 081093D91255F0E700ED9D29 /* SVGTextLayoutAttributesBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextLayoutAttributesBuilder.cpp; sourceTree = "<group>"; }; > 081093DA1255F0E700ED9D29 /* SVGTextLayoutAttributesBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextLayoutAttributesBuilder.h; sourceTree = "<group>"; }; >- 0813A4E91284132600992511 /* SVGStaticPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGStaticPropertyTearOff.h; sourceTree = "<group>"; }; > 081668D1125603BF006F25DE /* SVGTextChunkBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextChunkBuilder.cpp; sourceTree = "<group>"; }; > 081668D2125603BF006F25DE /* SVGTextChunkBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextChunkBuilder.h; sourceTree = "<group>"; }; > 081668D7125603D5006F25DE /* SVGTextLayoutEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextLayoutEngine.cpp; sourceTree = "<group>"; }; >@@ -5525,15 +5486,11 @@ > 081AA8D91111237E002AB06E /* SVGElementRareData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGElementRareData.h; sourceTree = "<group>"; }; > 081EBF380FD34F4100DA7559 /* SVGFilterBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFilterBuilder.cpp; sourceTree = "<group>"; }; > 081EBF390FD34F4100DA7559 /* SVGFilterBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFilterBuilder.h; sourceTree = "<group>"; }; >- 0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedInteger.h; sourceTree = "<group>"; }; >- 08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformList.h; sourceTree = "<group>"; }; > 083DAEA20F01A7FB00342754 /* RenderTextControlMultiLine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControlMultiLine.cpp; sourceTree = "<group>"; }; > 083DAEA30F01A7FB00342754 /* RenderTextControlMultiLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextControlMultiLine.h; sourceTree = "<group>"; }; > 083DAEA40F01A7FB00342754 /* RenderTextControlSingleLine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControlSingleLine.cpp; sourceTree = "<group>"; }; > 083DAEA50F01A7FB00342754 /* RenderTextControlSingleLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextControlSingleLine.h; sourceTree = "<group>"; }; > 0845680712B90DA600960A9F /* FontMetrics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontMetrics.h; sourceTree = "<group>"; }; >- 084DB59A128008CC002A6D64 /* SVGAnimatedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedString.h; sourceTree = "<group>"; }; >- 08525E621278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedStaticPropertyTearOff.h; sourceTree = "<group>"; }; > 0854B0021255E4E600B9CDD0 /* RenderSVGInline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGInline.cpp; sourceTree = "<group>"; }; > 0854B0031255E4E600B9CDD0 /* RenderSVGInline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGInline.h; sourceTree = "<group>"; }; > 0854B0041255E4E600B9CDD0 /* RenderSVGInlineText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGInlineText.cpp; sourceTree = "<group>"; }; >@@ -5551,46 +5508,27 @@ > 0854B0111255E4E600B9CDD0 /* SVGRootInlineBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRootInlineBox.h; sourceTree = "<group>"; }; > 0854B0121255E4E600B9CDD0 /* SVGTextQuery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextQuery.cpp; sourceTree = "<group>"; }; > 0854B0131255E4E600B9CDD0 /* SVGTextQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextQuery.h; sourceTree = "<group>"; }; >- 085797081278394C00A8EC5F /* SVGAnimatedBoolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedBoolean.h; sourceTree = "<group>"; }; >- 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformListPropertyTearOff.h; sourceTree = "<group>"; }; > 085B92B80EFDE73D00E6123C /* FormDataBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormDataBuilder.cpp; sourceTree = "<group>"; }; > 085B92B90EFDE73D00E6123C /* FormDataBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormDataBuilder.h; sourceTree = "<group>"; }; >- 0863951313B5FE5700BB344D /* SVGAnimatedPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPath.cpp; sourceTree = "<group>"; }; >- 0863951413B5FE5700BB344D /* SVGAnimatedPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPath.h; sourceTree = "<group>"; }; > 08641D4512142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderImageResourceStyleImage.cpp; sourceTree = "<group>"; }; > 08641D4612142F7D008DE9F6 /* RenderImageResourceStyleImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderImageResourceStyleImage.h; sourceTree = "<group>"; }; > 086BBD0E136039C2008B15D8 /* Glyph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Glyph.h; sourceTree = "<group>"; }; > 0873B86A136064EA00A522C2 /* GlyphPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlyphPage.h; sourceTree = "<group>"; }; > 087558C313B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurrogatePairAwareTextIterator.cpp; sourceTree = "<group>"; }; > 087558C413B4A57D00F49307 /* SurrogatePairAwareTextIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurrogatePairAwareTextIterator.h; sourceTree = "<group>"; }; >- 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedAngle.h; sourceTree = "<group>"; }; >- 0880F70D1282B46D00948505 /* SVGStaticListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGStaticListPropertyTearOff.h; sourceTree = "<group>"; }; > 0885067D11DA045B00182B98 /* PaintInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaintInfo.h; sourceTree = "<group>"; }; > 0885067E11DA045B00182B98 /* PaintPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaintPhase.h; sourceTree = "<group>"; }; >- 088A0DFB126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedListPropertyTearOff.h; sourceTree = "<group>"; }; > 088A0DFC126EF1DB00978F7A /* SVGAnimatedProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedProperty.h; sourceTree = "<group>"; }; >- 088A0DFD126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPropertyDescription.h; sourceTree = "<group>"; }; >- 088A0DFF126EF1DB00978F7A /* SVGAnimatedPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPropertyTearOff.h; sourceTree = "<group>"; }; >- 088A0E00126EF1DB00978F7A /* SVGListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGListPropertyTearOff.h; sourceTree = "<group>"; }; > 088A0E01126EF1DB00978F7A /* SVGProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGProperty.h; sourceTree = "<group>"; }; >- 088A0E02126EF1DB00978F7A /* SVGPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPropertyTearOff.h; sourceTree = "<group>"; }; > 088A0E03126EF1DB00978F7A /* SVGPropertyTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPropertyTraits.h; sourceTree = "<group>"; }; > 088C2F7512390080003D65CE /* SVGTextLayoutAttributes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextLayoutAttributes.cpp; sourceTree = "<group>"; }; > 088C2F7612390080003D65CE /* SVGTextLayoutAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextLayoutAttributes.h; sourceTree = "<group>"; }; >- 089021A8126EF5DE0092D5EA /* SVGAnimatedLength.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedLength.h; sourceTree = "<group>"; }; >- 089021AC126EF5E90092D5EA /* SVGAnimatedLengthList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedLengthList.h; sourceTree = "<group>"; }; > 089582530E857A7E00F82C83 /* ImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageLoader.cpp; sourceTree = "<group>"; }; > 089582540E857A7E00F82C83 /* ImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageLoader.h; sourceTree = "<group>"; }; >- 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPathSegListPropertyTearOff.h; sourceTree = "<group>"; }; > 08A484750E5272C500C3FE76 /* ScriptElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptElement.cpp; sourceTree = "<group>"; }; > 08A484760E5272C500C3FE76 /* ScriptElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptElement.h; sourceTree = "<group>"; }; >- 08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumber.h; sourceTree = "<group>"; }; >- 08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumberList.h; sourceTree = "<group>"; }; >- 08C859BF1274575300A5728D /* SVGAnimatedRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedRect.h; sourceTree = "<group>"; }; > 08C925170FCC7C4A00480DEC /* FilterEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FilterEffect.cpp; sourceTree = "<group>"; }; > 08C925180FCC7C4A00480DEC /* FilterEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterEffect.h; sourceTree = "<group>"; }; >- 08CA3D4312894A3800FFF260 /* SVGMatrixTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMatrixTearOff.h; sourceTree = "<group>"; }; >- 08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedEnumeration.h; sourceTree = "<group>"; }; > 08EDE19E12A50B8E00B95797 /* SVGRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRect.h; sourceTree = "<group>"; }; > 08F0BFBD1255C53C00075185 /* SVGTextChunk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextChunk.cpp; sourceTree = "<group>"; }; > 08F0BFBE1255C53C00075185 /* SVGTextChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextChunk.h; sourceTree = "<group>"; }; >@@ -5603,7 +5541,6 @@ > 08F859D21463F9CD0067D934 /* SVGImageForContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImageForContainer.cpp; sourceTree = "<group>"; }; > 08F859D31463F9CD0067D933 /* SVGImageCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageCache.h; sourceTree = "<group>"; }; > 08F859D31463F9CD0067D934 /* SVGImageForContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageForContainer.h; sourceTree = "<group>"; }; >- 08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPreserveAspectRatio.h; sourceTree = "<group>"; }; > 0AFDAC3C10F5448C00E1F3D2 /* PluginViewBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginViewBase.h; sourceTree = "<group>"; }; > 0B8C56D30F28627F000502E1 /* HTTPHeaderMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPHeaderMap.cpp; sourceTree = "<group>"; }; > 0B9056150F2578BE0095FF6A /* DocumentThreadableLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentThreadableLoader.cpp; sourceTree = "<group>"; }; >@@ -7440,14 +7377,7 @@ > 427DA71B13735DFA007C57FB /* JSServiceWorkerInternals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSServiceWorkerInternals.cpp; sourceTree = "<group>"; }; > 427DA71C13735DFA007C57FB /* JSServiceWorkerInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSServiceWorkerInternals.h; sourceTree = "<group>"; }; > 43107BE118CC19DE00CC18E8 /* SelectorPseudoTypeMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectorPseudoTypeMap.h; sourceTree = "<group>"; }; >- 43142E7913B1E97700F1C871 /* SVGAnimatedRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedRect.cpp; sourceTree = "<group>"; }; >- 431A2F9A13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumberOptionalNumber.h; sourceTree = "<group>"; }; >- 431A2F9B13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedNumberOptionalNumber.cpp; sourceTree = "<group>"; }; >- 431A2FD613B7707A007791E4 /* SVGAnimatedLengthList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedLengthList.cpp; sourceTree = "<group>"; }; >- 431A302013B89DCC007791E4 /* SVGAnimatedPreserveAspectRatio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPreserveAspectRatio.cpp; sourceTree = "<group>"; }; >- 431A308713B8F978007791E4 /* SVGAnimatedBoolean.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedBoolean.cpp; sourceTree = "<group>"; }; > 432D3FE718A8658400D7DC03 /* SelectorCheckerTestFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectorCheckerTestFunctions.h; sourceTree = "<group>"; }; >- 4331AC7713B6870000A9E5AE /* SVGAnimatedNumberList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedNumberList.cpp; sourceTree = "<group>"; }; > 4358E87A1360A2EE00E4748C /* JSSVGFEDropShadowElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGFEDropShadowElement.cpp; sourceTree = "<group>"; }; > 4358E87B1360A2EE00E4748C /* JSSVGFEDropShadowElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSVGFEDropShadowElement.h; sourceTree = "<group>"; }; > 4358E87E1360A31700E4748C /* FEDropShadow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FEDropShadow.cpp; sourceTree = "<group>"; }; >@@ -7455,7 +7385,6 @@ > 4358E8821360A33B00E4748C /* SVGFEDropShadowElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEDropShadowElement.cpp; sourceTree = "<group>"; }; > 4358E8831360A33B00E4748C /* SVGFEDropShadowElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEDropShadowElement.h; sourceTree = "<group>"; }; > 4358E8841360A33B00E4748C /* SVGFEDropShadowElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SVGFEDropShadowElement.idl; sourceTree = "<group>"; }; >- 4362C7B813AC6F1A00344BEB /* SVGAnimatedAngle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedAngle.cpp; sourceTree = "<group>"; }; > 4367088112D9CA4A00044234 /* RenderSVGBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGBlock.cpp; sourceTree = "<group>"; }; > 4367088212D9CA4A00044234 /* RenderSVGBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGBlock.h; sourceTree = "<group>"; }; > 4367088312D9CA4A00044234 /* RenderSVGContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGContainer.cpp; sourceTree = "<group>"; }; >@@ -7509,7 +7438,6 @@ > 436708B912D9CA4B00044234 /* SVGResourcesCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCache.h; sourceTree = "<group>"; }; > 436708BA12D9CA4B00044234 /* SVGResourcesCycleSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourcesCycleSolver.cpp; sourceTree = "<group>"; }; > 436708BB12D9CA4B00044234 /* SVGResourcesCycleSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCycleSolver.h; sourceTree = "<group>"; }; >- 4381763A13A697D4007D1187 /* SVGAnimatedLength.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedLength.cpp; sourceTree = "<group>"; }; > 439046C312DA25E800AF80A2 /* RenderMathMLBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLBlock.cpp; sourceTree = "<group>"; }; > 439046C412DA25E800AF80A2 /* RenderMathMLBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLBlock.h; sourceTree = "<group>"; }; > 439046C512DA25E800AF80A2 /* RenderMathMLFenced.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLFenced.cpp; sourceTree = "<group>"; }; >@@ -7536,25 +7464,16 @@ > 439046D812DA25E800AF80A9 /* RenderMathMLToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLToken.h; sourceTree = "<group>"; }; > 439176CB12DA25E17BAF80A2 /* MathMLStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLStyle.cpp; sourceTree = "<group>"; }; > 439176CC12DA25E17BAF80A2 /* MathMLStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLStyle.h; sourceTree = "<group>"; }; >- 439D334013A6911C00C20F4F /* SVGAnimatedType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedType.h; sourceTree = "<group>"; }; >- 439D334113A6911C00C20F4F /* SVGAnimatedTypeAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTypeAnimator.h; sourceTree = "<group>"; }; > 439D334213A6911C00C20F4F /* SVGAnimatorFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatorFactory.h; sourceTree = "<group>"; }; >- 43A0F0B013AC7D6D00A5F0A7 /* SVGAnimatedNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedNumber.cpp; sourceTree = "<group>"; }; >- 43A625F613B3304000AC94B8 /* SVGAnimatedColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedColor.h; sourceTree = "<group>"; }; >- 43A625F713B3304000AC94B8 /* SVGAnimatedColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedColor.cpp; sourceTree = "<group>"; }; >- 43A6266613B3D11000AC94B8 /* SVGAnimatedString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedString.cpp; sourceTree = "<group>"; }; > 43B85ED018CBEACE00E31AF4 /* makeSelectorPseudoClassAndCompatibilityElementMap.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = makeSelectorPseudoClassAndCompatibilityElementMap.py; sourceTree = "<group>"; }; > 43B85ED218CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SelectorPseudoClassAndCompatibilityElementMap.cpp; path = DerivedSources/WebCore/SelectorPseudoClassAndCompatibilityElementMap.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; > 43B85ED318CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.gperf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file; name = SelectorPseudoClassAndCompatibilityElementMap.gperf; path = DerivedSources/WebCore/SelectorPseudoClassAndCompatibilityElementMap.gperf; sourceTree = BUILT_PRODUCTS_DIR; }; > 43B85ED618CBEC9700E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SelectorPseudoClassAndCompatibilityElementMap.in; sourceTree = "<group>"; }; >- 43B9336713B261B1004584BF /* SVGAnimatedPointList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPointList.h; sourceTree = "<group>"; }; >- 43B9336813B261B1004584BF /* SVGAnimatedPointList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPointList.cpp; sourceTree = "<group>"; }; > 43C092B912D9E4EE00A989C3 /* RenderSVGForeignObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGForeignObject.cpp; sourceTree = "<group>"; }; > 43C092BA12D9E4EE00A989C3 /* RenderSVGForeignObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGForeignObject.h; sourceTree = "<group>"; }; > 43D2597613C816F400608559 /* ImageBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBuffer.cpp; sourceTree = "<group>"; }; > 43EDD67C1B485DBF00640E75 /* CombinedFiltersAlphabet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CombinedFiltersAlphabet.cpp; sourceTree = "<group>"; }; > 43EDD67D1B485DBF00640E75 /* CombinedFiltersAlphabet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CombinedFiltersAlphabet.h; sourceTree = "<group>"; }; >- 43F6FD9513BCD0B100224052 /* SVGAnimatedInteger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedInteger.cpp; sourceTree = "<group>"; }; > 4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLPlugInImageElement.h; sourceTree = "<group>"; }; > 4415292D0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLPlugInImageElement.cpp; sourceTree = "<group>"; }; > 442956CA218A6D300080DB54 /* DictionaryLookupLegacy.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = DictionaryLookupLegacy.mm; sourceTree = "<group>"; }; >@@ -8513,8 +8432,6 @@ > 550A0BC8085F6039007353D6 /* QualifiedName.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QualifiedName.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; > 55137B2C20379E550001004B /* SVGMarkerTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerTypes.h; sourceTree = "<group>"; }; > 55137B34203CEB710001004B /* SVGValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGValue.h; sourceTree = "<group>"; }; >- 55346AF021150FAF0059BCDD /* SVGAttributeOwnerProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGAttributeOwnerProxy.h; sourceTree = "<group>"; }; >- 55346AFA2117FFAF0059BCDD /* SVGAttributeOwnerProxyImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGAttributeOwnerProxyImpl.h; sourceTree = "<group>"; }; > 554675771FD1FC1A003B10B0 /* ImageSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ImageSource.cpp; sourceTree = "<group>"; }; > 554675781FD1FC1A003B10B0 /* ImageSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageSource.h; sourceTree = "<group>"; }; > 5550CB411E955E3C00111AA0 /* ImageTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageTypes.h; sourceTree = "<group>"; }; >@@ -8530,12 +8447,7 @@ > 55AF14E41EAAC59B0026EEAA /* UTIRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UTIRegistry.h; sourceTree = "<group>"; }; > 55D408F71A7C631800C78450 /* SVGImageClients.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageClients.h; sourceTree = "<group>"; }; > 55EC95972069C92D007DD0A9 /* PaintFrequencyTracker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PaintFrequencyTracker.h; sourceTree = "<group>"; }; >- 55FA7FEF210FA386005AEFE7 /* SVGAttribute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGAttribute.h; sourceTree = "<group>"; }; >- 55FA7FF4210FB688005AEFE7 /* SVGAttributeAccessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAttributeAccessor.h; sourceTree = "<group>"; }; >- 55FA7FF6210FBE3E005AEFE7 /* SVGAttributeRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGAttributeRegistry.h; sourceTree = "<group>"; }; > 55FA7FFA2110ECD7005AEFE7 /* SVGZoomAndPanType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGZoomAndPanType.h; sourceTree = "<group>"; }; >- 55FA7FFC2110F813005AEFE7 /* SVGAnimatedPathSegListPropertyTearOff.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPathSegListPropertyTearOff.cpp; sourceTree = "<group>"; }; >- 55FA7FFE21110E6E005AEFE7 /* SVGAnimatedPropertyType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPropertyType.h; sourceTree = "<group>"; }; > 570440571E53851600356601 /* CryptoAlgorithmAES_CFBMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmAES_CFBMac.cpp; sourceTree = "<group>"; }; > 570440591E53936200356601 /* JSAesCbcCfbParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAesCbcCfbParams.h; sourceTree = "<group>"; }; > 5704405B1E53937900356601 /* JSAesCbcCfbParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAesCbcCfbParams.cpp; sourceTree = "<group>"; }; >@@ -9220,7 +9132,6 @@ > 71556CB61F9F09FC00E78D08 /* JSKeyframeEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSKeyframeEffect.cpp; sourceTree = "<group>"; }; > 71556CB71F9F09FC00E78D08 /* JSKeyframeEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSKeyframeEffect.h; sourceTree = "<group>"; }; > 7157E3D11DC1EE4B0094550E /* scrubbing-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "scrubbing-support.js"; sourceTree = "<group>"; }; >- 7157F061150B6564006EAABD /* SVGAnimatedTransformList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTransformList.cpp; sourceTree = "<group>"; }; > 715AD71D2050512400D592DC /* DeclarativeAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeclarativeAnimation.h; sourceTree = "<group>"; }; > 715AD71F2050512400D592DC /* DeclarativeAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeclarativeAnimation.cpp; sourceTree = "<group>"; }; > 715DA5D3201BB902002EF2B0 /* JSWebAnimationCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebAnimationCustom.cpp; sourceTree = "<group>"; }; >@@ -9289,7 +9200,6 @@ > 71C29E31203CE76C008F36D2 /* CSSAnimation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CSSAnimation.idl; sourceTree = "<group>"; }; > 71C5BB1B1FB611EA0007A2AE /* Animatable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Animatable.idl; sourceTree = "<group>"; }; > 71C916071D1483A300ACA47D /* UserInterfaceLayoutDirection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserInterfaceLayoutDirection.h; sourceTree = "<group>"; }; >- 71CC7A1F152A0BFE009EEAF9 /* SVGAnimatedEnumeration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedEnumeration.cpp; sourceTree = "<group>"; }; > 71D02D901DB55C4E00DD5CF5 /* main.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = main.js; sourceTree = "<group>"; }; > 71D02D921DB55C4E00DD5CF5 /* media-controller.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "media-controller.js"; sourceTree = "<group>"; }; > 71D2554F1DB900020004D76B /* skip-back-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "skip-back-support.js"; sourceTree = "<group>"; }; >@@ -9308,14 +9218,11 @@ > 71DE2794203A9C1C0058CB51 /* compact-media-controls.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "compact-media-controls.js"; sourceTree = "<group>"; }; > 71E2183817359FB8006E6E4D /* PlugInsResources.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; name = PlugInsResources.h; path = DerivedSources/WebCore/PlugInsResources.h; sourceTree = BUILT_PRODUCTS_DIR; }; > 71E2183917359FB8006E6E4D /* PlugInsResourcesData.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = PlugInsResourcesData.cpp; path = DerivedSources/WebCore/PlugInsResourcesData.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; >- 71E623CE151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedIntegerOptionalInteger.cpp; sourceTree = "<group>"; }; >- 71E623CF151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedIntegerOptionalInteger.h; sourceTree = "<group>"; }; > 71EFCED6202B388C00D7C411 /* AnimationEffect.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AnimationEffect.idl; sourceTree = "<group>"; }; > 71EFCED7202B388D00D7C411 /* AnimationEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimationEffect.h; sourceTree = "<group>"; }; > 71EFCEDA202B388F00D7C411 /* AnimationEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnimationEffect.cpp; sourceTree = "<group>"; }; > 71EFCEDE202B39C700D7C411 /* JSAnimationEffectCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAnimationEffectCustom.cpp; sourceTree = "<group>"; }; > 71F936F71DD4F99B00922CC7 /* tracks-support.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "tracks-support.js"; sourceTree = "<group>"; }; >- 71FB967A1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedEnumerationPropertyTearOff.h; sourceTree = "<group>"; }; > 72227A6C21B4B1F6008EC3E4 /* SVGPropertyOwner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPropertyOwner.h; sourceTree = "<group>"; }; > 72227A6D21B4B1F7008EC3E4 /* SVGValueProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGValueProperty.h; sourceTree = "<group>"; }; > 72227A6E21B4B302008EC3E4 /* SVGTransformValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTransformValue.h; sourceTree = "<group>"; }; >@@ -10000,7 +9907,6 @@ > 836D032D1DA8A13200FFD96B /* JSClipboardEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSClipboardEvent.cpp; sourceTree = "<group>"; }; > 836D032E1DA8A13200FFD96B /* JSClipboardEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSClipboardEvent.h; sourceTree = "<group>"; }; > 836DAA051CEAB7CD00A2B707 /* RenderDescendantIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderDescendantIterator.h; sourceTree = "<group>"; }; >- 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTypeAnimator.cpp; sourceTree = "<group>"; }; > 836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedProperty.cpp; sourceTree = "<group>"; }; > 837056881F50915000D93425 /* JSFileCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileCallback.cpp; sourceTree = "<group>"; }; > 837056891F50915000D93425 /* JSFileSystemEntryCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFileSystemEntryCallback.h; sourceTree = "<group>"; }; >@@ -15797,10 +15703,6 @@ > 72227A9C21B74E52008EC3E4 /* SVGAccessor.h */, > 72227AA221B74E54008EC3E4 /* SVGAccessorPtr.h */, > 72227A7F21B6DC6D008EC3E4 /* SVGAnimatedDecoratedProperty.h */, >- 71FB967A1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h */, >- 088A0DFB126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h */, >- 55FA7FFC2110F813005AEFE7 /* SVGAnimatedPathSegListPropertyTearOff.cpp */, >- 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */, > 72227A8121B6DC6E008EC3E4 /* SVGAnimatedPrimitiveProperty.h */, > 836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */, > 088A0DFC126EF1DB00978F7A /* SVGAnimatedProperty.h */, >@@ -15809,16 +15711,11 @@ > 72227A9221B6F5CE008EC3E4 /* SVGAnimatedPropertyAnimator.h */, > 72227A8F21B6F5CC008EC3E4 /* SVGAnimatedPropertyAnimatorImpl.h */, > 72227A8021B6DC6E008EC3E4 /* SVGAnimatedPropertyImpl.h */, >- 088A0DFD126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h */, > 72227A8221B6DC6F008EC3E4 /* SVGAnimatedPropertyList.h */, > 72227A9B21B74E51008EC3E4 /* SVGAnimatedPropertyPairAccessor.h */, > 72227AA121B74E54008EC3E4 /* SVGAnimatedPropertyPairAccessorImpl.h */, > 72227A9721B6F5D0008EC3E4 /* SVGAnimatedPropertyPairAnimator.h */, > 72227A8E21B6F5CC008EC3E4 /* SVGAnimatedPropertyPairAnimatorImpl.h */, >- 088A0DFF126EF1DB00978F7A /* SVGAnimatedPropertyTearOff.h */, >- 55FA7FFE21110E6E005AEFE7 /* SVGAnimatedPropertyType.h */, >- 08525E621278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h */, >- 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */, > 72227A8321B6DC6F008EC3E4 /* SVGAnimatedValueProperty.h */, > 72227A8C21B6EAA4008EC3E4 /* SVGAnimationAdditiveFunction.h */, > 72227A8621B6EAA1008EC3E4 /* SVGAnimationAdditiveListFunction.h */, >@@ -15831,18 +15728,10 @@ > 72227A8921B6EAA3008EC3E4 /* SVGAnimationFunction.h */, > 72227A9921B6F5D1008EC3E4 /* SVGAnimator.cpp */, > 72227A9521B6F5CF008EC3E4 /* SVGAnimator.h */, >- 55FA7FEF210FA386005AEFE7 /* SVGAttribute.h */, >- 55FA7FF4210FB688005AEFE7 /* SVGAttributeAccessor.h */, >- 55346AF021150FAF0059BCDD /* SVGAttributeOwnerProxy.h */, >- 55346AFA2117FFAF0059BCDD /* SVGAttributeOwnerProxyImpl.h */, >- 55FA7FF6210FBE3E005AEFE7 /* SVGAttributeRegistry.h */, > 72227A7521B586E7008EC3E4 /* SVGDecoratedEnumeration.h */, > 72227A7621B586E8008EC3E4 /* SVGDecoratedPrimitive.h */, > 72227A7721B586E8008EC3E4 /* SVGDecoratedProperty.h */, > 72227A7421B50901008EC3E4 /* SVGList.h */, >- 0810764312828556007C63BA /* SVGListProperty.h */, >- 088A0E00126EF1DB00978F7A /* SVGListPropertyTearOff.h */, >- 08CA3D4312894A3800FFF260 /* SVGMatrixTearOff.h */, > 72227A7321B50901008EC3E4 /* SVGPrimitiveList.h */, > 72227A9021B6F5CD008EC3E4 /* SVGPrimitivePropertyAnimator.h */, > 72227A9321B6F5CE008EC3E4 /* SVGPrimitivePropertyAnimatorImpl.h */, >@@ -15855,10 +15744,7 @@ > 72227A6C21B4B1F6008EC3E4 /* SVGPropertyOwner.h */, > 72EF237921B834C30092076B /* SVGPropertyOwnerRegistry.h */, > 72EF237721B834C20092076B /* SVGPropertyRegistry.h */, >- 088A0E02126EF1DB00978F7A /* SVGPropertyTearOff.h */, > 088A0E03126EF1DB00978F7A /* SVGPropertyTraits.h */, >- 0880F70D1282B46D00948505 /* SVGStaticListPropertyTearOff.h */, >- 0813A4E91284132600992511 /* SVGStaticPropertyTearOff.h */, > 72227A6D21B4B1F7008EC3E4 /* SVGValueProperty.h */, > 72227A8D21B6F5CB008EC3E4 /* SVGValuePropertyAnimator.h */, > 72227A9821B6F5D0008EC3E4 /* SVGValuePropertyAnimatorImpl.h */, >@@ -23495,55 +23381,18 @@ > B22277E30D00BF1F0071B782 /* SVGAnimateColorElement.cpp */, > B22277E40D00BF1F0071B782 /* SVGAnimateColorElement.h */, > B22277E50D00BF1F0071B782 /* SVGAnimateColorElement.idl */, >- 4362C7B813AC6F1A00344BEB /* SVGAnimatedAngle.cpp */, >- 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */, > B22277E60D00BF1F0071B782 /* SVGAnimatedAngle.idl */, >- 431A308713B8F978007791E4 /* SVGAnimatedBoolean.cpp */, >- 085797081278394C00A8EC5F /* SVGAnimatedBoolean.h */, > B22277E70D00BF1F0071B782 /* SVGAnimatedBoolean.idl */, >- 43A625F713B3304000AC94B8 /* SVGAnimatedColor.cpp */, >- 43A625F613B3304000AC94B8 /* SVGAnimatedColor.h */, >- 71CC7A1F152A0BFE009EEAF9 /* SVGAnimatedEnumeration.cpp */, >- 08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */, > B22277E80D00BF1F0071B782 /* SVGAnimatedEnumeration.idl */, >- 43F6FD9513BCD0B100224052 /* SVGAnimatedInteger.cpp */, >- 0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */, > B22277E90D00BF1F0071B782 /* SVGAnimatedInteger.idl */, >- 71E623CE151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.cpp */, >- 71E623CF151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h */, >- 4381763A13A697D4007D1187 /* SVGAnimatedLength.cpp */, >- 089021A8126EF5DE0092D5EA /* SVGAnimatedLength.h */, > B22277EA0D00BF1F0071B782 /* SVGAnimatedLength.idl */, >- 431A2FD613B7707A007791E4 /* SVGAnimatedLengthList.cpp */, >- 089021AC126EF5E90092D5EA /* SVGAnimatedLengthList.h */, > B22277EB0D00BF1F0071B782 /* SVGAnimatedLengthList.idl */, >- 43A0F0B013AC7D6D00A5F0A7 /* SVGAnimatedNumber.cpp */, >- 08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */, > B22277EC0D00BF1F0071B782 /* SVGAnimatedNumber.idl */, >- 4331AC7713B6870000A9E5AE /* SVGAnimatedNumberList.cpp */, >- 08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */, > B22277ED0D00BF1F0071B782 /* SVGAnimatedNumberList.idl */, >- 431A2F9B13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.cpp */, >- 431A2F9A13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.h */, >- 0863951313B5FE5700BB344D /* SVGAnimatedPath.cpp */, >- 0863951413B5FE5700BB344D /* SVGAnimatedPath.h */, >- 43B9336813B261B1004584BF /* SVGAnimatedPointList.cpp */, >- 43B9336713B261B1004584BF /* SVGAnimatedPointList.h */, >- 431A302013B89DCC007791E4 /* SVGAnimatedPreserveAspectRatio.cpp */, >- 08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */, > B22277F40D00BF1F0071B782 /* SVGAnimatedPreserveAspectRatio.idl */, >- 43142E7913B1E97700F1C871 /* SVGAnimatedRect.cpp */, >- 08C859BF1274575300A5728D /* SVGAnimatedRect.h */, > B22277F50D00BF1F0071B782 /* SVGAnimatedRect.idl */, >- 43A6266613B3D11000AC94B8 /* SVGAnimatedString.cpp */, >- 084DB59A128008CC002A6D64 /* SVGAnimatedString.h */, > B22277F60D00BF1F0071B782 /* SVGAnimatedString.idl */, >- 7157F061150B6564006EAABD /* SVGAnimatedTransformList.cpp */, >- 08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */, > B22277F80D00BF1F0071B782 /* SVGAnimatedTransformList.idl */, >- 439D334013A6911C00C20F4F /* SVGAnimatedType.h */, >- 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */, >- 439D334113A6911C00C20F4F /* SVGAnimatedTypeAnimator.h */, > B22277F90D00BF1F0071B782 /* SVGAnimateElement.cpp */, > B22277FA0D00BF1F0071B782 /* SVGAnimateElement.h */, > B22277FB0D00BF1F0071B782 /* SVGAnimateElement.idl */, >@@ -31097,44 +30946,13 @@ > 24D912B813CA9A6900D21915 /* SVGAltGlyphItemElement.h in Headers */, > B22279770D00BF220071B782 /* SVGAngle.h in Headers */, > B222797A0D00BF220071B782 /* SVGAnimateColorElement.h in Headers */, >- 087B84961272CEC800A14417 /* SVGAnimatedAngle.h in Headers */, >- 085797091278394C00A8EC5F /* SVGAnimatedBoolean.h in Headers */, >- 43A625F813B3304000AC94B8 /* SVGAnimatedColor.h in Headers */, >- 08D46CE3127AD5FC0089694B /* SVGAnimatedEnumeration.h in Headers */, >- 71FB967B1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h in Headers */, >- 0823D159127AD6AC000EBC95 /* SVGAnimatedInteger.h in Headers */, >- 71E623D1151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h in Headers */, >- 089021A9126EF5DE0092D5EA /* SVGAnimatedLength.h in Headers */, >- 089021AD126EF5E90092D5EA /* SVGAnimatedLengthList.h in Headers */, >- 088A0E04126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h in Headers */, >- 08B35B13127B6A7C005314DD /* SVGAnimatedNumber.h in Headers */, >- 08B35B17127B6A88005314DD /* SVGAnimatedNumberList.h in Headers */, >- 431A2F9C13B6F2B0007791E4 /* SVGAnimatedNumberOptionalNumber.h in Headers */, >- 0863951613B5FE5700BB344D /* SVGAnimatedPath.h in Headers */, >- 089A8E07128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h in Headers */, >- 43B9336913B261B1004584BF /* SVGAnimatedPointList.h in Headers */, >- 08FE0BC5127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h in Headers */, > 55FA8001211113EE005AEFE7 /* SVGAnimatedProperty.h in Headers */, >- 088A0E06126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h in Headers */, >- 088A0E08126EF1DB00978F7A /* SVGAnimatedPropertyTearOff.h in Headers */, >- 55FA7FFF21110E6E005AEFE7 /* SVGAnimatedPropertyType.h in Headers */, >- 08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */, >- 08525E631278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h in Headers */, >- 084DB59B128008CC002A6D64 /* SVGAnimatedString.h in Headers */, >- 08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */, >- 085A15931289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h in Headers */, >- 439D334313A6911C00C20F4F /* SVGAnimatedType.h in Headers */, >- 439D334413A6911C00C20F4F /* SVGAnimatedTypeAnimator.h in Headers */, > B22279900D00BF220071B782 /* SVGAnimateElement.h in Headers */, > 832B843419D8E55100B26055 /* SVGAnimateElementBase.h in Headers */, > B22279930D00BF220071B782 /* SVGAnimateMotionElement.h in Headers */, > B22279950D00BF220071B782 /* SVGAnimateTransformElement.h in Headers */, > B22279980D00BF220071B782 /* SVGAnimationElement.h in Headers */, > 439D334513A6911C00C20F4F /* SVGAnimatorFactory.h in Headers */, >- 55FA7FF0210FA386005AEFE7 /* SVGAttribute.h in Headers */, >- 55FA7FF5210FB6B1005AEFE7 /* SVGAttributeAccessor.h in Headers */, >- 55346AF121150FAF0059BCDD /* SVGAttributeOwnerProxy.h in Headers */, >- 55FA7FF7210FBE3E005AEFE7 /* SVGAttributeRegistry.h in Headers */, > B222799C0D00BF220071B782 /* SVGCircleElement.h in Headers */, > B222799F0D00BF220071B782 /* SVGClipPathElement.h in Headers */, > B22279A50D00BF220071B782 /* SVGComponentTransferFunctionElement.h in Headers */, >@@ -31208,14 +31026,11 @@ > 7CCEBFC01DD8F6AB002C40B8 /* SVGLengthValue.h in Headers */, > B2227A390D00BF220071B782 /* SVGLinearGradientElement.h in Headers */, > B2227A3C0D00BF220071B782 /* SVGLineElement.h in Headers */, >- 0810764412828556007C63BA /* SVGListProperty.h in Headers */, >- 088A0E09126EF1DB00978F7A /* SVGListPropertyTearOff.h in Headers */, > B2227A410D00BF220071B782 /* SVGLocatable.h in Headers */, > 436708EE12D9CA4B00044234 /* SVGMarkerData.h in Headers */, > B2227A440D00BF220071B782 /* SVGMarkerElement.h in Headers */, > B2227A470D00BF220071B782 /* SVGMaskElement.h in Headers */, > 0806E57A12893045007CED32 /* SVGMatrix.h in Headers */, >- 08CA3D4412894A3800FFF260 /* SVGMatrixTearOff.h in Headers */, > B2227A4B0D00BF220071B782 /* SVGMetadataElement.h in Headers */, > B2A1F2B10CEF0ABF00442F6A /* SVGMissingGlyphElement.h in Headers */, > B2227A4E0D00BF220071B782 /* SVGMPathElement.h in Headers */, >@@ -31251,7 +31066,6 @@ > B2227A940D00BF220071B782 /* SVGPolylineElement.h in Headers */, > B2227A970D00BF220071B782 /* SVGPreserveAspectRatio.h in Headers */, > 088A0E0A126EF1DB00978F7A /* SVGProperty.h in Headers */, >- 088A0E0B126EF1DB00978F7A /* SVGPropertyTearOff.h in Headers */, > 088A0E0C126EF1DB00978F7A /* SVGPropertyTraits.h in Headers */, > B2227A9A0D00BF220071B782 /* SVGRadialGradientElement.h in Headers */, > 08EDE19F12A50B8E00B95797 /* SVGRect.h in Headers */, >@@ -31269,8 +31083,6 @@ > B2227AA30D00BF220071B782 /* SVGScriptElement.h in Headers */, > B2227AA60D00BF220071B782 /* SVGSetElement.h in Headers */, > E4AFD0100DAF335500F5F55C /* SVGSMILElement.h in Headers */, >- 0880F70E1282B46D00948505 /* SVGStaticListPropertyTearOff.h in Headers */, >- 0813A4EA1284132600992511 /* SVGStaticPropertyTearOff.h in Headers */, > B2227AA90D00BF220071B782 /* SVGStopElement.h in Headers */, > B2227AAC0D00BF220071B782 /* SVGStringList.h in Headers */, > B2227AB80D00BF220071B782 /* SVGStyleElement.h in Headers */, >diff --git a/Source/WebCore/svg/SVGAnimatedAngle.cpp b/Source/WebCore/svg/SVGAnimatedAngle.cpp >deleted file mode 100644 >index 54b7145a0cd..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedAngle.cpp >+++ /dev/null >@@ -1,136 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011, 2012. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedAngle.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGMarkerElement.h" >- >-namespace WebCore { >- >-SVGAnimatedAngleAnimator::SVGAnimatedAngleAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedAngle, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedAngleAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<std::pair<SVGAngleValue, unsigned>>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedAngleAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValues<SVGAnimatedAngle, SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedAngleAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForTypes<SVGAnimatedAngle, SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedAngleAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValues<SVGAnimatedAngle, SVGAnimatedEnumeration>(animatedTypes, type); >-} >- >-void SVGAnimatedAngleAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForTypes<SVGAnimatedAngle, SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedAngleAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForTypes<SVGAnimatedAngle, SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedAngleAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedAngle); >- ASSERT(from->type() == to->type()); >- >- const auto& fromAngleAndEnumeration = from->as<std::pair<SVGAngleValue, unsigned>>(); >- auto& toAngleAndEnumeration = to->as<std::pair<SVGAngleValue, unsigned>>(); >- // Only respect by animations, if from and by are both specified in angles (and not eg. 'auto'). >- if (fromAngleAndEnumeration.second != toAngleAndEnumeration.second || fromAngleAndEnumeration.second != SVGMarkerOrientAngle) >- return; >- const auto& fromAngle = fromAngleAndEnumeration.first; >- auto& toAngle = toAngleAndEnumeration.first; >- toAngle.setValue(toAngle.value() + fromAngle.value()); >-} >- >-void SVGAnimatedAngleAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto& fromAngleAndEnumeration = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<std::pair<SVGAngleValue, unsigned>>(); >- auto& toAngleAndEnumeration = to->as<std::pair<SVGAngleValue, unsigned>>(); >- auto& toAtEndOfDurationAngleAndEnumeration = toAtEndOfDuration->as<std::pair<SVGAngleValue, unsigned>>(); >- auto& animatedAngleAndEnumeration = animated->as<std::pair<SVGAngleValue, unsigned>>(); >- >- if (fromAngleAndEnumeration.second != toAngleAndEnumeration.second) { >- // Discrete animation - no linear interpolation possible between values (e.g. auto to angle). >- if (percentage < 0.5f) { >- animatedAngleAndEnumeration.second = fromAngleAndEnumeration.second; >- if (fromAngleAndEnumeration.second == SVGMarkerOrientAngle) >- animatedAngleAndEnumeration.first = fromAngleAndEnumeration.first; >- else >- animatedAngleAndEnumeration.first.setValue(0); >- return; >- } >- animatedAngleAndEnumeration.second = toAngleAndEnumeration.second; >- if (toAngleAndEnumeration.second == SVGMarkerOrientAngle) >- animatedAngleAndEnumeration.first = toAngleAndEnumeration.first; >- else >- animatedAngleAndEnumeration.first.setValue(0); >- return; >- } >- >- if (fromAngleAndEnumeration.second == SVGMarkerOrientAngle) { >- // Regular from angle to angle animation, with support for smooth interpolation, and additive and accumulated animation. >- animatedAngleAndEnumeration.second = SVGMarkerOrientAngle; >- >- auto& animatedSVGAngle = animatedAngleAndEnumeration.first; >- const auto& toAtEndOfDurationSVGAngle = toAtEndOfDurationAngleAndEnumeration.first; >- float animatedAngle = animatedSVGAngle.value(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromAngleAndEnumeration.first.value(), toAngleAndEnumeration.first.value(), toAtEndOfDurationSVGAngle.value(), animatedAngle); >- animatedSVGAngle.setValue(animatedAngle); >- return; >- } >- >- // auto, auto-start-reverse, or unknown. >- animatedAngleAndEnumeration.first.setValue(0); >- >- if (fromAngleAndEnumeration.second == SVGMarkerOrientAuto || fromAngleAndEnumeration.second == SVGMarkerOrientAutoStartReverse) >- animatedAngleAndEnumeration.second = fromAngleAndEnumeration.second; >- else >- animatedAngleAndEnumeration.second = SVGMarkerOrientUnknown; >-} >- >-float SVGAnimatedAngleAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- auto from = SVGAngleValue(); >- from.setValueAsString(fromString); >- auto to = SVGAngleValue(); >- to.setValueAsString(toString); >- return fabsf(to.value() - from.value()); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedAngle.h b/Source/WebCore/svg/SVGAnimatedAngle.h >deleted file mode 100644 >index d4915683f61..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedAngle.h >+++ /dev/null >@@ -1,52 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAngle.h" >-#include "SVGAnimatedPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttribute.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedAngle = SVGAnimatedPropertyTearOff<SVGAngle>; >-using SVGAnimatedAngleAttribute = SVGAnimatedAttribute<SVGAnimatedAngle>; >- >-class SVGAnimatedAngleAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedAngleAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedColor.cpp b/Source/WebCore/svg/SVGAnimatedColor.cpp >deleted file mode 100644 >index 33bd692412f..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedColor.cpp >+++ /dev/null >@@ -1,120 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedColor.h" >- >-#include "CSSParser.h" >-#include "RenderElement.h" >-#include "SVGAnimateElementBase.h" >- >-namespace WebCore { >- >-SVGAnimatedColorAnimator::SVGAnimatedColorAnimator(SVGAnimationElement& animationElement, SVGElement& contextElement) >- : SVGAnimatedTypeAnimator(AnimatedColor, &animationElement, &contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedColorAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<Color>::fromString(string)); >-} >- >-void SVGAnimatedColorAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from); >- ASSERT(to); >- ASSERT(from->type() == AnimatedColor); >- ASSERT(to->type() == AnimatedColor); >- >- // Ignores any alpha and sets alpha on result to 100% opaque. >- const auto& fromColor = from->as<Color>(); >- auto& toColor = to->as<Color>(); >- toColor = { roundAndClampColorChannel(toColor.red() + fromColor.red()), >- roundAndClampColorChannel(toColor.green() + fromColor.green()), >- roundAndClampColorChannel(toColor.blue() + fromColor.blue()) }; >-} >- >-static inline Color currentColor(SVGElement& targetElement) >-{ >- RenderElement* targetRenderer = targetElement.renderer(); >- if (!targetRenderer) >- return { }; >- return targetRenderer->style().visitedDependentColor(CSSPropertyColor); >-} >- >-static Color parseColorFromString(SVGAnimationElement*, const String& string) >-{ >- return CSSParser::parseColor(string.stripWhiteSpace()); >-} >- >-void SVGAnimatedColorAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- auto fromColor = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<Color>(); >- auto toColor = to->as<Color>(); >- >- // Apply CSS inheritance rules. >- m_animationElement->adjustForInheritance<Color>(parseColorFromString, m_animationElement->fromPropertyValueType(), fromColor, m_contextElement); >- m_animationElement->adjustForInheritance<Color>(parseColorFromString, m_animationElement->toPropertyValueType(), toColor, m_contextElement); >- >- // Apply <animateColor> rules. >- if (m_animationElement->fromPropertyValueType() == CurrentColorValue) >- fromColor = currentColor(*m_contextElement); >- if (m_animationElement->toPropertyValueType() == CurrentColorValue) >- toColor = currentColor(*m_contextElement); >- >- const auto& toAtEndOfDurationColor = toAtEndOfDuration->as<Color>(); >- auto& animatedColor = animated->as<Color>(); >- >- // FIXME: ExtendedColor - this will need to handle blending between colors in different color spaces, >- // as well as work with non [0-255] Colors. >- float red = animatedColor.red(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromColor.red(), toColor.red(), toAtEndOfDurationColor.red(), red); >- >- float green = animatedColor.green(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromColor.green(), toColor.green(), toAtEndOfDurationColor.green(), green); >- >- float blue = animatedColor.blue(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromColor.blue(), toColor.blue(), toAtEndOfDurationColor.blue(), blue); >- >- float alpha = animatedColor.alpha(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromColor.alpha(), toColor.alpha(), toAtEndOfDurationColor.alpha(), alpha); >- >- animatedColor = { roundAndClampColorChannel(red), roundAndClampColorChannel(green), roundAndClampColorChannel(blue), roundAndClampColorChannel(alpha) }; >-} >- >-float SVGAnimatedColorAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- Color from = CSSParser::parseColor(fromString.stripWhiteSpace()); >- if (!from.isValid()) >- return -1; >- Color to = CSSParser::parseColor(toString.stripWhiteSpace()); >- if (!to.isValid()) >- return -1; >- float red = from.red() - to.red(); >- float green = from.green() - to.green(); >- float blue = from.blue() - to.blue(); >- return sqrtf(red * red + green * green + blue * blue); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedColor.h b/Source/WebCore/svg/SVGAnimatedColor.h >deleted file mode 100644 >index 1e4041bae8c..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedColor.h >+++ /dev/null >@@ -1,42 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedTypeAnimator.h" >- >-namespace WebCore { >- >-class SVGAnimatedColorAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedColorAnimator(SVGAnimationElement&, SVGElement&); >- >-private: >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) final; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) final { return nullptr; } >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) final { } >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) final { } >- void animValWillChange(const SVGElementAnimatedPropertyList&) final { } >- void animValDidChange(const SVGElementAnimatedPropertyList&) final { } >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) final; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) final; >- float calculateDistance(const String& fromString, const String& toString) final; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedEnumeration.cpp b/Source/WebCore/svg/SVGAnimatedEnumeration.cpp >deleted file mode 100644 >index 34b4ca29a33..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedEnumeration.cpp >+++ /dev/null >@@ -1,164 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2012. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedEnumeration.h" >- >-#include "SVGAnimationElement.h" >-#include "SVGComponentTransferFunctionElement.h" >-#include "SVGFEBlendElement.h" >-#include "SVGFEColorMatrixElement.h" >-#include "SVGFECompositeElement.h" >-#include "SVGFEConvolveMatrixElement.h" >-#include "SVGFEDisplacementMapElement.h" >-#include "SVGFEMorphologyElement.h" >-#include "SVGFETurbulenceElement.h" >-#include "SVGGradientElement.h" >-#include "SVGMarkerElement.h" >-#include "SVGNames.h" >-#include "SVGTextContentElement.h" >-#include "SVGTextPathElement.h" >-#include "SVGUnitTypes.h" >- >-namespace WebCore { >- >-static inline unsigned enumerationValueForTargetAttribute(SVGElement* targetElement, const QualifiedName& attrName, const String& value) >-{ >- ASSERT(targetElement); >- if (attrName == SVGNames::clipPathUnitsAttr >- || attrName == SVGNames::filterUnitsAttr >- || attrName == SVGNames::gradientUnitsAttr >- || attrName == SVGNames::maskContentUnitsAttr >- || attrName == SVGNames::maskUnitsAttr >- || attrName == SVGNames::patternContentUnitsAttr >- || attrName == SVGNames::patternUnitsAttr >- || attrName == SVGNames::primitiveUnitsAttr) >- return SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString(value); >- >- if (attrName == SVGNames::lengthAdjustAttr) >- return SVGPropertyTraits<SVGLengthAdjustType>::fromString(value); >- if (attrName == SVGNames::markerUnitsAttr) >- return SVGPropertyTraits<SVGMarkerUnitsType>::fromString(value); >- if (attrName == SVGNames::methodAttr) >- return SVGPropertyTraits<SVGTextPathMethodType>::fromString(value); >- if (attrName == SVGNames::spacingAttr) >- return SVGPropertyTraits<SVGTextPathSpacingType>::fromString(value); >- if (attrName == SVGNames::spreadMethodAttr) >- return SVGPropertyTraits<SVGSpreadMethodType>::fromString(value); >- >- if (attrName == SVGNames::edgeModeAttr) >- return SVGPropertyTraits<EdgeModeType>::fromString(value); >- >- if (attrName == SVGNames::operatorAttr) { >- if (targetElement->hasTagName(SVGNames::feCompositeTag)) >- return SVGPropertyTraits<CompositeOperationType>::fromString(value); >- ASSERT(targetElement->hasTagName(SVGNames::feMorphologyTag)); >- return SVGPropertyTraits<MorphologyOperatorType>::fromString(value); >- } >- >- if (attrName == SVGNames::typeAttr) { >- if (targetElement->hasTagName(SVGNames::feColorMatrixTag)) >- return SVGPropertyTraits<ColorMatrixType>::fromString(value); >- if (targetElement->hasTagName(SVGNames::feTurbulenceTag)) >- return static_cast<unsigned>(SVGPropertyTraits<TurbulenceType>::fromString(value)); >- >- ASSERT(targetElement->hasTagName(SVGNames::feFuncATag) >- || targetElement->hasTagName(SVGNames::feFuncBTag) >- || targetElement->hasTagName(SVGNames::feFuncGTag) >- || targetElement->hasTagName(SVGNames::feFuncRTag)); >- return SVGPropertyTraits<ComponentTransferType>::fromString(value); >- } >- >- if (attrName == SVGNames::modeAttr) { >- BlendMode mode = BlendMode::Normal; >- parseBlendMode(value, mode); >- return static_cast<unsigned>(mode); >- } >- if (attrName == SVGNames::stitchTilesAttr) >- return SVGPropertyTraits<SVGStitchOptions>::fromString(value); >- if (attrName == SVGNames::xChannelSelectorAttr) >- return SVGPropertyTraits<ChannelSelectorType>::fromString(value); >- if (attrName == SVGNames::yChannelSelectorAttr) >- return SVGPropertyTraits<ChannelSelectorType>::fromString(value); >- >- ASSERT_NOT_REACHED(); >- return 0; >-} >- >-SVGAnimatedEnumerationAnimator::SVGAnimatedEnumerationAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedEnumeration, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedEnumerationAnimator::constructFromString(const String& string) >-{ >- ASSERT(m_animationElement); >- return SVGAnimatedType::create(enumerationValueForTargetAttribute(m_animationElement->targetElement(), m_animationElement->attributeName(), string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedEnumerationAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedEnumerationAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedEnumeration>(animatedTypes, type); >-} >- >-void SVGAnimatedEnumerationAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedEnumerationAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedEnumeration>(animatedTypes); >-} >- >-void SVGAnimatedEnumerationAnimator::addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) >-{ >- ASSERT_NOT_REACHED(); >-} >- >-void SVGAnimatedEnumerationAnimator::calculateAnimatedValue(float percentage, unsigned, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType*, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto fromEnumeration = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<unsigned>(); >- const auto toEnumeration = to->as<unsigned>(); >- auto& animatedEnumeration = animated->as<unsigned>(); >- >- m_animationElement->animateDiscreteType<unsigned>(percentage, fromEnumeration, toEnumeration, animatedEnumeration); >-} >- >-float SVGAnimatedEnumerationAnimator::calculateDistance(const String&, const String&) >-{ >- // No paced animations for enumerations. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedEnumeration.h b/Source/WebCore/svg/SVGAnimatedEnumeration.h >deleted file mode 100644 >index 488ab897390..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedEnumeration.h >+++ /dev/null >@@ -1,55 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010, 2012. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedEnumerationPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedEnumeration = SVGAnimatedStaticPropertyTearOff<unsigned>; >- >-template<typename EnumType> >-using SVGAnimatedEnumerationAttribute = SVGAnimatedAttribute<SVGAnimatedEnumerationPropertyTearOff<EnumType>>; >- >-template<typename OwnerType, typename EnumType> >-using SVGAnimatedEnumerationAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedEnumerationAttribute<EnumType>, AnimatedEnumeration>; >- >-class SVGAnimatedEnumerationAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedEnumerationAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedInteger.cpp b/Source/WebCore/svg/SVGAnimatedInteger.cpp >deleted file mode 100644 >index 0f77a21f57e..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedInteger.cpp >+++ /dev/null >@@ -1,101 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedInteger.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedNumber.h" >-#include <wtf/MathExtras.h> >- >-namespace WebCore { >- >-SVGAnimatedIntegerAnimator::SVGAnimatedIntegerAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedInteger, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedIntegerAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<int>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedIntegerAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedInteger>(animatedTypes, type); >-} >- >-void SVGAnimatedIntegerAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedInteger); >- ASSERT(from->type() == to->type()); >- >- to->as<int>() += from->as<int>(); >-} >- >-void SVGAnimatedIntegerAnimator::calculateAnimatedInteger(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, int fromInteger, int toInteger, int toAtEndOfDurationInteger, int& animatedInteger) >-{ >- float animatedNumber = animatedInteger; >- animationElement->animateAdditiveNumber(percentage, repeatCount, fromInteger, toInteger, toAtEndOfDurationInteger, animatedNumber); >- animatedInteger = static_cast<int>(roundf(animatedNumber)); >-} >- >-void SVGAnimatedIntegerAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto fromInteger = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<int>(); >- const auto toInteger = to->as<int>(); >- const auto toAtEndOfDurationInteger = toAtEndOfDuration->as<int>(); >- auto& animatedInteger = animated->as<int>(); >- >- calculateAnimatedInteger(m_animationElement, percentage, repeatCount, fromInteger, toInteger, toAtEndOfDurationInteger, animatedInteger); >-} >- >-float SVGAnimatedIntegerAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- ASSERT(m_contextElement); >- int from = fromString.toIntStrict(); >- int to = toString.toIntStrict(); >- return abs(to - from); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedInteger.h b/Source/WebCore/svg/SVGAnimatedInteger.h >deleted file mode 100644 >index 1c234876bda..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedInteger.h >+++ /dev/null >@@ -1,58 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedStaticPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedInteger = SVGAnimatedStaticPropertyTearOff<int>; >-using SVGAnimatedIntegerAttribute = SVGAnimatedAttribute<SVGAnimatedInteger>; >- >-template<typename OwnerType> >-using SVGAnimatedIntegerAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedIntegerAttribute, AnimatedInteger>; >- >-template<typename OwnerType> >-using SVGAnimatedOptionalIntegerAttributeAccessor = SVGAnimatedOptionalAttributeAccessor<OwnerType, SVGAnimatedIntegerAttribute, AnimatedIntegerOptionalInteger>; >- >-class SVGAnimatedIntegerAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedIntegerAnimator(SVGAnimationElement*, SVGElement*); >- >- static void calculateAnimatedInteger(SVGAnimationElement*, float percentage, unsigned repeatCount, int fromInteger, int toInteger, int toAtEndOfDurationInteger, int& animatedInteger); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.cpp b/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.cpp >deleted file mode 100644 >index 5053f112d48..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.cpp >+++ /dev/null >@@ -1,96 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2012. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedIntegerOptionalInteger.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedInteger.h" >-#include "SVGParserUtilities.h" >- >-namespace WebCore { >- >-SVGAnimatedIntegerOptionalIntegerAnimator::SVGAnimatedIntegerOptionalIntegerAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedIntegerOptionalInteger, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<std::pair<int, int>>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValues<SVGAnimatedInteger, SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForTypes<SVGAnimatedInteger, SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValues<SVGAnimatedInteger, SVGAnimatedInteger>(animatedTypes, type); >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForTypes<SVGAnimatedInteger, SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForTypes<SVGAnimatedInteger, SVGAnimatedInteger>(animatedTypes); >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedIntegerOptionalInteger); >- ASSERT(from->type() == to->type()); >- >- const auto& fromIntegerPair = from->as<std::pair<int, int>>(); >- auto& toIntegerPair = to->as<std::pair<int, int>>(); >- >- toIntegerPair.first += fromIntegerPair.first; >- toIntegerPair.second += fromIntegerPair.second; >-} >- >-void SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto& fromIntegerPair = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<std::pair<int, int>>(); >- const auto& toIntegerPair = to->as<std::pair<int, int>>(); >- const auto& toAtEndOfDurationIntegerPair = toAtEndOfDuration->as<std::pair<int, int>>(); >- auto& animatedIntegerPair = animated->as<std::pair<int, int>>(); >- >- SVGAnimatedIntegerAnimator::calculateAnimatedInteger(m_animationElement, percentage, repeatCount, fromIntegerPair.first, toIntegerPair.first, toAtEndOfDurationIntegerPair.first, animatedIntegerPair.first); >- SVGAnimatedIntegerAnimator::calculateAnimatedInteger(m_animationElement, percentage, repeatCount, fromIntegerPair.second, toIntegerPair.second, toAtEndOfDurationIntegerPair.second, animatedIntegerPair.second); >-} >- >-float SVGAnimatedIntegerOptionalIntegerAnimator::calculateDistance(const String&, const String&) >-{ >- // FIXME: Distance calculation is not possible for SVGIntegerOptionalInteger right now. We need the distance for every single value. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.h b/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.h >deleted file mode 100644 >index 10f1ea98ad7..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.h >+++ /dev/null >@@ -1,44 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2012. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedTypeAnimator.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-class SVGAnimatedIntegerOptionalIntegerAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedIntegerOptionalIntegerAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedLength.cpp b/Source/WebCore/svg/SVGAnimatedLength.cpp >deleted file mode 100644 >index 0fac3eb238e..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedLength.cpp >+++ /dev/null >@@ -1,117 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedLength.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedNumber.h" >- >-namespace WebCore { >- >-SVGAnimatedLengthAnimator::SVGAnimatedLengthAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedLength, animationElement, contextElement) >- , m_lengthMode(SVGLengthValue::lengthModeForAnimatedLengthAttribute(animationElement->attributeName())) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedLengthAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGLengthValue(m_lengthMode, string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedLengthAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedLength>(animatedTypes); >-} >- >-void SVGAnimatedLengthAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedLength>(animatedTypes); >-} >- >-void SVGAnimatedLengthAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedLength>(animatedTypes, type); >-} >- >-void SVGAnimatedLengthAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedLength>(animatedTypes); >-} >- >-void SVGAnimatedLengthAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedLength>(animatedTypes); >-} >- >-void SVGAnimatedLengthAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedLength); >- ASSERT(from->type() == to->type()); >- >- SVGLengthContext lengthContext(m_contextElement); >- const auto& fromLength = from->as<SVGLengthValue>(); >- auto& toLength = to->as<SVGLengthValue>(); >- >- toLength.setValue(toLength.value(lengthContext) + fromLength.value(lengthContext), lengthContext); >-} >- >-static SVGLengthValue parseLengthFromString(SVGAnimationElement* animationElement, const String& string) >-{ >- SVGLengthValue length; >- length.setValueAsString(string, SVGLengthValue::lengthModeForAnimatedLengthAttribute(animationElement->attributeName())); >- return length; >-} >- >-void SVGAnimatedLengthAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- auto fromSVGLength = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<SVGLengthValue>(); >- auto toSVGLength = to->as<SVGLengthValue>(); >- const auto& toAtEndOfDurationSVGLength = toAtEndOfDuration->as<SVGLengthValue>(); >- auto& animatedSVGLength = animated->as<SVGLengthValue>(); >- >- // Apply CSS inheritance rules. >- m_animationElement->adjustForInheritance<SVGLengthValue>(parseLengthFromString, m_animationElement->fromPropertyValueType(), fromSVGLength, m_contextElement); >- m_animationElement->adjustForInheritance<SVGLengthValue>(parseLengthFromString, m_animationElement->toPropertyValueType(), toSVGLength, m_contextElement); >- >- SVGLengthContext lengthContext(m_contextElement); >- float animatedNumber = animatedSVGLength.value(lengthContext); >- SVGLengthType unitType = percentage < 0.5 ? fromSVGLength.unitType() : toSVGLength.unitType(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromSVGLength.value(lengthContext), toSVGLength.value(lengthContext), toAtEndOfDurationSVGLength.value(lengthContext), animatedNumber); >- >- animatedSVGLength.setValue(lengthContext, animatedNumber, m_lengthMode, unitType); >-} >- >-float SVGAnimatedLengthAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- auto lengthMode = SVGLengthValue::lengthModeForAnimatedLengthAttribute(m_animationElement->attributeName()); >- auto from = SVGLengthValue(lengthMode, fromString); >- auto to = SVGLengthValue(lengthMode, toString); >- SVGLengthContext lengthContext(m_contextElement); >- return fabsf(to.value(lengthContext) - from.value(lengthContext)); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedLength.h b/Source/WebCore/svg/SVGAnimatedLength.h >deleted file mode 100644 >index 1004ec5d9d6..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedLength.h >+++ /dev/null >@@ -1,57 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGLength.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedLength = SVGAnimatedPropertyTearOff<SVGLength>; >-using SVGAnimatedLengthAttribute = SVGAnimatedAttribute<SVGAnimatedLength>; >- >-template<typename OwnerType> >-using SVGAnimatedLengthAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedLengthAttribute, AnimatedLength>; >- >-class SVGAnimatedLengthAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedLengthAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >- >-private: >- SVGLengthMode m_lengthMode; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedLengthList.cpp b/Source/WebCore/svg/SVGAnimatedLengthList.cpp >deleted file mode 100644 >index d12977d0373..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedLengthList.cpp >+++ /dev/null >@@ -1,132 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedLengthList.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedNumber.h" >- >-namespace WebCore { >- >-SVGAnimatedLengthListAnimator::SVGAnimatedLengthListAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedLengthList, animationElement, contextElement) >- , m_lengthMode(SVGLengthValue::lengthModeForAnimatedLengthAttribute(animationElement->attributeName())) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedLengthListAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<SVGLengthListValues>::fromString(string, m_lengthMode)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedLengthListAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedLengthList>(animatedTypes); >-} >- >-void SVGAnimatedLengthListAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedLengthList>(animatedTypes); >-} >- >-void SVGAnimatedLengthListAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedLengthList>(animatedTypes, type); >-} >- >-void SVGAnimatedLengthListAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedLengthList>(animatedTypes); >-} >- >-void SVGAnimatedLengthListAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedLengthList>(animatedTypes); >-} >- >-void SVGAnimatedLengthListAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedLengthList); >- ASSERT(from->type() == to->type()); >- >- const auto& fromLengthList = from->as<SVGLengthListValues>(); >- auto& toLengthList = to->as<SVGLengthListValues>(); >- >- unsigned fromLengthListSize = fromLengthList.size(); >- if (!fromLengthListSize || fromLengthListSize != toLengthList.size()) >- return; >- >- SVGLengthContext lengthContext(m_contextElement); >- for (unsigned i = 0; i < fromLengthListSize; ++i) >- toLengthList[i].setValue(toLengthList[i].value(lengthContext) + fromLengthList[i].value(lengthContext), lengthContext); >-} >- >-static SVGLengthListValues parseLengthListFromString(SVGAnimationElement* animationElement, const String& string) >-{ >- SVGLengthListValues lengthList; >- lengthList.parse(string, SVGLengthValue::lengthModeForAnimatedLengthAttribute(animationElement->attributeName())); >- return lengthList; >-} >- >-void SVGAnimatedLengthListAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- auto fromLengthList = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<SVGLengthListValues>(); >- auto toLengthList = to->as<SVGLengthListValues>(); >- const auto& toAtEndOfDurationLengthList = toAtEndOfDuration->as<SVGLengthListValues>(); >- auto& animatedLengthList = animated->as<SVGLengthListValues>(); >- >- // Apply CSS inheritance rules. >- m_animationElement->adjustForInheritance<SVGLengthListValues>(parseLengthListFromString, m_animationElement->fromPropertyValueType(), fromLengthList, m_contextElement); >- m_animationElement->adjustForInheritance<SVGLengthListValues>(parseLengthListFromString, m_animationElement->toPropertyValueType(), toLengthList, m_contextElement); >- >- if (!m_animationElement->adjustFromToListValues<SVGLengthListValues>(fromLengthList, toLengthList, animatedLengthList, percentage)) >- return; >- >- unsigned fromLengthListSize = fromLengthList.size(); >- unsigned toLengthListSize = toLengthList.size(); >- unsigned toAtEndOfDurationListSize = toAtEndOfDurationLengthList.size(); >- >- SVGLengthContext lengthContext(m_contextElement); >- for (unsigned i = 0; i < toLengthListSize; ++i) { >- float animatedNumber = animatedLengthList[i].value(lengthContext); >- SVGLengthType unitType = toLengthList[i].unitType(); >- float effectiveFrom = 0; >- if (fromLengthListSize) { >- if (percentage < 0.5) >- unitType = fromLengthList[i].unitType(); >- effectiveFrom = fromLengthList[i].value(lengthContext); >- } >- float effectiveToAtEnd = i < toAtEndOfDurationListSize ? toAtEndOfDurationLengthList[i].value(lengthContext) : 0; >- >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, effectiveFrom, toLengthList[i].value(lengthContext), effectiveToAtEnd, animatedNumber); >- animatedLengthList[i].setValue(lengthContext, animatedNumber, m_lengthMode, unitType); >- } >-} >- >-float SVGAnimatedLengthListAnimator::calculateDistance(const String&, const String&) >-{ >- // FIXME: Distance calculation is not possible for SVGLengthListValues right now. We need the distance for every single value. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedLengthList.h b/Source/WebCore/svg/SVGAnimatedLengthList.h >deleted file mode 100644 >index 165bc48ae64..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedLengthList.h >+++ /dev/null >@@ -1,58 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedListPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGLength.h" >-#include "SVGLengthList.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedLengthList = SVGAnimatedListPropertyTearOff<SVGLengthListValues>; >-using SVGAnimatedLengthListAttribute = SVGAnimatedAttributeList<SVGAnimatedLengthList>; >- >-template<typename OwnerType> >-using SVGAnimatedLengthListAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedLengthListAttribute, AnimatedLengthList>; >- >-class SVGAnimatedLengthListAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedLengthListAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >- >-private: >- SVGLengthMode m_lengthMode; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedNumber.cpp b/Source/WebCore/svg/SVGAnimatedNumber.cpp >deleted file mode 100644 >index b56a335bace..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumber.cpp >+++ /dev/null >@@ -1,104 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedNumber.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGParserUtilities.h" >- >-namespace WebCore { >- >-SVGAnimatedNumberAnimator::SVGAnimatedNumberAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedNumber, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<float>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedNumber>(animatedTypes, type); >-} >- >-void SVGAnimatedNumberAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedNumber); >- ASSERT(from->type() == to->type()); >- >- to->as<float>() += from->as<float>(); >-} >- >-static float parseNumberFromString(SVGAnimationElement*, const String& string) >-{ >- return SVGPropertyTraits<float>::fromString(string); >-} >- >-void SVGAnimatedNumberAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- auto fromNumber = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<float>(); >- auto toNumber = to->as<float>(); >- const auto toAtEndOfDurationNumber = toAtEndOfDuration->as<float>(); >- auto& animatedNumber = animated->as<float>(); >- >- // Apply CSS inheritance rules. >- m_animationElement->adjustForInheritance<float>(parseNumberFromString, m_animationElement->fromPropertyValueType(), fromNumber, m_contextElement); >- m_animationElement->adjustForInheritance<float>(parseNumberFromString, m_animationElement->toPropertyValueType(), toNumber, m_contextElement); >- >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumber, toNumber, toAtEndOfDurationNumber, animatedNumber); >-} >- >-float SVGAnimatedNumberAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- ASSERT(m_contextElement); >- float from = 0; >- float to = 0; >- parseNumberFromString(fromString, from); >- parseNumberFromString(toString, to); >- return fabsf(to - from); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedNumber.h b/Source/WebCore/svg/SVGAnimatedNumber.h >deleted file mode 100644 >index da3d96b4034..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumber.h >+++ /dev/null >@@ -1,56 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedStaticPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedNumber = SVGAnimatedStaticPropertyTearOff<float>; >-using SVGAnimatedNumberAttribute = SVGAnimatedAttribute<SVGAnimatedNumber>; >- >-template<typename OwnerType> >-using SVGAnimatedNumberAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedNumberAttribute, AnimatedNumber>; >- >-template<typename OwnerType> >-using SVGAnimatedOptionalNumberAttributeAccessor = SVGAnimatedOptionalAttributeAccessor<OwnerType, SVGAnimatedNumberAttribute, AnimatedNumberOptionalNumber>; >- >-class SVGAnimatedNumberAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedNumberAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedNumberList.cpp b/Source/WebCore/svg/SVGAnimatedNumberList.cpp >deleted file mode 100644 >index bcb68487d2d..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumberList.cpp >+++ /dev/null >@@ -1,108 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedNumberList.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedNumber.h" >- >-namespace WebCore { >- >-SVGAnimatedNumberListAnimator::SVGAnimatedNumberListAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedNumberList, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberListAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<SVGNumberListValues>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberListAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedNumberList>(animatedTypes); >-} >- >-void SVGAnimatedNumberListAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedNumberList>(animatedTypes); >-} >- >-void SVGAnimatedNumberListAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedNumberList>(animatedTypes, type); >-} >- >-void SVGAnimatedNumberListAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedNumberList>(animatedTypes); >-} >- >-void SVGAnimatedNumberListAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedNumberList>(animatedTypes); >-} >- >-void SVGAnimatedNumberListAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedNumberList); >- ASSERT(from->type() == to->type()); >- >- const auto& fromNumberList = from->as<SVGNumberListValues>(); >- auto& toNumberList = to->as<SVGNumberListValues>(); >- >- unsigned fromNumberListSize = fromNumberList.size(); >- if (!fromNumberListSize || fromNumberListSize != toNumberList.size()) >- return; >- >- for (unsigned i = 0; i < fromNumberListSize; ++i) >- toNumberList[i] += fromNumberList[i]; >-} >- >-void SVGAnimatedNumberListAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- >- const auto& fromNumberList = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<SVGNumberListValues>(); >- const auto& toNumberList = to->as<SVGNumberListValues>(); >- const auto& toAtEndOfDurationNumberList = toAtEndOfDuration->as<SVGNumberListValues>(); >- auto& animatedNumberList = animated->as<SVGNumberListValues>(); >- if (!m_animationElement->adjustFromToListValues<SVGNumberListValues>(fromNumberList, toNumberList, animatedNumberList, percentage)) >- return; >- >- unsigned fromNumberListSize = fromNumberList.size(); >- unsigned toNumberListSize = toNumberList.size(); >- unsigned toAtEndOfDurationSize = toAtEndOfDurationNumberList.size(); >- >- for (unsigned i = 0; i < toNumberListSize; ++i) { >- float effectiveFrom = fromNumberListSize ? fromNumberList[i] : 0; >- float effectiveToAtEnd = i < toAtEndOfDurationSize ? toAtEndOfDurationNumberList[i] : 0; >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, effectiveFrom, toNumberList[i], effectiveToAtEnd, animatedNumberList[i]); >- } >-} >- >-float SVGAnimatedNumberListAnimator::calculateDistance(const String&, const String&) >-{ >- // FIXME: Distance calculation is not possible for SVGNumberListValues right now. We need the distance for every single value. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedNumberList.h b/Source/WebCore/svg/SVGAnimatedNumberList.h >deleted file mode 100644 >index bf7c1fe8eb5..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumberList.h >+++ /dev/null >@@ -1,55 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedListPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGNumber.h" >-#include "SVGNumberList.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedNumberList = SVGAnimatedListPropertyTearOff<SVGNumberListValues>; >-using SVGAnimatedNumberListAttribute = SVGAnimatedAttributeList<SVGAnimatedNumberList>; >- >-template<typename OwnerType> >-using SVGAnimatedNumberListAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedNumberListAttribute, AnimatedNumberList>; >- >-class SVGAnimatedNumberListAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedNumberListAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp b/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp >deleted file mode 100644 >index 1845f196469..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp >+++ /dev/null >@@ -1,96 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedNumberOptionalNumber.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGAnimatedNumber.h" >-#include "SVGParserUtilities.h" >- >-namespace WebCore { >- >-SVGAnimatedNumberOptionalNumberAnimator::SVGAnimatedNumberOptionalNumberAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedNumberOptionalNumber, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberOptionalNumberAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<std::pair<float, float>>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValues<SVGAnimatedNumber, SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForTypes<SVGAnimatedNumber, SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValues<SVGAnimatedNumber, SVGAnimatedNumber>(animatedTypes, type); >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForTypes<SVGAnimatedNumber, SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForTypes<SVGAnimatedNumber, SVGAnimatedNumber>(animatedTypes); >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedNumberOptionalNumber); >- ASSERT(from->type() == to->type()); >- >- const auto& fromNumberPair = from->as<std::pair<float, float>>(); >- auto& toNumberPair = to->as<std::pair<float, float>>(); >- >- toNumberPair.first += fromNumberPair.first; >- toNumberPair.second += fromNumberPair.second; >-} >- >-void SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto& fromNumberPair = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<std::pair<float, float>>(); >- const auto& toNumberPair = to->as<std::pair<float, float>>(); >- const auto& toAtEndOfDurationNumberPair = toAtEndOfDuration->as<std::pair<float, float>>(); >- auto& animatedNumberPair = animated->as<std::pair<float, float>>(); >- >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumberPair.first, toNumberPair.first, toAtEndOfDurationNumberPair.first, animatedNumberPair.first); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumberPair.second, toNumberPair.second, toAtEndOfDurationNumberPair.second, animatedNumberPair.second); >-} >- >-float SVGAnimatedNumberOptionalNumberAnimator::calculateDistance(const String&, const String&) >-{ >- // FIXME: Distance calculation is not possible for SVGNumberOptionalNumber right now. We need the distance for every single value. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.h b/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.h >deleted file mode 100644 >index 66c4fc0e8d2..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.h >+++ /dev/null >@@ -1,44 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedTypeAnimator.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-class SVGAnimatedNumberOptionalNumberAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedNumberOptionalNumberAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedRect.cpp b/Source/WebCore/svg/SVGAnimatedRect.cpp >deleted file mode 100644 >index 15e83062747..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedRect.cpp >+++ /dev/null >@@ -1,99 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedRect.h" >- >-#include "SVGAnimateElementBase.h" >-#include "SVGParserUtilities.h" >- >-namespace WebCore { >- >-SVGAnimatedRectAnimator::SVGAnimatedRectAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedRect, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedRectAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<FloatRect>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedRectAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedRect>(animatedTypes); >-} >- >-void SVGAnimatedRectAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedRect>(animatedTypes); >-} >- >-void SVGAnimatedRectAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedRect>(animatedTypes, type); >-} >- >-void SVGAnimatedRectAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedRect>(animatedTypes); >-} >- >-void SVGAnimatedRectAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedRect>(animatedTypes); >-} >- >-void SVGAnimatedRectAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedRect); >- ASSERT(from->type() == to->type()); >- >- to->as<FloatRect>() += from->as<FloatRect>(); >-} >- >-void SVGAnimatedRectAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- const auto& fromRect = (m_animationElement->animationMode() == ToAnimation ? animated : from)->as<FloatRect>(); >- const auto& toRect = to->as<FloatRect>(); >- const auto& toAtEndOfDurationRect = toAtEndOfDuration->as<FloatRect>(); >- auto& animatedRect = animated->as<FloatRect>(); >- >- float animatedX = animatedRect.x(); >- float animatedY = animatedRect.y(); >- float animatedWidth = animatedRect.width(); >- float animatedHeight = animatedRect.height(); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromRect.x(), toRect.x(), toAtEndOfDurationRect.x(), animatedX); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromRect.y(), toRect.y(), toAtEndOfDurationRect.y(), animatedY); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromRect.width(), toRect.width(), toAtEndOfDurationRect.width(), animatedWidth); >- m_animationElement->animateAdditiveNumber(percentage, repeatCount, fromRect.height(), toRect.height(), toAtEndOfDurationRect.height(), animatedHeight); >- >- animatedRect = FloatRect(animatedX, animatedY, animatedWidth, animatedHeight); >-} >- >-float SVGAnimatedRectAnimator::calculateDistance(const String&, const String&) >-{ >- // FIXME: Distance calculation is not possible for SVGRect right now. We need the distance of for every single value. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedRect.h b/Source/WebCore/svg/SVGAnimatedRect.h >deleted file mode 100644 >index 8b26dce4f4c..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedRect.h >+++ /dev/null >@@ -1,57 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGRect.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >-class SVGRect; >- >-using SVGAnimatedRect = SVGAnimatedPropertyTearOff<SVGRect>; >-using SVGAnimatedRectAttribute = SVGAnimatedAttribute<SVGAnimatedRect>; >- >-template<typename OwnerType> >-using SVGAnimatedRectAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedRectAttribute, AnimatedRect>; >- >-class SVGAnimatedRectAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedRectAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >- >- static bool parseSVGRect(const String&, FloatRect&); >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedString.cpp b/Source/WebCore/svg/SVGAnimatedString.cpp >deleted file mode 100644 >index 99c0dac2b86..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedString.cpp >+++ /dev/null >@@ -1,94 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedString.h" >- >-#include "SVGAnimateElementBase.h" >- >-namespace WebCore { >- >-SVGAnimatedStringAnimator::SVGAnimatedStringAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedString, animationElement, contextElement) >-{ >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedStringAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<String>::fromString(string)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedStringAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedString>(animatedTypes); >-} >- >-void SVGAnimatedStringAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedString>(animatedTypes); >-} >- >-void SVGAnimatedStringAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedString>(animatedTypes, type); >-} >- >-void SVGAnimatedStringAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedString>(animatedTypes); >-} >- >-void SVGAnimatedStringAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedString>(animatedTypes); >-} >- >-void SVGAnimatedStringAnimator::addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) >-{ >- ASSERT_NOT_REACHED(); >-} >- >-static String parseStringFromString(SVGAnimationElement*, const String& string) >-{ >- return string; >-} >- >-void SVGAnimatedStringAnimator::calculateAnimatedValue(float percentage, unsigned, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType*, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- ASSERT(m_contextElement); >- >- auto fromString = from->as<String>(); >- auto toString = to->as<String>(); >- auto& animatedString = animated->as<String>(); >- >- // Apply CSS inheritance rules. >- m_animationElement->adjustForInheritance<String>(parseStringFromString, m_animationElement->fromPropertyValueType(), fromString, m_contextElement); >- m_animationElement->adjustForInheritance<String>(parseStringFromString, m_animationElement->toPropertyValueType(), toString, m_contextElement); >- >- m_animationElement->animateDiscreteType<String>(percentage, fromString, toString, animatedString); >-} >- >-float SVGAnimatedStringAnimator::calculateDistance(const String&, const String&) >-{ >- // No paced animations for strings. >- return -1; >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedString.h b/Source/WebCore/svg/SVGAnimatedString.h >deleted file mode 100644 >index 10987316f07..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedString.h >+++ /dev/null >@@ -1,53 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedStaticPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedString = SVGAnimatedStaticPropertyTearOff<String>; >-using SVGAnimatedStringAttribute = SVGAnimatedAttribute<SVGAnimatedString>; >- >-template<typename OwnerType> >-using SVGAnimatedStringAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedStringAttribute, AnimatedString>; >- >-class SVGAnimatedStringAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedStringAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedTransformList.cpp b/Source/WebCore/svg/SVGAnimatedTransformList.cpp >deleted file mode 100644 >index e6fcd0d6c92..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedTransformList.cpp >+++ /dev/null >@@ -1,147 +0,0 @@ >-/* >- * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> >- * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> >- * Copyright (C) 2007 Eric Seidel <eric@webkit.org> >- * Copyright (C) 2008 Apple Inc. All rights reserved. >- * Copyright (C) Research In Motion Limited 2012. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#include "config.h" >-#include "SVGAnimatedTransformList.h" >- >-#include "SVGAnimateTransformElement.h" >-#include "SVGAnimatedNumber.h" >-#include "SVGNames.h" >-#include "SVGTransformDistance.h" >- >-namespace WebCore { >- >-SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator(SVGAnimationElement* animationElement, SVGElement* contextElement) >- : SVGAnimatedTypeAnimator(AnimatedTransformList, animationElement, contextElement) >- , m_transformTypeString(SVGTransformValue::transformTypePrefixForParsing(downcast<SVGAnimateTransformElement>(animationElement)->transformType())) >-{ >- // Only <animateTransform> uses this animator, as <animate> doesn't allow to animate transform lists directly. >- ASSERT(animationElement->hasTagName(SVGNames::animateTransformTag)); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedTransformListAnimator::constructFromString(const String& string) >-{ >- return SVGAnimatedType::create(SVGPropertyTraits<SVGTransformListValues>::fromString(m_transformTypeString + string + ')')); >-} >- >-std::unique_ptr<SVGAnimatedType> SVGAnimatedTransformListAnimator::startAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- return constructFromBaseValue<SVGAnimatedTransformList>(animatedTypes); >-} >- >-void SVGAnimatedTransformListAnimator::stopAnimValAnimation(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- stopAnimValAnimationForType<SVGAnimatedTransformList>(animatedTypes); >-} >- >-void SVGAnimatedTransformListAnimator::resetAnimValToBaseVal(const SVGElementAnimatedPropertyList& animatedTypes, SVGAnimatedType& type) >-{ >- resetFromBaseValue<SVGAnimatedTransformList>(animatedTypes, type); >-} >- >-void SVGAnimatedTransformListAnimator::animValWillChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValWillChangeForType<SVGAnimatedTransformList>(animatedTypes); >-} >- >-void SVGAnimatedTransformListAnimator::animValDidChange(const SVGElementAnimatedPropertyList& animatedTypes) >-{ >- animValDidChangeForType<SVGAnimatedTransformList>(animatedTypes); >-} >- >-void SVGAnimatedTransformListAnimator::addAnimatedTypes(SVGAnimatedType* from, SVGAnimatedType* to) >-{ >- ASSERT(from->type() == AnimatedTransformList); >- ASSERT(from->type() == to->type()); >- >- const auto& fromTransformList = from->as<SVGTransformListValues>(); >- auto& toTransformList = to->as<SVGTransformListValues>(); >- auto fromTransformListSize = fromTransformList.size(); >- if (!fromTransformListSize || fromTransformListSize != toTransformList.size()) >- return; >- >- ASSERT(fromTransformListSize == 1); >- const auto& fromTransform = fromTransformList[0]; >- auto& toTransform = toTransformList[0]; >- >- ASSERT(fromTransform.type() == toTransform.type()); >- toTransform = SVGTransformDistance::addSVGTransforms(fromTransform, toTransform); >-} >- >-void SVGAnimatedTransformListAnimator::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType* from, SVGAnimatedType* to, SVGAnimatedType* toAtEndOfDuration, SVGAnimatedType* animated) >-{ >- ASSERT(m_animationElement); >- >- // Spec: To animations provide specific functionality to get a smooth change from the underlying value to the >- // ‘to’ attribute value, which conflicts mathematically with the requirement for additive transform animations >- // to be post-multiplied. As a consequence, in SVG 1.1 the behavior of to animations for ‘animateTransform’ is undefined. >- const auto& fromTransformList = from->as<SVGTransformListValues>(); >- const auto& toTransformList = to->as<SVGTransformListValues>(); >- const auto& toAtEndOfDurationTransformList = toAtEndOfDuration->as<SVGTransformListValues>(); >- auto& animatedTransformList = animated->as<SVGTransformListValues>(); >- >- // Pass false to 'resizeAnimatedListIfNeeded' here, as the special post-multiplication behavior of <animateTransform> needs to be respected below. >- if (!m_animationElement->adjustFromToListValues<SVGTransformListValues>(fromTransformList, toTransformList, animatedTransformList, percentage, false)) >- return; >- >- // Never resize the animatedTransformList to the toTransformList size, instead either clear the list or append to it. >- if (!animatedTransformList.isEmpty() && (!m_animationElement->isAdditive() || m_animationElement->animationMode() == ToAnimation)) >- animatedTransformList.clear(); >- >- auto fromTransformListSize = fromTransformList.size(); >- const auto& toTransform = toTransformList[0]; >- const auto effectiveFrom = fromTransformListSize ? fromTransformList[0] : SVGTransformValue(toTransform.type(), SVGTransformValue::ConstructZeroTransform); >- auto currentTransform = SVGTransformDistance(effectiveFrom, toTransform).scaledDistance(percentage).addToSVGTransform(effectiveFrom); >- if (m_animationElement->isAccumulated() && repeatCount) { >- const auto effectiveToAtEnd = toAtEndOfDurationTransformList.size() ? toAtEndOfDurationTransformList[0] : SVGTransformValue(toTransform.type(), SVGTransformValue::ConstructZeroTransform); >- animatedTransformList.append(SVGTransformDistance::addSVGTransforms(currentTransform, effectiveToAtEnd, repeatCount)); >- } else >- animatedTransformList.append(currentTransform); >-} >- >-float SVGAnimatedTransformListAnimator::calculateDistance(const String& fromString, const String& toString) >-{ >- ASSERT(m_animationElement); >- >- // FIXME: This is not correct in all cases. The spec demands that each component (translate x and y for example) >- // is paced separately. To implement this we need to treat each component as individual animation everywhere. >- auto from = constructFromString(fromString); >- auto to = constructFromString(toString); >- >- const auto& fromTransformList = from->as<SVGTransformListValues>(); >- const auto& toTransformList = to->as<SVGTransformListValues>(); >- unsigned itemsCount = fromTransformList.size(); >- if (!itemsCount || itemsCount != toTransformList.size()) >- return -1; >- >- ASSERT(itemsCount == 1); >- if (fromTransformList[0].type() != toTransformList[0].type()) >- return -1; >- >- // Spec: http://www.w3.org/TR/SVG/animate.html#complexDistances >- // Paced animations assume a notion of distance between the various animation values defined by the ‘to’, ‘from’, ‘by’ and ‘values’ attributes. >- // Distance is defined only for scalar types (such as <length>), colors and the subset of transformation types that are supported by ‘animateTransform’. >- return SVGTransformDistance(fromTransformList[0], toTransformList[0]).distance(); >-} >- >-} >diff --git a/Source/WebCore/svg/SVGAnimatedTransformList.h b/Source/WebCore/svg/SVGAnimatedTransformList.h >deleted file mode 100644 >index 0b169f5c9ba..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedTransformList.h >+++ /dev/null >@@ -1,57 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedTransformListPropertyTearOff.h" >-#include "SVGAnimatedTypeAnimator.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGTransformList.h" >- >-namespace WebCore { >- >-class SVGAnimationElement; >- >-using SVGAnimatedTransformList = SVGAnimatedTransformListPropertyTearOff; >-using SVGAnimatedTransformListAttribute = SVGAnimatedAttributeList<SVGAnimatedTransformList>; >- >-template<typename OwnerType> >-using SVGAnimatedTransformListAttributeAccessor = SVGAnimatedAttributeAccessor<OwnerType, SVGAnimatedTransformListAttribute, AnimatedTransformList>; >- >-class SVGAnimatedTransformListAnimator final : public SVGAnimatedTypeAnimator { >-public: >- SVGAnimatedTransformListAnimator(SVGAnimationElement*, SVGElement*); >- >- std::unique_ptr<SVGAnimatedType> constructFromString(const String&) override; >- std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) override; >- void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) override; >- void animValWillChange(const SVGElementAnimatedPropertyList&) override; >- void animValDidChange(const SVGElementAnimatedPropertyList&) override; >- >- void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) override; >- void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) override; >- float calculateDistance(const String& fromString, const String& toString) override; >- >-private: >- const String& m_transformTypeString; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedType.h b/Source/WebCore/svg/SVGAnimatedType.h >deleted file mode 100644 >index c6d78acc9d7..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedType.h >+++ /dev/null >@@ -1,147 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGValue.h" >- >-namespace WebCore { >- >-class SVGAnimatedType { >- WTF_MAKE_FAST_ALLOCATED; >-public: >- template<typename PropertyType> >- static std::unique_ptr<SVGAnimatedType> create() >- { >- return std::make_unique<SVGAnimatedType>(SVGPropertyTraits<PropertyType>::initialValue()); >- } >- >- template<typename PropertyType> >- static std::unique_ptr<SVGAnimatedType> create(const PropertyType& property) >- { >- return std::make_unique<SVGAnimatedType>(property); >- } >- >- template<typename PropertyType> >- static std::unique_ptr<SVGAnimatedType> create(PropertyType&& property) >- { >- return std::make_unique<SVGAnimatedType>(WTFMove(property)); >- } >- >- template<typename PropertyType1, typename PropertyType2> >- static std::unique_ptr<SVGAnimatedType> create() >- { >- return std::make_unique<SVGAnimatedType>(SVGPropertyTraits<std::pair<PropertyType1, PropertyType2>>::initialValue()); >- } >- >- template<typename PropertyType1, typename PropertyType2> >- static std::unique_ptr<SVGAnimatedType> create(const std::pair<PropertyType1, PropertyType2>& properties) >- { >- return std::make_unique<SVGAnimatedType>(properties); >- } >- >- template<typename PropertyType1, typename PropertyType2> >- static std::unique_ptr<SVGAnimatedType> create(std::pair<PropertyType1, PropertyType2>&& properties) >- { >- return std::make_unique<SVGAnimatedType>(WTFMove(properties)); >- } >- >- template<typename PropertyType> >- SVGAnimatedType(const PropertyType& property) >- : m_value(std::make_unique<PropertyType>(property).release()) >- { >- } >- >- template<typename PropertyType> >- SVGAnimatedType(PropertyType&& property) >- : m_value(std::make_unique<PropertyType>(WTFMove(property)).release()) >- { >- } >- >- template<typename PropertyType1, typename PropertyType2> >- SVGAnimatedType(const std::pair<PropertyType1, PropertyType2>& properties) >- : m_value(std::make_unique<std::pair<PropertyType1, PropertyType2>>(properties).release()) >- { >- } >- >- template<typename PropertyType1, typename PropertyType2> >- SVGAnimatedType(std::pair<PropertyType1, PropertyType2>&& properties) >- : m_value(std::make_unique<std::pair<PropertyType1, PropertyType2>>(WTFMove(properties)).release()) >- { >- } >- >- ~SVGAnimatedType() >- { >- WTF::visit([](auto& value) { >- delete value; >- }, m_value); >- } >- >- template <class PropertyType> >- const PropertyType& as() const >- { >- ASSERT(WTF::holds_alternative<PropertyType*>(m_value)); >- return *WTF::get<PropertyType*>(m_value); >- } >- >- template <class PropertyType> >- PropertyType& as() >- { >- ASSERT(WTF::holds_alternative<PropertyType*>(m_value)); >- return *WTF::get<PropertyType*>(m_value); >- } >- >- AnimatedPropertyType type() const >- { >- ASSERT(m_value.index() >= AnimatedPropertyTypeMin && m_value.index() < AnimatedPropertyTypeMax); >- return static_cast<AnimatedPropertyType>(m_value.index()); >- } >- >- String valueAsString() const >- { >- return WTF::visit([](auto& value) { >- using PropertyType = std::decay_t<decltype(*value)>; >- return SVGPropertyTraits<PropertyType>::toString(*value); >- }, m_value); >- } >- >- bool setValueAsString(const QualifiedName& attrName, const String& string) >- { >- return WTF::visit([&](auto& value) { >- using PropertyType = std::decay_t<decltype(*value)>; >- if (auto result = SVGPropertyTraits<PropertyType>::parse(attrName, string)) { >- *value = *result; >- return true; >- } >- return false; >- }, m_value); >- } >- >- static bool supportsAnimVal(AnimatedPropertyType type) >- { >- // AnimatedColor is only used for CSS property animations. >- return type != AnimatedUnknown && type != AnimatedColor; >- } >- >-private: >- SVGValueVariant m_value; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedTypeAnimator.cpp b/Source/WebCore/svg/SVGAnimatedTypeAnimator.cpp >deleted file mode 100644 >index dcf9c44b6cb..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedTypeAnimator.cpp >+++ /dev/null >@@ -1,86 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. >- * Copyright (C) 2013 Samsung Electronics. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >- >-#include "config.h" >-#include "SVGAnimatedTypeAnimator.h" >- >-#include "SVGElement.h" >- >-namespace WebCore { >- >-SVGAnimatedTypeAnimator::SVGAnimatedTypeAnimator(AnimatedPropertyType type, SVGAnimationElement* animationElement, SVGElement* contextElement) >- : m_type(type) >- , m_animationElement(animationElement) >- , m_contextElement(contextElement) >-{ >-} >- >-SVGAnimatedTypeAnimator::~SVGAnimatedTypeAnimator() = default; >- >-void SVGAnimatedTypeAnimator::calculateFromAndToValues(std::unique_ptr<SVGAnimatedType>& from, std::unique_ptr<SVGAnimatedType>& to, const String& fromString, const String& toString) >-{ >- from = constructFromString(fromString); >- to = constructFromString(toString); >-} >- >-void SVGAnimatedTypeAnimator::calculateFromAndByValues(std::unique_ptr<SVGAnimatedType>& from, std::unique_ptr<SVGAnimatedType>& to, const String& fromString, const String& byString) >-{ >- from = constructFromString(fromString); >- to = constructFromString(byString); >- addAnimatedTypes(from.get(), to.get()); >-} >- >-SVGElementAnimatedPropertyList SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName(SVGElement& targetElement, const QualifiedName& attributeName) >-{ >- SVGElementAnimatedPropertyList result; >- >- if (!SVGAnimatedType::supportsAnimVal(m_type)) >- return result; >- >- auto targetProperties = targetElement.lookupOrCreateAnimatedProperties(attributeName); >- if (targetProperties.isEmpty()) >- return result; >- >- result.append(SVGElementAnimatedProperties { &targetElement, WTFMove(targetProperties) }); >- >- for (SVGElement* instance : targetElement.instances()) >- result.append(SVGElementAnimatedProperties { instance, instance->lookupOrCreateAnimatedProperties(attributeName) }); >- >-#if !ASSERT_DISABLED >- for (auto& animatedProperties : result) { >- for (auto& property : animatedProperties.properties) { >- if (property->animatedPropertyType() != m_type) { >- ASSERT(m_type == AnimatedAngle); >- ASSERT(property->animatedPropertyType() == AnimatedEnumeration); >- } >- } >- } >-#endif >- >- return result; >-} >- >-void SVGAnimatedTypeAnimator::setInstanceUpdatesBlocked(SVGElement& element, bool blocked) >-{ >- element.setInstanceUpdatesBlocked(blocked); >-} >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/SVGAnimatedTypeAnimator.h b/Source/WebCore/svg/SVGAnimatedTypeAnimator.h >deleted file mode 100644 >index 6b3a4847846..00000000000 >--- a/Source/WebCore/svg/SVGAnimatedTypeAnimator.h >+++ /dev/null >@@ -1,231 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. >- * Copyright (C) 2013 Samsung Electronics. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedProperty.h" >-#include "SVGAnimatedType.h" >-#include <wtf/StdLibExtras.h> >- >-namespace WebCore { >- >-struct SVGElementAnimatedProperties { >- SVGElement* element; >- Vector<RefPtr<SVGAnimatedProperty>> properties; >-}; >-typedef Vector<SVGElementAnimatedProperties> SVGElementAnimatedPropertyList; >- >-class SVGAnimationElement; >- >-class SVGAnimatedTypeAnimator { >- WTF_MAKE_FAST_ALLOCATED; >-public: >- virtual ~SVGAnimatedTypeAnimator(); >- virtual std::unique_ptr<SVGAnimatedType> constructFromString(const String&) = 0; >- >- virtual std::unique_ptr<SVGAnimatedType> startAnimValAnimation(const SVGElementAnimatedPropertyList&) = 0; >- virtual void stopAnimValAnimation(const SVGElementAnimatedPropertyList&) = 0; >- virtual void resetAnimValToBaseVal(const SVGElementAnimatedPropertyList&, SVGAnimatedType&) = 0; >- virtual void animValWillChange(const SVGElementAnimatedPropertyList&) = 0; >- virtual void animValDidChange(const SVGElementAnimatedPropertyList&) = 0; >- virtual void addAnimatedTypes(SVGAnimatedType*, SVGAnimatedType*) = 0; >- >- virtual void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*, SVGAnimatedType*) = 0; >- virtual float calculateDistance(const String& fromString, const String& toString) = 0; >- >- void calculateFromAndToValues(std::unique_ptr<SVGAnimatedType>&, std::unique_ptr<SVGAnimatedType>&, const String& fromString, const String& toString); >- void calculateFromAndByValues(std::unique_ptr<SVGAnimatedType>&, std::unique_ptr<SVGAnimatedType>&, const String& fromString, const String& byString); >- >- void setContextElement(SVGElement* contextElement) { m_contextElement = contextElement; } >- AnimatedPropertyType type() const { return m_type; } >- >- SVGElementAnimatedPropertyList findAnimatedPropertiesForAttributeName(SVGElement&, const QualifiedName&); >- >-protected: >- SVGAnimatedTypeAnimator(AnimatedPropertyType, SVGAnimationElement*, SVGElement*); >- >- // Helpers for animators that operate on single types, eg. just one SVGAnimatedInteger. >- template<typename AnimValType> >- std::unique_ptr<SVGAnimatedType> constructFromBaseValue(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 1); >- const auto* animatedProperty = castAnimatedPropertyToActualType<AnimValType>(animatedProperties[0].properties[0].get()); >- >- auto animatedType = SVGAnimatedType::create(animatedProperty->currentBaseValue()); >- auto& animatedValue = animatedType->template as<typename AnimValType::ContentType>(); >- executeAction<AnimValType>(StartAnimationAction, animatedProperties, 0, &animatedValue); >- return animatedType; >- } >- >- template<typename AnimValType> >- void resetFromBaseValue(const SVGElementAnimatedPropertyList& animatedProperties, SVGAnimatedType& animatedType) >- { >- ASSERT(animatedProperties[0].properties.size() == 1); >- ASSERT(animatedType.type() == m_type); >- auto* animatedProperty = castAnimatedPropertyToActualType<AnimValType>(animatedProperties[0].properties[0].get()); >- animatedProperty->synchronizeWrappersIfNeeded(); >- >- auto& animatedValue = animatedType.as<typename AnimValType::ContentType>(); >- animatedValue = animatedProperty->currentBaseValue(); >- executeAction<AnimValType>(StartAnimationAction, animatedProperties, 0, &animatedValue); >- } >- >- template<typename AnimValType> >- void stopAnimValAnimationForType(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 1); >- executeAction<AnimValType>(StopAnimationAction, animatedProperties, 0); >- } >- >- template<typename AnimValType> >- void animValDidChangeForType(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 1); >- executeAction<AnimValType>(AnimValDidChangeAction, animatedProperties, 0); >- } >- >- template<typename AnimValType> >- void animValWillChangeForType(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 1); >- executeAction<AnimValType>(AnimValWillChangeAction, animatedProperties, 0); >- } >- >- // Helpers for animators that operate on pair types, eg. a pair of SVGAnimatedIntegers. >- template<typename AnimValType1, typename AnimValType2> >- std::unique_ptr<SVGAnimatedType> constructFromBaseValues(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 2); >- const auto* firstAnimatedProperty = castAnimatedPropertyToActualType<AnimValType1>(animatedProperties[0].properties[0].get()); >- const auto* secondAnimatedProperty = castAnimatedPropertyToActualType<AnimValType2>(animatedProperties[0].properties[1].get()); >- >- auto animatedType = SVGAnimatedType::create(std::make_pair(firstAnimatedProperty->currentBaseValue(), secondAnimatedProperty->currentBaseValue())); >- auto& AnimatedValue = animatedType->template as<std::pair<typename AnimValType1::ContentType, typename AnimValType2::ContentType>>(); >- executeAction<AnimValType1>(StartAnimationAction, animatedProperties, 0, &AnimatedValue.first); >- executeAction<AnimValType2>(StartAnimationAction, animatedProperties, 1, &AnimatedValue.second); >- return animatedType; >- } >- >- template<typename AnimValType1, typename AnimValType2> >- void resetFromBaseValues(const SVGElementAnimatedPropertyList& animatedProperties, SVGAnimatedType& animatedType) >- { >- ASSERT(animatedProperties[0].properties.size() == 2); >- ASSERT(animatedType.type() == m_type); >- auto* firstAnimatedProperty = castAnimatedPropertyToActualType<AnimValType1>(animatedProperties[0].properties[0].get()); >- auto* secondAnimatedProperty = castAnimatedPropertyToActualType<AnimValType2>(animatedProperties[0].properties[1].get()); >- firstAnimatedProperty->synchronizeWrappersIfNeeded(); >- secondAnimatedProperty->synchronizeWrappersIfNeeded(); >- >- auto& animatedValue = animatedType.as<std::pair<typename AnimValType1::ContentType, typename AnimValType2::ContentType>>(); >- animatedValue.first = firstAnimatedProperty->currentBaseValue(); >- animatedValue.second = secondAnimatedProperty->currentBaseValue(); >- executeAction<AnimValType1>(StartAnimationAction, animatedProperties, 0, &animatedValue.first); >- executeAction<AnimValType2>(StartAnimationAction, animatedProperties, 1, &animatedValue.second); >- } >- >- template<typename AnimValType1, typename AnimValType2> >- void stopAnimValAnimationForTypes(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 2); >- executeAction<AnimValType1>(StopAnimationAction, animatedProperties, 0); >- executeAction<AnimValType2>(StopAnimationAction, animatedProperties, 1); >- } >- >- template<typename AnimValType1, typename AnimValType2> >- void animValDidChangeForTypes(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 2); >- executeAction<AnimValType1>(AnimValDidChangeAction, animatedProperties, 0); >- executeAction<AnimValType2>(AnimValDidChangeAction, animatedProperties, 1); >- } >- >- template<typename AnimValType1, typename AnimValType2> >- void animValWillChangeForTypes(const SVGElementAnimatedPropertyList& animatedProperties) >- { >- ASSERT(animatedProperties[0].properties.size() == 2); >- executeAction<AnimValType1>(AnimValWillChangeAction, animatedProperties, 0); >- executeAction<AnimValType2>(AnimValWillChangeAction, animatedProperties, 1); >- } >- >- template<typename AnimValType> >- AnimValType* castAnimatedPropertyToActualType(SVGAnimatedProperty* property) >- { >- ASSERT(property); >- ASSERT(property->contextElement()); >- // We can't assert property->animatedPropertyType() == m_type, as there's an exception for SVGMarkerElements orient attribute. >- if (property->animatedPropertyType() != m_type) { >- ASSERT(m_type == AnimatedAngle); >- ASSERT(property->animatedPropertyType() == AnimatedEnumeration); >- } >- return static_cast<AnimValType*>(property); >- } >- >- AnimatedPropertyType m_type; >- SVGAnimationElement* m_animationElement; >- SVGElement* m_contextElement; >- >-private: >- enum AnimationAction { >- StartAnimationAction, >- StopAnimationAction, >- AnimValWillChangeAction, >- AnimValDidChangeAction >- }; >- >- template<typename AnimValType> >- void executeAction(AnimationAction action, const SVGElementAnimatedPropertyList& animatedProperties, unsigned whichProperty, typename AnimValType::ContentType* animatedValue = nullptr) >- { >- // FIXME: Can't use SVGElement::InstanceUpdateBlocker because of circular header dependency. Would be nice to untangle this. >- setInstanceUpdatesBlocked(*animatedProperties[0].element, true); >- >- for (auto& animatedProperty : animatedProperties) { >- RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(whichProperty < animatedProperty.properties.size()); >- AnimValType* property = castAnimatedPropertyToActualType<AnimValType>(animatedProperty.properties[whichProperty].get()); >- >- switch (action) { >- case StartAnimationAction: >- ASSERT(animatedValue); >- if (!property->isAnimating()) >- property->animationStarted(animatedValue); >- break; >- case StopAnimationAction: >- ASSERT(!animatedValue); >- if (property->isAnimating()) >- property->animationEnded(); >- break; >- case AnimValWillChangeAction: >- ASSERT(!animatedValue); >- property->animValWillChange(); >- break; >- case AnimValDidChangeAction: >- ASSERT(!animatedValue); >- property->animValDidChange(); >- break; >- } >- } >- >- setInstanceUpdatesBlocked(*animatedProperties[0].element, false); >- } >- >- static void setInstanceUpdatesBlocked(SVGElement&, bool); >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h >deleted file mode 100644 >index 5683af899b7..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h >+++ /dev/null >@@ -1,86 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2011. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedStaticPropertyTearOff.h" >-#include "SVGPropertyTraits.h" >- >-namespace WebCore { >- >-template<typename EnumType> >-class SVGAnimatedEnumerationPropertyTearOff final : public SVGAnimatedStaticPropertyTearOff<unsigned> { >-public: >- using ContentType = EnumType; >- >- const unsigned& baseVal() final >- { >- const unsigned& baseVal = SVGAnimatedStaticPropertyTearOff::baseVal(); >- >- if (baseVal > SVGIDLEnumLimits<EnumType>::highestExposedEnumValue()) >- return m_outOfRangeEnumValue; >- >- return baseVal; >- } >- >- const unsigned& animVal() final >- { >- const unsigned& animVal = SVGAnimatedStaticPropertyTearOff::animVal(); >- >- if (animVal > SVGIDLEnumLimits<EnumType>::highestExposedEnumValue()) >- return m_outOfRangeEnumValue; >- >- return animVal; >- } >- >- ExceptionOr<void> setBaseVal(const unsigned& property) final >- { >- // All SVG enumeration values, that are allowed to be set via SVG DOM start with 1, 0 corresponds to unknown and is not settable through SVG DOM. >- if (!property || property > SVGIDLEnumLimits<EnumType>::highestExposedEnumValue()) >- return Exception { TypeError }; >- return SVGAnimatedStaticPropertyTearOff<unsigned>::setBaseVal(property); >- } >- >- static Ref<SVGAnimatedEnumerationPropertyTearOff<EnumType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, EnumType& property) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedEnumerationPropertyTearOff<EnumType>(contextElement, attributeName, animatedPropertyType, reinterpret_cast<unsigned&>(property))); >- } >- >- EnumType& currentAnimatedValue() >- { >- unsigned& animatedValue = SVGAnimatedStaticPropertyTearOff<unsigned>::currentAnimatedValue(); >- ASSERT(animatedValue <= SVGPropertyTraits<EnumType>::highestEnumValue()); >- return reinterpret_cast<EnumType&>(animatedValue); >- } >- >-private: >- SVGAnimatedEnumerationPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, unsigned& property) >- : SVGAnimatedStaticPropertyTearOff<unsigned>(contextElement, attributeName, animatedPropertyType, property) >- { >- } >- >- static unsigned m_outOfRangeEnumValue; >-}; >- >-// By convention, all enum values that represent UNKNOWN in SVG are equal to zero. >-template<typename EnumType> >-unsigned SVGAnimatedEnumerationPropertyTearOff<EnumType>::m_outOfRangeEnumValue = 0; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h >deleted file mode 100644 >index 4298c6eb15c..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h >+++ /dev/null >@@ -1,186 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2016 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedProperty.h" >-#include "SVGListPropertyTearOff.h" >-#include "SVGStaticListPropertyTearOff.h" >- >-namespace WebCore { >- >-template<typename PropertyType> >-class SVGPropertyTearOff; >- >-template<typename PropertyType> >-class SVGAnimatedListPropertyTearOff : public SVGAnimatedProperty { >-public: >- using ListItemType = typename SVGPropertyTraits<PropertyType>::ListItemType; >- using ListItemTearOff = typename SVGPropertyTraits<PropertyType>::ListItemTearOff; >- using ListWrapperCache = Vector<WeakPtr<SVGPropertyTearOff<ListItemType>>>; >- using ListProperty = SVGListProperty<PropertyType>; >- using ListPropertyTearOff = typename SVGPropertyTraits<PropertyType>::ListPropertyTearOff; >- using ContentType = PropertyType; >- >- static Ref<SVGAnimatedListPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& values) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedListPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, values)); >- } >- >- virtual Ref<ListPropertyTearOff> baseVal() >- { >- if (m_baseVal) >- return *static_cast<ListPropertyTearOff*>(m_baseVal.get()); >- >- auto property = ListPropertyTearOff::create(*this, BaseValRole, m_values, m_wrappers); >- m_baseVal = makeWeakPtr(property.get()); >- return property; >- } >- >- virtual Ref<ListPropertyTearOff> animVal() >- { >- if (m_animVal) >- return *static_cast<ListPropertyTearOff*>(m_animVal.get()); >- >- auto property = ListPropertyTearOff::create(*this, AnimValRole, m_values, m_wrappers); >- m_animVal = makeWeakPtr(property.get()); >- return property; >- } >- >- bool isAnimating() const override { return m_animatedProperty; } >- bool isAnimatedListTearOff() const override { return true; } >- >- int findItem(SVGProperty* property) >- { >- // This should ever be called for our baseVal, as animVal can't modify the list. >- return baseVal()->findItem(static_cast<ListItemTearOff*>(property)); >- } >- >- void removeItemFromList(size_t itemIndex, bool shouldSynchronizeWrappers) >- { >- // This should ever be called for our baseVal, as animVal can't modify the list. >- baseVal()->removeItemFromList(itemIndex, shouldSynchronizeWrappers); >- } >- >- void detachListWrappers(unsigned newListSize) >- { >- ListProperty::detachListWrappersAndResize(&m_wrappers, newListSize); >- } >- >- PropertyType& currentAnimatedValue() >- { >- ASSERT(isAnimating()); >- return m_animatedProperty->values(); >- } >- >- const PropertyType& currentBaseValue() const >- { >- return m_values; >- } >- >- void animationStarted(PropertyType* newAnimVal, bool shouldOwnValues = false) >- { >- ASSERT(!isAnimating()); >- ASSERT(newAnimVal); >- ASSERT(m_values.size() == m_wrappers.size()); >- ASSERT(m_animatedWrappers.isEmpty()); >- >- // Switch to new passed in value type & new wrappers list. The new wrappers list must be created for the new value. >- if (!newAnimVal->isEmpty()) >- m_animatedWrappers.fill(0, newAnimVal->size()); >- >- m_animatedProperty = animVal(); >- m_animatedProperty->setValuesAndWrappers(newAnimVal, &m_animatedWrappers, shouldOwnValues); >- ASSERT(m_animatedProperty->values().size() == m_animatedProperty->wrappers().size()); >- ASSERT(m_animatedProperty->wrappers().size() == m_animatedWrappers.size()); >- } >- >- void animationEnded() >- { >- ASSERT(isAnimating()); >- ASSERT(m_values.size() == m_wrappers.size()); >- >- ASSERT(m_animatedProperty->values().size() == m_animatedProperty->wrappers().size()); >- ASSERT(m_animatedProperty->wrappers().size() == m_animatedWrappers.size()); >- >- m_animatedProperty->setValuesAndWrappers(&m_values, &m_wrappers, false); >- ASSERT(m_animatedProperty->values().size() == m_animatedProperty->wrappers().size()); >- ASSERT(m_animatedProperty->wrappers().size() == m_wrappers.size()); >- >- m_animatedWrappers.clear(); >- m_animatedProperty = nullptr; >- } >- >- void synchronizeWrappersIfNeeded() >- { >- if (!isAnimating()) { >- // This should never happen, but we've seen it in the field. Please comment in bug #181316 if you hit this. >- ASSERT_NOT_REACHED(); >- return; >- } >- >- // Eventually the wrapper list needs synchronization because any SVGAnimateLengthList::calculateAnimatedValue() call may >- // mutate the length of our values() list, and thus the wrapper() cache needs synchronization, to have the same size. >- // Also existing wrappers which point directly at elements in the existing SVGLengthListValues have to be detached (so a copy >- // of them is created, so existing animVal variables in JS are kept-alive). If we'd detach them later the underlying >- // SVGLengthListValues was already mutated, and our list item wrapper tear offs would point nowhere. Assertions would fire. >- m_animatedProperty->detachListWrappers(m_animatedProperty->values().size()); >- >- ASSERT(m_animatedProperty->values().size() == m_animatedProperty->wrappers().size()); >- ASSERT(m_animatedProperty->wrappers().size() == m_animatedWrappers.size()); >- } >- >- void animValWillChange() >- { >- ASSERT(m_values.size() == m_wrappers.size()); >- synchronizeWrappersIfNeeded(); >- } >- >- void animValDidChange() >- { >- ASSERT(m_values.size() == m_wrappers.size()); >- synchronizeWrappersIfNeeded(); >- } >- >-protected: >- SVGAnimatedListPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& values) >- : SVGAnimatedProperty(contextElement, attributeName, animatedPropertyType) >- , m_values(values) >- { >- if (!values.isEmpty()) >- m_wrappers.fill(0, values.size()); >- } >- >- PropertyType& m_values; >- >- ListWrapperCache m_wrappers; >- ListWrapperCache m_animatedWrappers; >- >- // Cache weak pointers but return Ref pointers. This will break the cyclic reference >- // between SVGListPropertyTearOff and SVGAnimatedListPropertyTearOff once the property >- // pointer is not needed. >- WeakPtr<SVGListProperty<PropertyType>> m_baseVal; >- WeakPtr<SVGListProperty<PropertyType>> m_animVal; >- >- RefPtr<ListProperty> m_animatedProperty; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h >deleted file mode 100644 >index ba859937436..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h >+++ /dev/null >@@ -1,101 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010, 2012. All rights reserved. >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedListPropertyTearOff.h" >-#include "SVGPathByteStream.h" >-#include "SVGPathSegList.h" >-#include "SVGPathUtilities.h" >- >-namespace WebCore { >- >-class SVGAnimatedPathSegListPropertyTearOff final : public SVGAnimatedListPropertyTearOff<SVGPathSegListValues> { >-public: >- using Base = SVGAnimatedListPropertyTearOff<SVGPathSegListValues>; >- >- static Ref<SVGAnimatedPathSegListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGPathSegListValues& values) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedPathSegListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values)); >- } >- >- Ref<ListPropertyTearOff> baseVal() final >- { >- if (m_baseVal) >- return *static_cast<ListPropertyTearOff*>(m_baseVal.get()); >- >- auto property = SVGPathSegList::create(*this, BaseValRole, PathSegUnalteredRole, m_values, m_wrappers); >- m_baseVal = makeWeakPtr(property.get()); >- return property; >- } >- >- Ref<ListPropertyTearOff> animVal() final >- { >- if (m_animVal) >- return *static_cast<ListPropertyTearOff*>(m_animVal.get()); >- >- auto property = SVGPathSegList::create(*this, AnimValRole, PathSegUnalteredRole, m_values, m_wrappers); >- m_animVal = makeWeakPtr(property.get()); >- return property; >- } >- >- int findItem(const RefPtr<SVGPathSeg>& segment) >- { >- return baseVal()->findItem(segment); >- } >- >- void removeItemFromList(size_t itemIndex, bool shouldSynchronizeWrappers) >- { >- baseVal()->removeItemFromList(itemIndex, shouldSynchronizeWrappers); >- } >- >- using Base::animationStarted; >- void animationStarted(SVGPathByteStream* byteStream, const SVGPathSegListValues* baseValue) >- { >- ASSERT(byteStream); >- ASSERT(baseValue); >- ASSERT(!m_animatedPathByteStream); >- m_animatedPathByteStream = byteStream; >- >- // Pass shouldOwnValues=true, as the SVGPathSegListValues lifetime is solely managed by its tear off class. >- auto* copy = new SVGPathSegListValues(*baseValue); >- Base::animationStarted(copy, true); >- } >- >- void animationEnded() >- { >- ASSERT(m_animatedPathByteStream); >- m_animatedPathByteStream = nullptr; >- Base::animationEnded(); >- } >- >- void animValDidChange(); >- >- SVGPathByteStream* animatedPathByteStream() const { return m_animatedPathByteStream; } >- >-private: >- SVGAnimatedPathSegListPropertyTearOff(SVGElement*, const QualifiedName&, AnimatedPropertyType, SVGPathSegListValues&); >- virtual ~SVGAnimatedPathSegListPropertyTearOff(); >- >- SVGPathByteStream* m_animatedPathByteStream { nullptr }; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAnimatedPropertyDescription.h b/Source/WebCore/svg/properties/SVGAnimatedPropertyDescription.h >deleted file mode 100644 >index f1d9a04b0ff..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedPropertyDescription.h >+++ /dev/null >@@ -1,83 +0,0 @@ >-/* >- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> >- * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include <wtf/HashMap.h> >-#include <wtf/text/AtomicString.h> >- >-namespace WebCore { >- >-class SVGElement; >- >-struct SVGAnimatedPropertyDescription { >- // Empty value >- SVGAnimatedPropertyDescription() >- : m_element(nullptr) >- , m_attributeName(nullptr) >- { >- } >- >- // Deleted value >- SVGAnimatedPropertyDescription(WTF::HashTableDeletedValueType) >- : m_element(reinterpret_cast<SVGElement*>(-1)) >- { >- } >- >- bool isHashTableDeletedValue() const >- { >- return m_element == reinterpret_cast<SVGElement*>(-1); >- } >- >- SVGAnimatedPropertyDescription(SVGElement* element, const AtomicString& attributeName) >- : m_element(element) >- , m_attributeName(attributeName.impl()) >- { >- ASSERT(m_element); >- ASSERT(m_attributeName); >- } >- >- bool operator==(const SVGAnimatedPropertyDescription& other) const >- { >- return m_element == other.m_element && m_attributeName == other.m_attributeName; >- } >- >- SVGElement* m_element; >- AtomicStringImpl* m_attributeName; >-}; >- >-struct SVGAnimatedPropertyDescriptionHash { >- static unsigned hash(const SVGAnimatedPropertyDescription& key) >- { >- return StringHasher::hashMemory<sizeof(SVGAnimatedPropertyDescription)>(&key); >- } >- >- static bool equal(const SVGAnimatedPropertyDescription& a, const SVGAnimatedPropertyDescription& b) >- { >- return a == b; >- } >- >- static const bool safeToCompareToEmptyOrDeleted = true; >-}; >- >-struct SVGAnimatedPropertyDescriptionHashTraits : WTF::SimpleClassHashTraits<SVGAnimatedPropertyDescription> { }; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h >deleted file mode 100644 >index 20ce5e58315..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h >+++ /dev/null >@@ -1,120 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2016 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedProperty.h" >-#include "SVGPropertyTearOff.h" >- >-namespace WebCore { >- >-template<typename T> >-class SVGAnimatedPropertyTearOff final : public SVGAnimatedProperty { >-public: >- using PropertyTearOff = T; >- using PropertyType = typename PropertyTearOff::PropertyType; >- using ContentType = PropertyType; >- >- static Ref<SVGAnimatedPropertyTearOff<PropertyTearOff>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedPropertyTearOff<PropertyTearOff>(contextElement, attributeName, animatedPropertyType, property)); >- } >- >- Ref<PropertyTearOff> baseVal() >- { >- if (m_baseVal) >- return *static_cast<PropertyTearOff*>(m_baseVal.get()); >- >- auto property = PropertyTearOff::create(*this, BaseValRole, m_property); >- m_baseVal = makeWeakPtr(property.get()); >- return property; >- } >- >- Ref<PropertyTearOff> animVal() >- { >- if (m_animVal) >- return *static_cast<PropertyTearOff*>(m_animVal.get()); >- >- auto property = PropertyTearOff::create(*this, AnimValRole, m_property); >- m_animVal = makeWeakPtr(property.get()); >- return property; >- } >- >- bool isAnimating() const final { return m_animatedProperty; } >- >- PropertyType& currentAnimatedValue() >- { >- ASSERT(isAnimating()); >- return m_animatedProperty->propertyReference(); >- } >- >- const PropertyType& currentBaseValue() const >- { >- return m_property; >- } >- >- void animationStarted(PropertyType* newAnimVal) >- { >- ASSERT(!isAnimating()); >- ASSERT(newAnimVal); >- m_animatedProperty = animVal(); >- m_animatedProperty->setValue(*newAnimVal); >- } >- >- void animationEnded() >- { >- ASSERT(isAnimating()); >- m_animatedProperty->setValue(m_property); >- m_animatedProperty = nullptr; >- } >- >- void animValWillChange() >- { >- // no-op for non list types. >- ASSERT(isAnimating()); >- } >- >- void animValDidChange() >- { >- // no-op for non list types. >- ASSERT(isAnimating()); >- } >- >- void synchronizeWrappersIfNeeded() >- { >- // no-op >- } >- >-private: >- SVGAnimatedPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property) >- : SVGAnimatedProperty(contextElement, attributeName, animatedPropertyType) >- , m_property(property) >- { >- } >- >- PropertyType& m_property; >- WeakPtr<SVGPropertyTearOff<PropertyType>> m_baseVal; >- WeakPtr<SVGPropertyTearOff<PropertyType>> m_animVal; >- >- RefPtr<PropertyTearOff> m_animatedProperty; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h >deleted file mode 100644 >index 27faa7c3c18..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h >+++ /dev/null >@@ -1,114 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. >- * Copyright (C) 2016 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "ExceptionOr.h" >-#include "SVGAnimatedProperty.h" >- >-namespace WebCore { >- >-template<typename PropertyType> >-class SVGAnimatedStaticPropertyTearOff : public SVGAnimatedProperty { >-public: >- typedef PropertyType ContentType; >- >- virtual const PropertyType& baseVal() >- { >- return m_property; >- } >- >- virtual const PropertyType& animVal() >- { >- if (m_animatedProperty) >- return *m_animatedProperty; >- return m_property; >- } >- >- virtual ExceptionOr<void> setBaseVal(const PropertyType& property) >- { >- m_property = property; >- commitChange(); >- return { }; >- } >- >- bool isAnimating() const override { return m_animatedProperty; } >- >- static Ref<SVGAnimatedStaticPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedStaticPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, property)); >- } >- >- PropertyType& currentAnimatedValue() >- { >- ASSERT(isAnimating()); >- return *m_animatedProperty; >- } >- >- const PropertyType& currentBaseValue() const >- { >- return m_property; >- } >- >- void animationStarted(PropertyType* newAnimVal) >- { >- ASSERT(!isAnimating()); >- ASSERT(newAnimVal); >- m_animatedProperty = newAnimVal; >- } >- >- void animationEnded() >- { >- ASSERT(isAnimating()); >- m_animatedProperty = nullptr; >- } >- >- void animValWillChange() >- { >- // no-op for non list types. >- ASSERT(isAnimating()); >- } >- >- void animValDidChange() >- { >- // no-op for non list types. >- ASSERT(isAnimating()); >- } >- >- void synchronizeWrappersIfNeeded() >- { >- // no-op >- } >- >-protected: >- SVGAnimatedStaticPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property) >- : SVGAnimatedProperty(contextElement, attributeName, animatedPropertyType) >- , m_property(property) >- , m_animatedProperty(nullptr) >- { >- } >- >-private: >- PropertyType& m_property; >- PropertyType* m_animatedProperty; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h >deleted file mode 100644 >index 33972024691..00000000000 >--- a/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h >+++ /dev/null >@@ -1,62 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGAnimatedListPropertyTearOff.h" >-#include "SVGTransformList.h" >- >-namespace WebCore { >- >-class SVGAnimatedTransformListPropertyTearOff final : public SVGAnimatedListPropertyTearOff<SVGTransformListValues> { >-public: >- static Ref<SVGAnimatedTransformListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGTransformListValues& values) >- { >- ASSERT(contextElement); >- return adoptRef(*new SVGAnimatedTransformListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values)); >- } >- >- Ref<ListPropertyTearOff> baseVal() final >- { >- if (m_baseVal) >- return *static_cast<ListPropertyTearOff*>(m_baseVal.get()); >- >- auto property = SVGTransformList::create(*this, BaseValRole, m_values, m_wrappers); >- m_baseVal = makeWeakPtr(property.get()); >- return property; >- } >- >- Ref<ListPropertyTearOff> animVal() final >- { >- if (m_animVal) >- return *static_cast<ListPropertyTearOff*>(m_animVal.get()); >- >- auto property = SVGTransformList::create(*this, AnimValRole, m_values, m_wrappers); >- m_animVal = makeWeakPtr(property.get()); >- return property; >- } >- >-private: >- SVGAnimatedTransformListPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGTransformListValues& values) >- : SVGAnimatedListPropertyTearOff<SVGTransformListValues>(contextElement, attributeName, animatedPropertyType, values) >- { >- } >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAttribute.h b/Source/WebCore/svg/properties/SVGAttribute.h >deleted file mode 100644 >index 8711ac8cc16..00000000000 >--- a/Source/WebCore/svg/properties/SVGAttribute.h >+++ /dev/null >@@ -1,131 +0,0 @@ >-/* >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#pragma once >- >-#include "Element.h" >-#include "SVGAttributeOwnerProxy.h" >-#include "SVGPropertyTraits.h" >- >-namespace WebCore { >- >-class SVGAttribute { }; >- >-template<typename PropertyType> >-class SVGPropertyAttribute : public SVGAttribute { >-public: >- SVGPropertyAttribute() >- : m_property(SVGPropertyTraits<PropertyType>::initialValue()) >- { >- } >- >- template<typename... Arguments> >- SVGPropertyAttribute(Arguments&&... arguments) >- : m_property(std::forward<Arguments>(arguments)...) >- { >- } >- >- PropertyType& value() { return m_property; } >- const PropertyType& value() const { return m_property; } >- >- void setValue(const PropertyType& property) { m_property = property; } >- void setValue(PropertyType&& property) { m_property = WTFMove(property); } >- void resetValue() { m_property = SVGPropertyTraits<PropertyType>::initialValue(); } >- >- String toString() const { return SVGPropertyTraits<PropertyType>::toString(m_property); } >- >- void setShouldSynchronize(bool shouldSynchronize) { m_shouldSynchronize = shouldSynchronize; } >- bool shouldSynchronize() const { return m_shouldSynchronize; } >- void synchronize(Element& element, const QualifiedName& attributeName) >- { >- if (!m_shouldSynchronize) >- return; >- element.setSynchronizedLazyAttribute(attributeName, toString()); >- } >- >-protected: >- PropertyType m_property; >- bool m_shouldSynchronize { false }; >-}; >- >-template<typename TearOffType> >-class SVGAnimatedAttribute : public SVGPropertyAttribute<typename TearOffType::ContentType> { >-public: >- using PropertyTearOffType = TearOffType; >- using PropertyType = typename PropertyTearOffType::ContentType; >- using Base = SVGPropertyAttribute<PropertyType>; >- using Base::m_property; >- using Base::m_shouldSynchronize; >- >- SVGAnimatedAttribute() = default; >- >- template<typename... Arguments> >- SVGAnimatedAttribute(Arguments&&... arguments) >- : Base(std::forward<Arguments>(arguments)...) >- { >- } >- >- const PropertyType& currentValue(const SVGAttributeOwnerProxy& attributeOwnerProxy) const >- { >- if (auto wrapper = attributeOwnerProxy.lookupAnimatedProperty(*this)) { >- if (wrapper->isAnimating()) >- return static_pointer_cast<PropertyTearOffType>(wrapper)->currentAnimatedValue(); >- } >- return m_property; >- } >- >- RefPtr<PropertyTearOffType> animatedProperty(const SVGAttributeOwnerProxy& attributeOwnerProxy) >- { >- m_shouldSynchronize = true; >- if (auto wrapper = attributeOwnerProxy.lookupOrCreateAnimatedProperty(*this)) >- return static_pointer_cast<PropertyTearOffType>(wrapper); >- RELEASE_ASSERT_NOT_REACHED(); >- return nullptr; >- } >-}; >- >-template<typename TearOffType> >-class SVGAnimatedAttributeList : public SVGAnimatedAttribute<TearOffType> { >-public: >- using PropertyTearOffType = TearOffType; >- using PropertyType = typename PropertyTearOffType::ContentType; >- using Base = SVGAnimatedAttribute<PropertyTearOffType>; >- >- SVGAnimatedAttributeList() = default; >- >- template<typename... Arguments> >- SVGAnimatedAttributeList(Arguments&&... arguments) >- : Base(std::forward<Arguments>(arguments)...) >- { >- } >- >- void detachAnimatedListWrappers(const SVGAttributeOwnerProxy& attributeOwnerProxy, unsigned newListSize) >- { >- if (auto wrapper = attributeOwnerProxy.lookupAnimatedProperty(*this)) >- static_pointer_cast<PropertyTearOffType>(wrapper)->detachListWrappers(newListSize); >- } >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGAttributeAccessor.h b/Source/WebCore/svg/properties/SVGAttributeAccessor.h >deleted file mode 100644 >index c5c0f8f6648..00000000000 >--- a/Source/WebCore/svg/properties/SVGAttributeAccessor.h >+++ /dev/null >@@ -1,248 +0,0 @@ >-/* >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#pragma once >- >-#include "Element.h" >-#include "QualifiedName.h" >-#include "SVGAnimatedProperty.h" >-#include "SVGAnimatedPropertyType.h" >-#include "SVGAttribute.h" >-#include "SVGLengthValue.h" >-#include "SVGNames.h" >-#include "SVGPropertyTraits.h" >- >-namespace WebCore { >- >-class SVGAttribute; >-class SVGElement; >- >-template<typename OwnerType> >-class SVGAttributeAccessor { >- WTF_MAKE_FAST_ALLOCATED; >-public: >- SVGAttributeAccessor(const QualifiedName& attributeName) >- : m_attributeName(attributeName) >- { >- } >- virtual ~SVGAttributeAccessor() = default; >- >- const QualifiedName& attributeName() const { return m_attributeName; } >- >- virtual bool isMatched(const OwnerType&, const SVGAttribute&) const = 0; >- virtual void synchronizeProperty(OwnerType&, Element&) const = 0; >- >- virtual bool isAnimatedLengthAttribute() const { return false; } >- virtual AnimatedPropertyType animatedType() const { return AnimatedUnknown; } >- virtual Vector<AnimatedPropertyType> animatedTypes() const { return { animatedType() }; } >- >- virtual RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(OwnerType&, SVGElement&, const SVGAttribute&, AnimatedPropertyState) const { return nullptr; }; >- virtual RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const OwnerType&, const SVGElement&, const SVGAttribute&) const { return nullptr; }; >- virtual Vector<RefPtr<SVGAnimatedProperty>> lookupOrCreateAnimatedProperties(OwnerType&, SVGElement&, AnimatedPropertyState) const { return { }; } >- >-protected: >- const QualifiedName m_attributeName; >-}; >- >-template<typename OwnerType, typename AttributeType> >-class SVGPropertyAttributeAccessor : public SVGAttributeAccessor<OwnerType> { >-public: >- using Base = SVGAttributeAccessor<OwnerType>; >- using Base::m_attributeName; >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, AttributeType OwnerType::*attribute> >- static SVGAttributeAccessor<OwnerType>& singleton() >- { >- static NeverDestroyed<SVGPropertyAttributeAccessor> attributeAccessor { attributeName, attributeName->localName(), attribute }; >- return attributeAccessor; >- } >- >- SVGPropertyAttributeAccessor(const QualifiedName& attributeName, const AtomicString& identifier, AttributeType OwnerType::*attribute) >- : Base(attributeName) >- , m_identifier(identifier) >- , m_attribute(attribute) >- { >- } >- >-protected: >- auto& attribute(OwnerType& owner) const { return owner.*m_attribute; } >- const auto& attribute(const OwnerType& owner) const { return owner.*m_attribute; } >- >- bool isMatched(const OwnerType& owner, const SVGAttribute& attribute) const override >- { >- return &this->attribute(owner) == &attribute; >- } >- >- void synchronizeProperty(OwnerType& owner, Element& element) const override >- { >- attribute(owner).synchronize(element, m_attributeName); >- } >- >- const AtomicString& m_identifier; >- AttributeType OwnerType::*m_attribute; >-}; >- >-template<typename OwnerType, typename AnimatedAttributeType, AnimatedPropertyType type> >-class SVGAnimatedAttributeAccessor : public SVGPropertyAttributeAccessor<OwnerType, AnimatedAttributeType> { >-public: >- using PropertyTearOffType = typename AnimatedAttributeType::PropertyTearOffType; >- using PropertyType = typename AnimatedAttributeType::PropertyType; >- using Base = SVGPropertyAttributeAccessor<OwnerType, AnimatedAttributeType>; >- using Base::attribute; >- using Base::isMatched; >- using Base::m_attributeName; >- using Base::m_identifier; >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, AnimatedAttributeType OwnerType::*attribute> >- static SVGAttributeAccessor<OwnerType>& singleton() >- { >- static NeverDestroyed<SVGAnimatedAttributeAccessor> attributeAccessor { attributeName, attributeName->localName(), attribute }; >- return attributeAccessor; >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, const AtomicString& (*identifier)(), AnimatedAttributeType OwnerType::*attribute> >- static SVGAttributeAccessor<OwnerType>& singleton() >- { >- static NeverDestroyed<SVGAnimatedAttributeAccessor> attributeAccessor { attributeName, identifier(), attribute }; >- return attributeAccessor; >- } >- >- SVGAnimatedAttributeAccessor(const QualifiedName& attributeName, const AtomicString& identifier, AnimatedAttributeType OwnerType::*attribute) >- : Base(attributeName, identifier, attribute) >- { >- } >- >-protected: >- template<typename PropertyTearOff = PropertyTearOffType, typename Property = PropertyType, AnimatedPropertyType animatedType = type> >- static RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(SVGElement& element, const QualifiedName& attributeName, const AtomicString& identifier, Property& property, AnimatedPropertyState animatedState) >- { >- return SVGAnimatedProperty::lookupOrCreateAnimatedProperty<PropertyTearOff, Property, animatedType>(element, attributeName, identifier, property, animatedState); >- } >- >- static RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const SVGElement& element, const AtomicString& identifier) >- { >- return SVGAnimatedProperty::lookupAnimatedProperty(element, identifier); >- } >- >- bool isAnimatedLengthAttribute() const override { return std::is_same<PropertyType, SVGLengthValue>::value; } >- AnimatedPropertyType animatedType() const override { return type; } >- >- RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(OwnerType& owner, SVGElement& element, const SVGAttribute& attribute, AnimatedPropertyState animatedState) const override >- { >- ASSERT_UNUSED(attribute, isMatched(owner, attribute)); >- return lookupOrCreateAnimatedProperty(element, m_attributeName, m_identifier, this->attribute(owner).value(), animatedState); >- } >- >- RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const OwnerType&, const SVGElement& element, const SVGAttribute&) const override >- { >- return lookupAnimatedProperty(element, m_identifier); >- } >- >- Vector<RefPtr<SVGAnimatedProperty>> lookupOrCreateAnimatedProperties(OwnerType& owner, SVGElement& element, AnimatedPropertyState animatedState) const override >- { >- return { lookupOrCreateAnimatedProperty(element, m_attributeName, m_identifier, attribute(owner).value(), animatedState) }; >- } >-}; >- >-template<typename OwnerType, typename AnimatedAttributeType, AnimatedPropertyType type, typename SecondAnimatedAttributeType, AnimatedPropertyType secondType> >-class SVGAnimatedPairAttributeAccessor : public SVGAnimatedAttributeAccessor<OwnerType, AnimatedAttributeType, type> { >-public: >- using PropertyTearOffType = typename AnimatedAttributeType::PropertyTearOffType; >- using SecondPropertyTearOffType = typename SecondAnimatedAttributeType::PropertyTearOffType; >- using SecondPropertyType = typename SecondAnimatedAttributeType::PropertyType; >- using Base = SVGAnimatedAttributeAccessor<OwnerType, AnimatedAttributeType, type>; >- using Base::attribute; >- using Base::lookupOrCreateAnimatedProperty; >- using Base::lookupAnimatedProperty; >- using Base::m_attributeName; >- using Base::m_identifier; >- >- template< >- const LazyNeverDestroyed<const QualifiedName>& attributeName, >- const AtomicString& (*identifier)(), AnimatedAttributeType OwnerType::*attribute, >- const AtomicString& (*secondIdentifier)(), SecondAnimatedAttributeType OwnerType::*secondAttribute >- > >- static SVGAttributeAccessor<OwnerType>& singleton() >- { >- static NeverDestroyed<SVGAnimatedPairAttributeAccessor> attributeAccessor { attributeName, identifier(), attribute, secondIdentifier(), secondAttribute }; >- return attributeAccessor; >- } >- >- SVGAnimatedPairAttributeAccessor(const QualifiedName& attributeName, const AtomicString& identifier, AnimatedAttributeType OwnerType::*attribute, const AtomicString& secondIdentifier, SecondAnimatedAttributeType OwnerType::*secondAttribute) >- : Base(attributeName, identifier, attribute) >- , m_secondIdentifier(secondIdentifier) >- , m_secondAttribute(secondAttribute) >- { >- } >- >-private: >- auto& secondAttribute(OwnerType& owner) const { return owner.*m_secondAttribute; } >- const auto& secondAttribute(const OwnerType& owner) const { return owner.*m_secondAttribute; } >- >- bool isMatched(const OwnerType& owner, const SVGAttribute& attribute) const override >- { >- return Base::isMatched(owner, attribute) || &secondAttribute(owner) == &attribute; >- } >- >- void synchronizeProperty(OwnerType& owner, Element& element) const override >- { >- attribute(owner).synchronize(element, m_attributeName); >- secondAttribute(owner).synchronize(element, m_attributeName); >- } >- >- Vector<AnimatedPropertyType> animatedTypes() const override { return { type, secondType }; } >- >- RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(OwnerType& owner, SVGElement& element, const SVGAttribute& attribute, AnimatedPropertyState animatedState) const override >- { >- if (Base::isMatched(owner, attribute)) >- return lookupOrCreateAnimatedProperty(element, m_attributeName, m_identifier, this->attribute(owner).value(), animatedState); >- ASSERT(&secondAttribute(owner) == &attribute); >- return Base::template lookupOrCreateAnimatedProperty<SecondPropertyTearOffType, SecondPropertyType, secondType>(element, m_attributeName, m_secondIdentifier, secondAttribute(owner).value(), animatedState); >- } >- >- RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const OwnerType& owner, const SVGElement& element, const SVGAttribute& attribute) const override >- { >- if (Base::isMatched(owner, attribute)) >- return lookupAnimatedProperty(element, m_identifier); >- ASSERT(&secondAttribute(owner) == &attribute); >- return lookupAnimatedProperty(element, m_secondIdentifier); >- } >- >- Vector<RefPtr<SVGAnimatedProperty>> lookupOrCreateAnimatedProperties(OwnerType& owner, SVGElement& element, AnimatedPropertyState animatedState) const override >- { >- return { >- lookupOrCreateAnimatedProperty(element, m_attributeName, m_identifier, attribute(owner).value(), animatedState), >- Base::template lookupOrCreateAnimatedProperty<SecondPropertyTearOffType, SecondPropertyType, secondType>(element, m_attributeName, m_secondIdentifier, secondAttribute(owner).value(), animatedState) >- }; >- } >- >- const AtomicString& m_secondIdentifier; >- SecondAnimatedAttributeType OwnerType::*m_secondAttribute; >-}; >- >-template<typename OwnerType, typename AnimatedAttributeType, AnimatedPropertyType type> >-using SVGAnimatedOptionalAttributeAccessor = SVGAnimatedPairAttributeAccessor<OwnerType, AnimatedAttributeType, type, AnimatedAttributeType, type>; >- >-} // namespace WebCore >diff --git a/Source/WebCore/svg/properties/SVGAttributeOwnerProxyImpl.h b/Source/WebCore/svg/properties/SVGAttributeOwnerProxyImpl.h >deleted file mode 100644 >index 51d21ec07d7..00000000000 >--- a/Source/WebCore/svg/properties/SVGAttributeOwnerProxyImpl.h >+++ /dev/null >@@ -1,103 +0,0 @@ >-/* >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#pragma once >- >-#include "SVGAttributeOwnerProxy.h" >-#include "SVGAttributeRegistry.h" >- >-namespace WebCore { >- >-template<typename OwnerType, typename... BaseTypes> >-class SVGAttributeOwnerProxyImpl : public SVGAttributeOwnerProxy { >-public: >- using AttributeRegistry = SVGAttributeRegistry<OwnerType, BaseTypes...>; >- >- SVGAttributeOwnerProxyImpl(OwnerType& owner, SVGElement& element, AnimatedPropertyState animatedState = PropertyIsReadWrite) >- : SVGAttributeOwnerProxy(element) >- , m_owner(owner) >- , m_animatedState(animatedState) >- { >- // This is the OwnerProxy constructor for the non SVGElement based owners, e.g. SVGTests. >- } >- >- SVGAttributeOwnerProxyImpl(OwnerType& owner) >- : SVGAttributeOwnerProxy(owner) >- , m_owner(owner) >- { >- static_assert(std::is_base_of<SVGElement, OwnerType>::value, "The owner of SVGAttributeOwnerProxy should be derived from SVGElement."); >- } >- >- static AttributeRegistry& attributeRegistry() >- { >- return AttributeRegistry::singleton(); >- } >- >- static bool isKnownAttribute(const QualifiedName& attributeName) >- { >- return attributeRegistry().isKnownAttribute(attributeName); >- } >- >- static bool isAnimatedLengthAttribute(const QualifiedName& attributeName) >- { >- return attributeRegistry().isAnimatedLengthAttribute(attributeName); >- } >- >-private: >- void synchronizeAttributes() const override >- { >- attributeRegistry().synchronizeAttributes(m_owner, m_element); >- } >- >- void synchronizeAttribute(const QualifiedName& attributeName) const override >- { >- attributeRegistry().synchronizeAttribute(m_owner, m_element, attributeName); >- } >- >- Vector<AnimatedPropertyType> animatedTypes(const QualifiedName& attributeName) const override >- { >- return attributeRegistry().animatedTypes(attributeName); >- } >- >- RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(const SVGAttribute& attribute) const override >- { >- return attributeRegistry().lookupOrCreateAnimatedProperty(m_owner, m_element, attribute, m_animatedState); >- } >- >- RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const SVGAttribute& attribute) const override >- { >- return attributeRegistry().lookupAnimatedProperty(m_owner, m_element, attribute); >- } >- >- Vector<RefPtr<SVGAnimatedProperty>> lookupOrCreateAnimatedProperties(const QualifiedName& attributeName) const override >- { >- return attributeRegistry().lookupOrCreateAnimatedProperties(m_owner, m_element, attributeName, m_animatedState); >- } >- >- OwnerType& m_owner; >- AnimatedPropertyState m_animatedState { PropertyIsReadWrite }; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGAttributeRegistry.h b/Source/WebCore/svg/properties/SVGAttributeRegistry.h >deleted file mode 100644 >index 3022280063b..00000000000 >--- a/Source/WebCore/svg/properties/SVGAttributeRegistry.h >+++ /dev/null >@@ -1,330 +0,0 @@ >-/* >- * Copyright (C) 2018 Apple Inc. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#pragma once >- >-#include "SVGAnimatedBoolean.h" >-#include "SVGAnimatedEnumeration.h" >-#include "SVGAnimatedInteger.h" >-#include "SVGAnimatedLength.h" >-#include "SVGAnimatedLengthList.h" >-#include "SVGAnimatedNumber.h" >-#include "SVGAnimatedNumberList.h" >-#include "SVGAnimatedPointList.h" >-#include "SVGAnimatedPreserveAspectRatio.h" >-#include "SVGAnimatedProperty.h" >-#include "SVGAnimatedRect.h" >-#include "SVGAnimatedString.h" >-#include "SVGAnimatedTransformList.h" >-#include "SVGAttributeAccessor.h" >-#include "SVGStringListValues.h" >-#include "SVGZoomAndPanType.h" >-#include <wtf/HashMap.h> >- >-namespace WebCore { >- >-template<typename OwnerType, typename... BaseTypes> >-class SVGAttributeRegistry { >-public: >- static SVGAttributeRegistry<OwnerType, BaseTypes...>& singleton() >- { >- static NeverDestroyed<SVGAttributeRegistry<OwnerType, BaseTypes...>> map; >- return map; >- } >- >- // Non animatable attributes >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGStringListValuesAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGStringListValuesAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGZoomAndPanTypeAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGZoomAndPanTypeAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- // Animatable attributes >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedBooleanAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedBooleanAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, typename EnumType, SVGAnimatedEnumerationAttribute<EnumType> OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedEnumerationAttributeAccessor<OwnerType, EnumType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedIntegerAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedIntegerAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, >- const AtomicString& (*identifier)(), SVGAnimatedIntegerAttribute OwnerType::*attribute, >- const AtomicString& (*optionalIdentifier)(), SVGAnimatedIntegerAttribute OwnerType::*optionalAttribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedOptionalIntegerAttributeAccessor<OwnerType>::template singleton<attributeName, identifier, attribute, optionalIdentifier, optionalAttribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedLengthAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedLengthAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedLengthListAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedLengthListAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedNumberAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedNumberAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedNumberListAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedNumberListAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, >- const AtomicString& (*identifier)(), SVGAnimatedNumberAttribute OwnerType::*attribute, >- const AtomicString& (*optionalIdentifier)(), SVGAnimatedNumberAttribute OwnerType::*optionalAttribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedOptionalNumberAttributeAccessor<OwnerType>::template singleton<attributeName, identifier, attribute, optionalIdentifier, optionalAttribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedPointListAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedPointListAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedPreserveAspectRatioAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedPreserveAspectRatioAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedRectAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedRectAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedStringAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedStringAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- template<const LazyNeverDestroyed<const QualifiedName>& attributeName, SVGAnimatedTransformListAttribute OwnerType::*attribute> >- void registerAttribute() >- { >- registerAttribute(SVGAnimatedTransformListAttributeAccessor<OwnerType>::template singleton<attributeName, attribute>()); >- } >- >- bool isEmpty() const { return m_map.isEmpty(); } >- >- bool isKnownAttribute(const QualifiedName& attributeName) const >- { >- // Here we need to loop through the entries in the map and use matches() to compare them with attributeName. >- // m_map.contains() uses QualifiedName::operator==() which compares the impl pointers only while matches() >- // compares the contents if the impl pointers differ. >- auto it = std::find_if(m_map.begin(), m_map.end(), [&attributeName](const auto& entry) -> bool { >- return entry.key.matches(attributeName); >- }); >- return it != m_map.end(); >- } >- >- bool isAnimatedLengthAttribute(const QualifiedName& attributeName) const >- { >- if (const auto* attributeAccessor = findAttributeAccessor(attributeName)) >- return attributeAccessor->isAnimatedLengthAttribute(); >- return false; >- } >- >- Vector<AnimatedPropertyType> animatedTypes(const QualifiedName& attributeName) const >- { >- // If this registry has an accessor for attributeName, return animatedTypes() of this accessor. >- if (const auto* attributeAccessor = findAttributeAccessor(attributeName)) >- return attributeAccessor->animatedTypes(); >- // Otherwise loop through BaeTypes and see if any of them knows attributeName. >- return animatedTypesBaseTypes(attributeName); >- } >- >- void synchronizeAttributes(OwnerType& owner, SVGElement& element) const >- { >- for (auto* attributeAccessor : m_map.values()) >- attributeAccessor->synchronizeProperty(owner, element); >- synchronizeAttributesBaseTypes(owner, element); >- } >- >- bool synchronizeAttribute(OwnerType& owner, SVGElement& element, const QualifiedName& attributeName) const >- { >- if (const auto* attributeAccessor = findAttributeAccessor(attributeName)) { >- attributeAccessor->synchronizeProperty(owner, element); >- return true; >- } >- return synchronizeAttributeBaseTypes(owner, element, attributeName); >- } >- >- RefPtr<SVGAnimatedProperty> lookupOrCreateAnimatedProperty(OwnerType& owner, SVGElement& element, const SVGAttribute& attribute, AnimatedPropertyState animatedState) const >- { >- if (const auto* attributeAccessor = findAttributeAccessor(owner, attribute)) >- return attributeAccessor->lookupOrCreateAnimatedProperty(owner, element, attribute, animatedState); >- return lookupOrCreateAnimatedPropertyBaseTypes(owner, element, attribute, animatedState); >- } >- >- RefPtr<SVGAnimatedProperty> lookupAnimatedProperty(const OwnerType& owner, const SVGElement& element, const SVGAttribute& attribute) const >- { >- if (const auto* attributeAccessor = findAttributeAccessor(owner, attribute)) >- return attributeAccessor->lookupAnimatedProperty(owner, element, attribute); >- return lookupAnimatedPropertyBaseTypes(owner, element, attribute); >- } >- >- Vector<RefPtr<SVGAnimatedProperty>> lookupOrCreateAnimatedProperties(OwnerType& owner, SVGElement& element, const QualifiedName& attributeName, AnimatedPropertyState animatedState) const >- { >- if (const auto* attributeAccessor = findAttributeAccessor(attributeName)) >- return attributeAccessor->lookupOrCreateAnimatedProperties(owner, element, animatedState); >- return lookupOrCreateAnimatedPropertiesBaseTypes(owner, element, attributeName, animatedState); >- } >- >- void registerAttribute(const SVGAttributeAccessor<OwnerType>& attributeAccessor) >- { >- m_map.add(attributeAccessor.attributeName(), &attributeAccessor); >- } >- >-private: >- // This is a template function with parameter 'I' whose default value = 0. So you can call it without any parameter from animatedTypes(). >- // It returns Vector<AnimatedPropertyType> and is enable_if<I == sizeof...(BaseTypes)>. So it is mainly for breaking the recursion. If >- // it is called, this means no attribute was found in this registry for this QualifiedName. So return an empty Vector<AnimatedPropertyType>. >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), Vector<AnimatedPropertyType>>::type animatedTypesBaseTypes(const QualifiedName&) { return { }; } >- >- // This version of animatedTypesBaseTypes() is enable_if<I < sizeof...(BaseTypes)>. >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), Vector<AnimatedPropertyType>>::type animatedTypesBaseTypes(const QualifiedName& attributeName) >- { >- // Get the base type at index 'I' using std::tuple and std::tuple_element. >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- >- // Get the SVGAttributeRegistry of BaseType. If it knows attributeName break the recursion. >- auto animatedTypes = BaseType::attributeRegistry().animatedTypes(attributeName); >- if (!animatedTypes.isEmpty()) >- return animatedTypes; >- >- // SVGAttributeRegistry of BaseType does not know attributeName. Recurse to the next BaseType. >- return animatedTypesBaseTypes<I + 1>(attributeName); >- } >- >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), void>::type synchronizeAttributesBaseTypes(OwnerType&, Element&) { } >- >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), void>::type synchronizeAttributesBaseTypes(OwnerType& owner, SVGElement& element) >- { >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- BaseType::attributeRegistry().synchronizeAttributes(owner, element); >- synchronizeAttributesBaseTypes<I + 1>(owner, element); >- } >- >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), bool>::type synchronizeAttributeBaseTypes(OwnerType&, Element&, const QualifiedName&) { return false; } >- >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), bool>::type synchronizeAttributeBaseTypes(OwnerType& owner, SVGElement& element, const QualifiedName& attributeName) >- { >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- if (BaseType::attributeRegistry().synchronizeAttribute(owner, element, attributeName)) >- return true; >- return synchronizeAttributeBaseTypes<I + 1>(owner, element, attributeName); >- } >- >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), RefPtr<SVGAnimatedProperty>>::type lookupOrCreateAnimatedPropertyBaseTypes(OwnerType&, SVGElement&, const SVGAttribute&, AnimatedPropertyState) { return nullptr; } >- >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), RefPtr<SVGAnimatedProperty>>::type lookupOrCreateAnimatedPropertyBaseTypes(OwnerType& owner, SVGElement& element, const SVGAttribute& attribute, AnimatedPropertyState animatedState) >- { >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- if (auto animatedProperty = BaseType::attributeRegistry().lookupOrCreateAnimatedProperty(owner, element, attribute, animatedState)) >- return animatedProperty; >- return lookupOrCreateAnimatedPropertyBaseTypes<I + 1>(owner, element, attribute, animatedState); >- } >- >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), RefPtr<SVGAnimatedProperty>>::type lookupAnimatedPropertyBaseTypes(const OwnerType&, const SVGElement&, const SVGAttribute&) { return nullptr; } >- >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), RefPtr<SVGAnimatedProperty>>::type lookupAnimatedPropertyBaseTypes(const OwnerType& owner, const SVGElement& element, const SVGAttribute& attribute) >- { >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- if (auto animatedProperty = BaseType::attributeRegistry().lookupAnimatedProperty(owner, element, attribute)) >- return animatedProperty; >- return lookupAnimatedPropertyBaseTypes<I + 1>(owner, element, attribute); >- } >- >- template<size_t I = 0> >- static typename std::enable_if<I == sizeof...(BaseTypes), Vector<RefPtr<SVGAnimatedProperty>>>::type lookupOrCreateAnimatedPropertiesBaseTypes(OwnerType&, SVGElement&, const QualifiedName&, AnimatedPropertyState) { return { }; } >- >- template<size_t I = 0> >- static typename std::enable_if<I < sizeof...(BaseTypes), Vector<RefPtr<SVGAnimatedProperty>>>::type lookupOrCreateAnimatedPropertiesBaseTypes(OwnerType& owner, SVGElement& element, const QualifiedName& attributeName, AnimatedPropertyState animatedState) >- { >- using BaseType = typename std::tuple_element<I, typename std::tuple<BaseTypes...>>::type; >- auto animatedProperties = BaseType::attributeRegistry().lookupOrCreateAnimatedProperties(owner, element, attributeName, animatedState); >- if (!animatedProperties.isEmpty()) >- return animatedProperties; >- return lookupOrCreateAnimatedPropertiesBaseTypes<I + 1>(owner, element, attributeName, animatedState); >- } >- >- const SVGAttributeAccessor<OwnerType>* findAttributeAccessor(const OwnerType& owner, const SVGAttribute& attribute) const >- { >- for (auto* attributeAccessor : m_map.values()) { >- if (attributeAccessor->isMatched(owner, attribute)) >- return attributeAccessor; >- } >- return nullptr; >- } >- >- const SVGAttributeAccessor<OwnerType>* findAttributeAccessor(const QualifiedName& attributeName) const >- { >- return m_map.get(attributeName); >- } >- >- HashMap<QualifiedName, const SVGAttributeAccessor<OwnerType>*> m_map; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGListProperty.h b/Source/WebCore/svg/properties/SVGListProperty.h >deleted file mode 100644 >index a00072d8ff5..00000000000 >--- a/Source/WebCore/svg/properties/SVGListProperty.h >+++ /dev/null >@@ -1,486 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGPropertyTearOff.h" >-#include "SVGPropertyTraits.h" >-#include <wtf/Ref.h> >- >-namespace WebCore { >- >-enum ListModification { >- ListModificationUnknown = 0, >- ListModificationInsert = 1, >- ListModificationReplace = 2, >- ListModificationRemove = 3, >- ListModificationAppend = 4 >-}; >- >-template<typename PropertyType> >-class SVGAnimatedListPropertyTearOff; >- >-template<typename PropertyType> >-class SVGListProperty : public SVGProperty, public CanMakeWeakPtr<SVGListProperty<PropertyType>> { >-public: >- typedef SVGListProperty<PropertyType> Self; >- >- using ListItemType = typename SVGPropertyTraits<PropertyType>::ListItemType; >- using ListItemTearOff = typename SVGPropertyTraits<PropertyType>::ListItemTearOff; >- using AnimatedListPropertyTearOff = SVGAnimatedListPropertyTearOff<PropertyType>; >- using ListWrapperCache = typename AnimatedListPropertyTearOff::ListWrapperCache; >- >- ExceptionOr<bool> canAlterList() const >- { >- if (m_role == AnimValRole) >- return Exception { NoModificationAllowedError }; >- >- return true; >- } >- >- static void detachListWrappersAndResize(ListWrapperCache* wrappers, unsigned newListSize = 0) >- { >- // See SVGPropertyTearOff::detachWrapper() for an explanation about what's happening here. >- ASSERT(wrappers); >- for (auto& item : *wrappers) { >- if (item) >- item->detachWrapper(); >- } >- >- // Reinitialize the wrapper cache to be equal to the new values size, after the XML DOM changed the list. >- if (newListSize) >- wrappers->fill(0, newListSize); >- else >- wrappers->clear(); >- } >- >- void detachListWrappers(unsigned newListSize) >- { >- detachListWrappersAndResize(m_wrappers, newListSize); >- } >- >- void setValuesAndWrappers(PropertyType* values, ListWrapperCache* wrappers, bool shouldOwnValues) >- { >- // This is only used for animVal support, to switch the underlying values & wrappers >- // to the current animated values, once animation for a list starts. >- ASSERT(m_values); >- ASSERT(m_wrappers); >- ASSERT(m_role == AnimValRole); >- if (m_ownsValues) >- delete m_values; >- m_values = values; >- m_ownsValues = shouldOwnValues; >- m_wrappers = wrappers; >- ASSERT(m_values->size() == m_wrappers->size()); >- } >- >- // SVGList::clear() >- ExceptionOr<void> clearValues() >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- m_values->clear(); >- commitChange(); >- return { }; >- } >- >- ExceptionOr<void> clearValuesAndWrappers() >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- detachListWrappers(0); >- m_values->clear(); >- commitChange(); >- return { }; >- } >- >- // SVGList::numberOfItems() >- unsigned numberOfItems() const >- { >- return m_values->size(); >- } >- >- // SVGList::initialize() >- ExceptionOr<ListItemType> initializeValues(const ListItemType& newItem) >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. >- processIncomingListItemValue(newItem, 0); >- >- // Spec: Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. >- m_values->clear(); >- m_values->append(newItem); >- >- commitChange(); >- return ListItemType { newItem }; >- } >- >- ExceptionOr<Ref<ListItemTearOff>> initializeValuesAndWrappers(ListItemTearOff& item) >- { >- ASSERT(m_wrappers); >- >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- ASSERT(m_values->size() == m_wrappers->size()); >- >- Ref<ListItemTearOff> newItem(item); >- >- // Spec: If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. >- processIncomingListItemWrapper(newItem, 0); >- >- // Spec: Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. >- detachListWrappers(0); >- m_values->clear(); >- >- m_values->append(newItem->propertyReference()); >- m_wrappers->append(makeWeakPtr(newItem.get())); >- >- commitChange(); >- return WTFMove(newItem); >- } >- >- // SVGList::getItem() >- ExceptionOr<bool> canGetItem(unsigned index) >- { >- if (index >= m_values->size()) >- return Exception { IndexSizeError }; >- >- return true; >- } >- >- ExceptionOr<ListItemType> getItemValues(unsigned index) >- { >- auto result = canGetItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: Returns the specified item from the list. The returned item is the item itself and not a copy. >- return ListItemType { m_values->at(index) }; >- } >- >- ExceptionOr<Ref<ListItemTearOff>> getItemValuesAndWrappers(AnimatedListPropertyTearOff& animatedList, unsigned index) >- { >- ASSERT(m_wrappers); >- >- auto result = canGetItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: Returns the specified item from the list. The returned item is the item itself and not a copy. >- // Any changes made to the item are immediately reflected in the list. >- ASSERT(m_values->size() == m_wrappers->size()); >- RefPtr<ListItemTearOff> wrapper = static_cast<ListItemTearOff*>(m_wrappers->at(index).get()); >- if (!wrapper) { >- // Create new wrapper, which is allowed to directly modify the item in the list, w/o copying and cache the wrapper in our map. >- // It is also associated with our animated property, so it can notify the SVG Element which holds the SVGAnimated*List >- // that it has been modified (and thus can call svgAttributeChanged(associatedAttributeName)). >- wrapper = ListItemTearOff::create(animatedList, UndefinedRole, m_values->at(index)); >- m_wrappers->at(index) = makeWeakPtr(*wrapper); >- } >- >- return wrapper.releaseNonNull(); >- } >- >- // SVGList::insertItemBefore() >- ExceptionOr<ListItemType> insertItemBeforeValues(const ListItemType& newItem, unsigned index) >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list. >- if (index > m_values->size()) >- index = m_values->size(); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- if (!processIncomingListItemValue(newItem, &index)) { >- // Inserting the item before itself is a no-op. >- return ListItemType { newItem }; >- } >- >- // Spec: Inserts a new item into the list at the specified position. The index of the item before which the new item is to be >- // inserted. The first item is number 0. If the index is equal to 0, then the new item is inserted at the front of the list. >- m_values->insert(index, newItem); >- >- commitChange(); >- return ListItemType { newItem }; >- } >- >- ExceptionOr<Ref<ListItemTearOff>> insertItemBeforeValuesAndWrappers(ListItemTearOff& item, unsigned index) >- { >- ASSERT(m_wrappers); >- >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list. >- if (index > m_values->size()) >- index = m_values->size(); >- >- ASSERT(m_values->size() == m_wrappers->size()); >- >- Ref<ListItemTearOff> newItem(item); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- if (!processIncomingListItemWrapper(newItem, &index)) >- return WTFMove(newItem); >- >- // Spec: Inserts a new item into the list at the specified position. The index of the item before which the new item is to be >- // inserted. The first item is number 0. If the index is equal to 0, then the new item is inserted at the front of the list. >- m_values->insert(index, newItem->propertyReference()); >- >- // Store new wrapper at position 'index', change its underlying value, so mutations of newItem, directly affect the item in the list. >- m_wrappers->insert(index, makeWeakPtr(newItem.get())); >- >- commitChange(); >- return WTFMove(newItem); >- } >- >- // SVGList::replaceItem() >- ExceptionOr<bool> canReplaceItem(unsigned index) >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- if (index >= m_values->size()) >- return Exception { IndexSizeError }; >- >- return true; >- } >- >- ExceptionOr<ListItemType> replaceItemValues(const ListItemType& newItem, unsigned index) >- { >- auto result = canReplaceItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- // Spec: If the item is already in this list, note that the index of the item to replace is before the removal of the item. >- if (!processIncomingListItemValue(newItem, &index)) { >- // Replacing the item with itself is a no-op. >- return ListItemType { newItem }; >- } >- >- if (m_values->isEmpty()) { >- // 'newItem' already lived in our list, we removed it, and now we're empty, which means there's nothing to replace. >- return Exception { IndexSizeError }; >- } >- >- // Update the value at the desired position 'index'. >- m_values->at(index) = newItem; >- >- commitChange(); >- return ListItemType { newItem }; >- } >- >- ExceptionOr<Ref<ListItemTearOff>> replaceItemValuesAndWrappers(ListItemTearOff& item, unsigned index) >- { >- ASSERT(m_wrappers); >- >- auto result = canReplaceItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- ASSERT(m_values->size() == m_wrappers->size()); >- >- Ref<ListItemTearOff> newItem(item); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- // Spec: If the item is already in this list, note that the index of the item to replace is before the removal of the item. >- if (!processIncomingListItemWrapper(newItem, &index)) >- return WTFMove(newItem); >- >- if (m_values->isEmpty()) { >- ASSERT(m_wrappers->isEmpty()); >- // 'newItem' already lived in our list, we removed it, and now we're empty, which means there's nothing to replace. >- return Exception { IndexSizeError }; >- } >- >- // Detach the existing wrapper. >- RefPtr<ListItemTearOff> oldItem = static_cast<ListItemTearOff*>(m_wrappers->at(index).get()); >- if (oldItem) >- oldItem->detachWrapper(); >- >- // Update the value and the wrapper at the desired position 'index'. >- m_values->at(index) = newItem->propertyReference(); >- m_wrappers->at(index) = makeWeakPtr(newItem.get()); >- >- commitChange(); >- return WTFMove(newItem); >- } >- >- // SVGList::removeItem() >- ExceptionOr<bool> canRemoveItem(unsigned index) >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- if (index >= m_values->size()) >- return Exception { IndexSizeError }; >- >- return true; >- } >- >- ExceptionOr<ListItemType> removeItemValues(unsigned index) >- { >- auto result = canRemoveItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- ListItemType oldItem = m_values->at(index); >- m_values->remove(index); >- >- commitChange(); >- return WTFMove(oldItem); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> removeItemValuesAndWrappers(AnimatedListPropertyTearOff& animatedList, unsigned index) >- { >- ASSERT(m_wrappers); >- >- auto result = canRemoveItem(index); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- ASSERT(m_values->size() == m_wrappers->size()); >- >- // Detach the existing wrapper. >- RefPtr<ListItemTearOff> oldItem = static_cast<ListItemTearOff*>(m_wrappers->at(index).get()); >- if (!oldItem) >- oldItem = ListItemTearOff::create(animatedList, UndefinedRole, m_values->at(index)); >- >- oldItem->detachWrapper(); >- m_wrappers->remove(index); >- m_values->remove(index); >- >- commitChange(); >- return oldItem.releaseNonNull(); >- } >- >- // SVGList::appendItem() >- ExceptionOr<ListItemType> appendItemValues(const ListItemType& newItem) >- { >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- processIncomingListItemValue(newItem, 0); >- >- // Append the value at the end of the list. >- m_values->append(newItem); >- >- commitChange(ListModificationAppend); >- return ListItemType { newItem }; >- } >- >- ExceptionOr<Ref<ListItemTearOff>> appendItemValuesAndWrappers(ListItemTearOff& item) >- { >- ASSERT(m_wrappers); >- >- auto result = canAlterList(); >- if (result.hasException()) >- return result.releaseException(); >- ASSERT(result.releaseReturnValue()); >- >- ASSERT(m_values->size() == m_wrappers->size()); >- >- Ref<ListItemTearOff> newItem(item); >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- processIncomingListItemWrapper(newItem, 0); >- >- // Append the value and wrapper at the end of the list. >- m_values->append(newItem->propertyReference()); >- m_wrappers->append(makeWeakPtr(newItem.get())); >- >- commitChange(ListModificationAppend); >- return WTFMove(newItem); >- } >- >- PropertyType& values() >- { >- ASSERT(m_values); >- return *m_values; >- } >- >- ListWrapperCache& wrappers() const >- { >- ASSERT(m_wrappers); >- return *m_wrappers; >- } >- >-protected: >- SVGListProperty(SVGPropertyRole role, PropertyType& values, ListWrapperCache* wrappers) >- : m_role(role) >- , m_ownsValues(false) >- , m_values(&values) >- , m_wrappers(wrappers) >- { >- } >- >- virtual ~SVGListProperty() >- { >- if (m_ownsValues) >- delete m_values; >- } >- >- void commitChange() override = 0; >- virtual void commitChange(ListModification) >- { >- commitChange(); >- } >- >- virtual bool processIncomingListItemValue(const ListItemType& newItem, unsigned* indexToModify) = 0; >- virtual bool processIncomingListItemWrapper(Ref<ListItemTearOff>& newItem, unsigned* indexToModify) = 0; >- >- SVGPropertyRole m_role; >- bool m_ownsValues; >- PropertyType* m_values; >- ListWrapperCache* m_wrappers; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGListPropertyTearOff.h >deleted file mode 100644 >index 1e049de1305..00000000000 >--- a/Source/WebCore/svg/properties/SVGListPropertyTearOff.h >+++ /dev/null >@@ -1,208 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGListProperty.h" >- >-namespace WebCore { >- >-template<typename PropertyType> >-class SVGListPropertyTearOff : public SVGListProperty<PropertyType> { >-public: >- using Base = SVGListProperty<PropertyType>; >- using Self = SVGListPropertyTearOff<PropertyType>; >- >- using ListItemType = typename SVGPropertyTraits<PropertyType>::ListItemType; >- using ListItemTearOff = typename SVGPropertyTraits<PropertyType>::ListItemTearOff; >- using PtrListItemTearOff = RefPtr<ListItemTearOff>; >- using AnimatedListPropertyTearOff = SVGAnimatedListPropertyTearOff<PropertyType>; >- using ListWrapperCache = typename SVGAnimatedListPropertyTearOff<PropertyType>::ListWrapperCache; >- >- using Base::m_role; >- using Base::m_values; >- using Base::m_wrappers; >- >- static Ref<Self> create(AnimatedListPropertyTearOff& animatedProperty, SVGPropertyRole role, PropertyType& values, ListWrapperCache& wrappers) >- { >- return adoptRef(*new Self(animatedProperty, role, values, wrappers)); >- } >- >- int findItem(ListItemTearOff* item) const >- { >- ASSERT(m_values); >- ASSERT(m_wrappers); >- >- unsigned size = m_wrappers->size(); >- ASSERT(size == m_values->size()); >- for (size_t i = 0; i < size; ++i) { >- if (item == m_wrappers->at(i)) >- return i; >- } >- >- return -1; >- } >- >- void removeItemFromList(size_t itemIndex, bool shouldSynchronizeWrappers) >- { >- ASSERT(m_values); >- ASSERT(m_wrappers); >- ASSERT(m_values->size() == m_wrappers->size()); >- ASSERT_WITH_SECURITY_IMPLICATION(itemIndex < m_wrappers->size()); >- >- auto item = m_wrappers->at(itemIndex); >- item->detachWrapper(); >- m_wrappers->remove(itemIndex); >- m_values->remove(itemIndex); >- >- if (shouldSynchronizeWrappers) >- commitChange(); >- } >- >- // SVGList API >- ExceptionOr<void> clear() >- { >- return Base::clearValuesAndWrappers(); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> initialize(ListItemTearOff& newItem) >- { >- return Base::initializeValuesAndWrappers(newItem); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> getItem(unsigned index) >- { >- return Base::getItemValuesAndWrappers(m_animatedProperty.get(), index); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> insertItemBefore(ListItemTearOff& newItem, unsigned index) >- { >- return Base::insertItemBeforeValuesAndWrappers(newItem, index); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> replaceItem(ListItemTearOff& newItem, unsigned index) >- { >- return Base::replaceItemValuesAndWrappers(newItem, index); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> removeItem(unsigned index) >- { >- return Base::removeItemValuesAndWrappers(m_animatedProperty.get(), index); >- } >- >- ExceptionOr<Ref<ListItemTearOff>> appendItem(ListItemTearOff& newItem) >- { >- return Base::appendItemValuesAndWrappers(newItem); >- } >- >-protected: >- SVGListPropertyTearOff(AnimatedListPropertyTearOff& animatedProperty, SVGPropertyRole role, PropertyType& values, ListWrapperCache& wrappers) >- : SVGListProperty<PropertyType>(role, values, &wrappers) >- , m_animatedProperty(animatedProperty) >- { >- } >- >- bool isReadOnly() const override >- { >- if (m_role == AnimValRole) >- return true; >- if (m_animatedProperty->isReadOnly()) >- return true; >- return false; >- } >- >- void commitChange() override >- { >- ASSERT(m_values); >- ASSERT(m_wrappers); >- >- // Update existing wrappers, as the index in the values list has changed. >- unsigned size = m_wrappers->size(); >- ASSERT(size == m_values->size()); >- for (unsigned i = 0; i < size; ++i) { >- auto item = m_wrappers->at(i); >- if (!item) >- continue; >- item->setAnimatedProperty(m_animatedProperty.ptr()); >- item->setValue(m_values->at(i)); >- } >- >- m_animatedProperty->commitChange(); >- } >- >- bool processIncomingListItemValue(const ListItemType&, unsigned*) override >- { >- ASSERT_NOT_REACHED(); >- return true; >- } >- >- bool processIncomingListItemWrapper(Ref<ListItemTearOff>& newItem, unsigned* indexToModify) override >- { >- auto animatedPropertyOfItem = makeRefPtr(newItem->animatedProperty()); >- >- // newItem has been created manually, it doesn't belong to any SVGElement. >- // (for example: "textElement.x.baseVal.appendItem(svgsvgElement.createSVGLength())") >- if (!animatedPropertyOfItem) >- return true; >- >- // newItem belongs to a SVGElement, but its associated SVGAnimatedProperty is not an animated list tear off. >- // (for example: "textElement.x.baseVal.appendItem(rectElement.width.baseVal)") >- if (!animatedPropertyOfItem->isAnimatedListTearOff()) { >- // We have to copy the incoming newItem, as we're not allowed to insert this tear off as is into our wrapper cache. >- // Otherwhise we'll end up having two SVGAnimatedPropertys that operate on the same SVGPropertyTearOff. Consider the example above: >- // SVGRectElements SVGAnimatedLength 'width' property baseVal points to the same tear off object >- // that's inserted into SVGTextElements SVGAnimatedLengthList 'x'. textElement.x.baseVal.getItem(0).value += 150 would >- // mutate the rectElement width _and_ the textElement x list. That's obviously wrong, take care of that. >- newItem = ListItemTearOff::create(newItem->propertyReference()); >- return true; >- } >- >- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list. >- // 'newItem' is already living in another list. If it's not our list, synchronize the other lists wrappers after the removal. >- bool livesInOtherList = animatedPropertyOfItem != m_animatedProperty.ptr(); >- AnimatedListPropertyTearOff* propertyTearOff = static_cast<AnimatedListPropertyTearOff*>(animatedPropertyOfItem.get()); >- int indexToRemove = propertyTearOff->findItem(newItem.ptr()); >- ASSERT(indexToRemove != -1); >- >- // Do not remove newItem if already in this list at the target index. >- if (!livesInOtherList && indexToModify && static_cast<unsigned>(indexToRemove) == *indexToModify) >- return false; >- >- propertyTearOff->removeItemFromList(indexToRemove, true); >- >- if (!indexToModify) >- return true; >- >- // If the item lived in our list, adjust the insertion index. >- if (!livesInOtherList) { >- unsigned& index = *indexToModify; >- // Spec: If the item is already in this list, note that the index of the item to (replace|insert before) is before the removal of the item. >- if (static_cast<unsigned>(indexToRemove) < index) >- --index; >- } >- >- return true; >- } >- >- // Back pointer to the animated property that created us >- // For example (text.x.baseVal): m_animatedProperty points to the 'x' SVGAnimatedLengthList object >- Ref<AnimatedListPropertyTearOff> m_animatedProperty; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGPropertyTearOff.h b/Source/WebCore/svg/properties/SVGPropertyTearOff.h >deleted file mode 100644 >index 9008f3b8645..00000000000 >--- a/Source/WebCore/svg/properties/SVGPropertyTearOff.h >+++ /dev/null >@@ -1,174 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * Copyright (C) 2016 Apple Inc. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "ExceptionOr.h" >-#include "SVGAnimatedProperty.h" >-#include "SVGProperty.h" >-#include <wtf/WeakPtr.h> >- >-namespace WebCore { >- >-class SVGElement; >- >-class SVGPropertyTearOffBase : public SVGProperty { >-public: >- virtual void detachWrapper() = 0; >-}; >- >-template<typename T> >-class SVGPropertyTearOff : public SVGPropertyTearOffBase, public CanMakeWeakPtr<SVGPropertyTearOff<T>> { >-public: >- using PropertyType = T; >- using Self = SVGPropertyTearOff<PropertyType>; >- >- // Used for child types (baseVal/animVal) of a SVGAnimated* property (for example: SVGAnimatedLength::baseVal()). >- // Also used for list tear offs (for example: text.x.baseVal.getItem(0)). >- static Ref<Self> create(SVGAnimatedProperty& animatedProperty, SVGPropertyRole role, PropertyType& value) >- { >- return adoptRef(*new Self(animatedProperty, role, value)); >- } >- >- // Used for non-animated POD types (for example: SVGSVGElement::createSVGLength()). >- static Ref<Self> create(const PropertyType& initialValue) >- { >- return adoptRef(*new Self(initialValue)); >- } >- >- template<typename U> static ExceptionOr<Ref<Self>> create(ExceptionOr<U>&& initialValue) >- { >- if (initialValue.hasException()) >- return initialValue.releaseException(); >- return create(initialValue.releaseReturnValue()); >- } >- >- virtual PropertyType& propertyReference() { return *m_value; } >- SVGAnimatedProperty* animatedProperty() const { return m_animatedProperty.get(); } >- >- virtual void setValue(PropertyType& value) >- { >- if (m_valueIsCopy) { >- detachChildren(); >- delete m_value; >- } >- m_valueIsCopy = false; >- m_value = &value; >- } >- >- void setAnimatedProperty(SVGAnimatedProperty* animatedProperty) >- { >- m_animatedProperty = animatedProperty; >- } >- >- SVGElement* contextElement() const >- { >- if (!m_animatedProperty || m_valueIsCopy) >- return nullptr; >- return m_animatedProperty->contextElement(); >- } >- >- void addChild(WeakPtr<SVGPropertyTearOffBase> child) >- { >- m_childTearOffs.append(child); >- } >- >- void detachWrapper() override >- { >- if (m_valueIsCopy) >- return; >- >- detachChildren(); >- >- // Switch from a live value, to a non-live value. >- // For example: <text x="50"/> >- // var item = text.x.baseVal.getItem(0); >- // text.setAttribute("x", "100"); >- // item.value still has to report '50' and it has to be possible to modify 'item' >- // w/o changing the "new item" (with x=100) in the text element. >- // Whenever the XML DOM modifies the "x" attribute, all existing wrappers are detached, using this function. >- m_value = new PropertyType(*m_value); >- m_valueIsCopy = true; >- m_animatedProperty = nullptr; >- } >- >- void commitChange() override >- { >- if (!m_animatedProperty || m_valueIsCopy) >- return; >- m_animatedProperty->commitChange(); >- } >- >- bool isReadOnly() const override >- { >- if (m_role == AnimValRole) >- return true; >- if (m_animatedProperty && m_animatedProperty->isReadOnly()) >- return true; >- return false; >- } >- >-protected: >- SVGPropertyTearOff(SVGAnimatedProperty* animatedProperty, SVGPropertyRole role, PropertyType& value) >- : m_animatedProperty(animatedProperty) >- , m_role(role) >- , m_value(&value) >- , m_valueIsCopy(false) >- { >- } >- >- SVGPropertyTearOff(const PropertyType& initialValue) >- : SVGPropertyTearOff(&initialValue) >- { >- } >- >- SVGPropertyTearOff(const PropertyType* initialValue) >- : m_animatedProperty(nullptr) >- , m_role(UndefinedRole) >- , m_value(initialValue ? new PropertyType(*initialValue) : nullptr) >- , m_valueIsCopy(true) >- { >- } >- >- virtual ~SVGPropertyTearOff() >- { >- if (m_valueIsCopy) { >- detachChildren(); >- delete m_value; >- } >- } >- >- void detachChildren() >- { >- for (const auto& childTearOff : m_childTearOffs) { >- if (childTearOff.get()) >- childTearOff.get()->detachWrapper(); >- } >- m_childTearOffs.clear(); >- } >- >- RefPtr<SVGAnimatedProperty> m_animatedProperty; >- SVGPropertyRole m_role; >- PropertyType* m_value; >- Vector<WeakPtr<SVGPropertyTearOffBase>> m_childTearOffs; >- bool m_valueIsCopy; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h b/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h >deleted file mode 100644 >index 786874dca01..00000000000 >--- a/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h >+++ /dev/null >@@ -1,111 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include "SVGListProperty.h" >- >-namespace WebCore { >- >-template<typename PropertyType> >-class SVGStaticListPropertyTearOff : public SVGListProperty<PropertyType> { >-public: >- using Self = SVGStaticListPropertyTearOff<PropertyType>; >- using Base = SVGListProperty<PropertyType>; >- >- using ListItemType = typename SVGPropertyTraits<PropertyType>::ListItemType; >- using ListItemTearOff = typename SVGPropertyTraits<PropertyType>::ListItemTearOff; >- >- using Base::m_role; >- using Base::m_values; >- >- static Ref<Self> create(SVGElement& contextElement, PropertyType& values) >- { >- return adoptRef(*new Self(contextElement, values)); >- } >- >- ExceptionOr<void> clear() >- { >- return Base::clearValues(); >- } >- >- ExceptionOr<ListItemType> initialize(const ListItemType& newItem) >- { >- return Base::initializeValues(newItem); >- } >- >- ExceptionOr<ListItemType> getItem(unsigned index) >- { >- return Base::getItemValues(index); >- } >- >- ExceptionOr<ListItemType> insertItemBefore(const ListItemType& newItem, unsigned index) >- { >- return Base::insertItemBeforeValues(newItem, index); >- } >- >- ExceptionOr<ListItemType> replaceItem(const ListItemType& newItem, unsigned index) >- { >- return Base::replaceItemValues(newItem, index); >- } >- >- ExceptionOr<ListItemType> removeItem(unsigned index) >- { >- return Base::removeItemValues(index); >- } >- >- ExceptionOr<ListItemType> appendItem(const ListItemType& newItem) >- { >- return Base::appendItemValues(newItem); >- } >- >-protected: >- SVGStaticListPropertyTearOff(SVGElement* contextElement, PropertyType& values) >- : Base(UndefinedRole, values, nullptr) >- , m_contextElement(*contextElement) >- { >- } >- >- bool isReadOnly() const override >- { >- return m_role == AnimValRole; >- } >- >- void commitChange() override >- { >- ASSERT(m_values); >- m_values->commitChange(m_contextElement); >- } >- >- bool processIncomingListItemValue(const ListItemType&, unsigned*) override >- { >- // no-op for static lists >- return true; >- } >- >- bool processIncomingListItemWrapper(Ref<ListItemTearOff>&, unsigned*) override >- { >- ASSERT_NOT_REACHED(); >- return true; >- } >- >- Ref<SVGElement> m_contextElement; >-}; >- >-} >diff --git a/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h b/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h >deleted file mode 100644 >index 5e2ca09a0dd..00000000000 >--- a/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h >+++ /dev/null >@@ -1,61 +0,0 @@ >-/* >- * Copyright (C) Research In Motion Limited 2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-namespace WebCore { >- >-#if COMPILER(MSVC) >-// UpdateMethod is 12 bytes. We have to pack to a size greater than or equal to that to avoid an >-// alignment warning (C4121). 16 is the next-largest size allowed for packing, so we use that. >-#pragma pack(push, 16) >-#endif >-template<typename ContextElement, typename PropertyTearOff> >-class SVGStaticPropertyTearOff final : public PropertyTearOff { >-public: >- using Self = SVGStaticPropertyTearOff<ContextElement, PropertyTearOff>; >- using PropertyType = typename PropertyTearOff::PropertyType; >- >- typedef void (ContextElement::*UpdateMethod)(); >- >- // Used for non-animated POD types that are not associated with a SVGAnimatedProperty object, nor with a XML DOM attribute >- // (for example: SVGSVGElement::currentTranslate). >- static Ref<Self> create(ContextElement& contextElement, PropertyType& value, UpdateMethod update) >- { >- return adoptRef(*new Self(contextElement, value, update)); >- } >- >- void commitChange() final { (m_contextElement.get()->*m_update)(); } >- >-private: >- SVGStaticPropertyTearOff(ContextElement& contextElement, PropertyType& value, UpdateMethod update) >- : PropertyTearOff(UndefinedRole, value) >- , m_update(update) >- , m_contextElement(&contextElement) >- { >- } >- >- UpdateMethod m_update; >- RefPtr<ContextElement> m_contextElement; >-}; >-#if COMPILER(MSVC) >-#pragma pack(pop) >-#endif >- >-} // namespace WebCore
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 191237
:
353808
|
353812
|
353815
|
353817
|
353818
|
353820
|
353824
|
353825
|
355382
|
355386
|
355388
|
355393
|
355568
|
355574
|
355575
|
355577
|
355580
|
355582
|
355585
|
355666
|
355672
|
355693
|
355699
|
355711
|
355752
|
355777
|
355820
|
356333
|
356334
|
356338
|
356340
|
356342
|
356344
|
356346
|
356351
|
356352
|
356358
|
356360
|
356380
|
356497
|
356500
|
356507
|
356579
|
356607
|
356728
|
356729
|
356730
|
356731
|
356732
|
356733
|
356752
|
356810
|
356811
|
356879
|
356880
|
356881
|
356882
|
356883
|
356884
|
356885
|
356887
|
356888
|
356889
|
356892
|
356895
|
356896
|
359721
|
359735
|
359747
|
363581
|
363595
|
363613
|
363690
|
364172
|
364180
|
366512
|
366557
|
366636