haikuwebkit/LayoutTests/svg/dom/viewspec-parser-4-expected.txt

163 lines
7.3 KiB
Plaintext
Raw Permalink Normal View History

SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
This test fuzzes the transform parser with semi-random attribute values and dumps the results of any values that parse successfully.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Loaded: resources/viewspec-target.svg#
Parsed: [initial view] from: [initial view]
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(%2078)28
Parsed: [initial view] from: svgView(preserveAspectRatio( 78)2 8
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e.
Parsed: [initial view] from: svgView(preserveAspectRatio(e.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(7
Parsed: [initial view] from: svgView(preserveAspectRatio(7
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio((
Parsed: [initial view] from: svgView(preserveAspectRatio( (
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(
Parsed: [initial view] from: svgView(preserveAspectRatio(
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(.)29e0%207950,-%20e
Parsed: [initial view] from: svgView(preserveAspectRatio(.)2 9e0 795 0,- e
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e,4(7-%20)+e(e8.
Parsed: [initial view] from: svgView(preserveAspectRatio(e,4(7- )+e(e8.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(74-%209.(+%20e.0e635
Parsed: [initial view] from: svgView(preserveAspectRatio(74- 9.(+ e.0e635
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(-9,).8e7e4e9ee
Parsed: [initial view] from: svgView(preserveAspectRatio(-9,).8e7e4e9ee
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(49-,,4)30378.052
Parsed: [initial view] from: svgView(preserveAspectRatio(49-,,4)30378.052
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e7863e
Parsed: [initial view] from: svgView(preserveAspectRatio(e7863e
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(0
Parsed: [initial view] from: svgView(preserveAspectRatio( 0
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e72(e,49.7.
Parsed: [initial view] from: svgView(preserveAspectRatio(e72( e ,49.7.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e55,
Parsed: [initial view] from: svgView(preserveAspectRatio(e55,
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(263,ee1)74-
Parsed: [initial view] from: svgView(preserveAspectRatio(263,ee1)74-
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(.64110,.+1.
Parsed: [initial view] from: svgView(preserveAspectRatio(.64110,.+1.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(.59e3...725-
Parsed: [initial view] from: svgView(preserveAspectRatio(.59e3...725-
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(6-)2).180
Parsed: [initial view] from: svgView(preserveAspectRatio(6 -)2).180
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(,e%20579++.
Parsed: [initial view] from: svgView(preserveAspectRatio(,e 579 ++.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(-+
Parsed: [initial view] from: svgView(preserveAspectRatio(-+
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(74e-6-)297
Parsed: [initial view] from: svgView(preserveAspectRatio(74e - 6 -)29 7
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(221e..++77
Parsed: [initial view] from: svgView(preserveAspectRatio(221e..+ +77
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio())4e1e).-e8378.
Parsed: [initial view] from: svgView(preserveAspectRatio())4e 1e).-e8378.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(4+01%20e
Parsed: [initial view] from: svgView(preserveAspectRatio( 4+01 e
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(
Parsed: [initial view] from: svgView(preserveAspectRatio(
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(-6++9++%209.3)6438
Parsed: [initial view] from: svgView(preserveAspectRatio(-6++9++ 9.3)6438
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(-,15e)(-+,-%206
Parsed: [initial view] from: svgView(preserveAspectRatio(-,15e)(-+,- 6
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(3e+)085932
Parsed: [initial view] from: svgView(preserveAspectRatio(3e+)085932
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(+
Parsed: [initial view] from: svgView(preserveAspectRatio(+
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(-
Parsed: [initial view] from: svgView(preserveAspectRatio(-
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(0944.6-
Parsed: [initial view] from: svgView(preserveAspectRatio( 0944.6-
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(.
Parsed: [initial view] from: svgView(preserveAspectRatio(.
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(5
Parsed: [initial view] from: svgView(preserveAspectRatio( 5
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(3e(-2e3e
Parsed: [initial view] from: svgView(preserveAspectRatio(3e(-2e3e
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(
Parsed: [initial view] from: svgView(preserveAspectRatio(
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(65e%203e(.1%206916
Parsed: [initial view] from: svgView(preserveAspectRatio(6 5e 3e (. 1 69 16
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(1ee5%2056,(8.5e,3
Parsed: [initial view] from: svgView(preserveAspectRatio(1ee5 56,(8.5 e,3
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e-%20e-
Parsed: [initial view] from: svgView(preserveAspectRatio(e- e-
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio()e0e)
Parsed: [initial view] from: svgView(preserveAspectRatio()e0e)
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(231293.16e
Parsed: [initial view] from: svgView(preserveAspectRatio(231293.16e
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(()2(37-888580(9e+
Parsed: [initial view] from: svgView(preserveAspectRatio(()2(37-888580(9e+
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(18e805
Parsed: [initial view] from: svgView(preserveAspectRatio(18e805
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(0
Parsed: [initial view] from: svgView(preserveAspectRatio(0
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(63)%20693(
Parsed: [initial view] from: svgView(preserveAspectRatio(63) 693(
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Update URL fragment percent encode set https://bugs.webkit.org/show_bug.cgi?id=216022 Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-01 Reviewed by Youenn Fablet. LayoutTests/imported/w3c: * web-platform-tests/url/a-element-expected.txt: * web-platform-tests/url/a-element-origin-expected.txt: * web-platform-tests/url/a-element-origin-xhtml-expected.txt: * web-platform-tests/url/a-element-xhtml-expected.txt: * web-platform-tests/url/failure-expected.txt: * web-platform-tests/url/resources/setters_tests.json: * web-platform-tests/url/resources/urltestdata.json: Also add some new tests from upstream. Some of them are failing now. That's fine for now. * web-platform-tests/url/url-constructor-expected.txt: * web-platform-tests/url/url-origin-expected.txt: * web-platform-tests/url/url-setters-expected.txt: Source/WTF: It now matches the behavior of Chrome and Firefox, as well as the spec at https://url.spec.whatwg.org/#fragment-percent-encode-set * wtf/URLParser.cpp: (WTF::isInFragmentEncodeSet): (WTF::URLParser::parse): Tools: * TestWebKitAPI/Tests/WTF/URLParser.cpp: (TestWebKitAPI::TEST_F): LayoutTests: * fast/dom/DOMURL/set-href-attribute-hash-expected.txt: * fast/dom/DOMURL/set-href-attribute-hash.html: * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: * fast/url/anchor-expected.txt: * fast/url/anchor.html: * fast/url/segments-expected.txt: * fast/url/segments-from-data-url-expected.txt: * fast/url/segments-from-data-url.html: * fast/url/segments-from-data-url2-expected.txt: * fast/url/segments-from-data-url2.html: * fast/url/segments.html: * fast/url/standard-url-expected.txt: * fast/url/standard-url.html: * fast/url/url-tojson-expected.txt: * fast/url/url-tojson.html: * fetch/fetch-url-serialization-expected.txt: * fetch/fetch-urls.json: * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: * http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt: * svg/dom/viewspec-parser-1-expected.txt: * svg/dom/viewspec-parser-3-expected.txt: * svg/dom/viewspec-parser-4-expected.txt: * svg/dom/viewspec-parser-5-expected.txt: * svg/dom/viewspec-parser-6-expected.txt: * svg/dom/viewspec-parser-7-expected.txt: Canonical link: https://commits.webkit.org/228832@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-01 16:42:54 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(80,2)+%204ee,
Parsed: [initial view] from: svgView(preserveAspectRatio(80,2)+ 4ee,
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(5e+59e2e5
Parsed: [initial view] from: svgView(preserveAspectRatio(5e+59e2e5
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(53e,9
Parsed: [initial view] from: svgView(preserveAspectRatio(5 3e,9
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(e7)((59
Parsed: [initial view] from: svgView(preserveAspectRatio(e7 )((59
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(963.+8-e73-e+)
Parsed: [initial view] from: svgView(preserveAspectRatio(963.+8-e73-e +)
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
Loaded: resources/viewspec-target.svg#svgView(preserveAspectRatio(71(1(+-3382.3
Parsed: [initial view] from: svgView(preserveAspectRatio(71(1(+-3382.3
SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented https://bugs.webkit.org/show_bug.cgi?id=15495 Reviewed by Rob Buis. Source/WebCore: Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed: - SVGViewSpec and all of its contents should be read-only. Enforce that and test it. Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only. - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS. - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces readonly attribute DOMString viewBoxString; readonly attribute DOMString preserveAspectRatioString; readonly attribute DOMString transformString; readonly attribute DOMString viewTargetString; - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed. - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing. - Create/expose ObjectiveC/JS bindings for SVGViewSpec. - Enable SVGViewSpec constructor. Tests: svg/custom/linking-a-03-b-all-expected.svg svg/dom/SVGViewSpec-defaults.html svg/dom/SVGViewSpec.html svg/dom/complex-svgView-specification.html svg/dom/viewspec-parser.html * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::setValue): (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/objc/DOMSVG.h: * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): (NativeToJSValue): * bindings/scripts/CodeGeneratorObjC.pm: (GenerateImplementation): * bindings/scripts/CodeGeneratorV8.pm: (GenerateNormalAttrGetter): (GenerateNormalAttrSetter): (GenerateFunctionCallback): * bindings/v8/custom/V8SVGLengthCustom.cpp: (WebCore::V8SVGLength::valueAccessorSetter): (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): * page/DOMWindow.idl: * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildTileImageTransform): * svg/SVGFitToViewBox.cpp: * svg/SVGFitToViewBox.h: (SVGFitToViewBox): (WebCore::SVGFitToViewBox::parseAttribute): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::orientTypePropertyInfo): (WebCore::SVGMarkerElement::parseAttribute): (WebCore::SVGMarkerElement::synchronizeOrientType): (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::dPropertyInfo): (WebCore::SVGPathElement::svgAttributeChanged): (WebCore::SVGPathElement::pathByteStream): (WebCore::SVGPathElement::lookupOrCreateDWrapper): (WebCore::SVGPathElement::synchronizeD): * svg/SVGPathSegWithContext.h: (WebCore::SVGPathSegWithContext::animatedProperty): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::parseAttribute): * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::pointsPropertyInfo): (WebCore::SVGPolyElement::parseAttribute): (WebCore::SVGPolyElement::synchronizePoints): (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper): * svg/SVGRect.h: * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::~SVGSVGElement): (WebCore::SVGSVGElement::currentView): (WebCore::SVGSVGElement::parseAttribute): (WebCore::SVGSVGElement::currentViewBoxRect): (WebCore::SVGSVGElement::viewBoxToViewTransform): (WebCore::SVGSVGElement::setupInitialView): (WebCore::SVGSVGElement::inheritViewAttributes): * svg/SVGSVGElement.h: (SVGSVGElement): * svg/SVGSVGElement.idl: * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::parseAttribute): * svg/SVGTests.cpp: (WebCore::SVGTests::requiredFeaturesPropertyInfo): (WebCore::SVGTests::requiredExtensionsPropertyInfo): (WebCore::SVGTests::systemLanguagePropertyInfo): (WebCore::SVGTests::synchronizeRequiredFeatures): (WebCore::SVGTests::synchronizeRequiredExtensions): (WebCore::SVGTests::synchronizeSystemLanguage): * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::textLengthPropertyInfo): (WebCore::SVGTextContentElement::synchronizeTextLength): (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseAttribute): * svg/SVGViewElement.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewBoxPropertyInfo): (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo): (WebCore::SVGViewSpec::transformPropertyInfo): (WebCore::SVGViewSpec::SVGViewSpec): (WebCore::SVGViewSpec::viewBoxIdentifier): (WebCore::SVGViewSpec::preserveAspectRatioIdentifier): (WebCore::SVGViewSpec::transformIdentifier): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::setTransformString): (WebCore::SVGViewSpec::transformString): (WebCore::SVGViewSpec::viewBoxString): (WebCore::SVGViewSpec::preserveAspectRatioString): (WebCore::SVGViewSpec::viewTarget): (WebCore::SVGViewSpec::transform): (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): (WebCore::SVGViewSpec::reset): (WebCore::SVGViewSpec::parseViewSpec): * svg/SVGViewSpec.h: (WebCore::SVGViewSpec::~SVGViewSpec): (SVGViewSpec): (WebCore::SVGViewSpec::create): (WebCore::SVGViewSpec::setViewTargetString): (WebCore::SVGViewSpec::setZoomAndPan): (WebCore::SVGViewSpec::contextElement): (WebCore::SVGViewSpec::resetContextElement): (WebCore::SVGViewSpec::transformBaseValue): (WebCore::SVGViewSpec::viewBoxAnimated): (WebCore::SVGViewSpec::viewBox): (WebCore::SVGViewSpec::viewBoxBaseValue): (WebCore::SVGViewSpec::setViewBoxBaseValue): (WebCore::SVGViewSpec::preserveAspectRatioAnimated): (WebCore::SVGViewSpec::preserveAspectRatio): (WebCore::SVGViewSpec::preserveAspectRatioBaseValue): (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue): * svg/SVGViewSpec.idl: * svg/properties/SVGAnimatedProperty.h: (WebCore::SVGAnimatedProperty::isReadOnly): (WebCore::SVGAnimatedProperty::setIsReadOnly): (SVGAnimatedProperty): (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper): (WebCore::SVGAnimatedProperty::lookupWrapper): (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): * svg/properties/SVGAnimatedPropertyMacros.h: (WebCore::SVGSynchronizableAnimatedProperty::synchronize): (SVGSynchronizableAnimatedProperty): * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed. * svg/properties/SVGAttributeToPropertyMap.h: * svg/properties/SVGListProperty.h: * svg/properties/SVGListPropertyTearOff.h: (SVGListPropertyTearOff): (WebCore::SVGListPropertyTearOff::isReadOnly): * svg/properties/SVGPathSegListPropertyTearOff.h: (SVGPathSegListPropertyTearOff): (WebCore::SVGPathSegListPropertyTearOff::isReadOnly): * svg/properties/SVGProperty.h: (SVGProperty): * svg/properties/SVGPropertyInfo.h: (WebCore::SVGPropertyInfo::SVGPropertyInfo): (SVGPropertyInfo): * svg/properties/SVGPropertyTearOff.h: (WebCore::SVGPropertyTearOff::isReadOnly): * svg/properties/SVGStaticListPropertyTearOff.h: (SVGStaticListPropertyTearOff): (WebCore::SVGStaticListPropertyTearOff::isReadOnly): Source/WebKit/mac: * MigrateHeaders.make: Copy DOMSVGViewSpec*.h headers. LayoutTests: Re-enable a long disabled test for SVGViewSpec, and make it actually work. Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition. Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms. * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/fast/js/global-constructors-expected.txt: * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/gtk/fast/js/global-constructors-expected.txt: * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/mac/fast/js/global-constructors-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/qt/fast/js/global-constructors-expected.txt: * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed. * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed. * platform/win/fast/js/global-constructors-expected.txt: * svg/custom/global-constructors-expected.txt: * svg/custom/linking-a-03-b-all-expected.svg: Added. * svg/dom/SVGViewSpec-defaults-expected.txt: Added. * svg/dom/SVGViewSpec-defaults.html: Added. * svg/dom/SVGViewSpec-expected.txt: Added. * svg/dom/SVGViewSpec.html: Added. * svg/dom/complex-svgView-specification-expected.html: Added. * svg/dom/complex-svgView-specification.html: Added. * svg/dom/resources/viewspec-target.svg: Added. * svg/dom/script-tests/SVGViewSpec-defaults.js: Added. * svg/dom/script-tests/SVGViewSpec.js: Added. (completeTest.script.onload): (completeTest): (testFragment): (matrixToString): (continueTesting): * svg/dom/viewspec-parser-expected.txt: Added. * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled. Canonical link: https://commits.webkit.org/105477@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@118735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-29 08:41:58 +00:00
PASS successfullyParsed is true
TEST COMPLETE