haikuwebkit/LayoutTests/svg/animations/animate-number-calcMode-dis...

22 lines
610 B
Plaintext
Raw Permalink Normal View History

SVG 1.1 dynamic animation tests
Test calcMode discrete with from-to animation on numbers. You should see a green 100x100 rect and only PASS messages
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Convert svg/animations to use SMIL methods for driving the timeline https://bugs.webkit.org/show_bug.cgi?id=78422 Reviewed by Dirk Schulze. Source/WebCore: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked: - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is called a new begin time is added to the list - and the same happens for endElement() with the end list. Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime. SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted via beginElement/endElement - get removed if the begin/endTimes list is updated. Why? When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be identical, w/o leftovers from any previous begin/endElement call. To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum, which determines whether this SMILTime was created by the parser or dynamically created via beginElement/endElement. - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the animation state, when it was not paused. - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in, now that all IDLs are available. Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore. Covered by all existing tests in svg/animations. * WebCore.exp.in: Remove sampleAnimationAtTime() symbols. * WebCore.order: Ditto. * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElementAt): * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime. * svg/SVGDocumentExtensions.h: Ditto. * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper. (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry. (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin): (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime. (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script. (WebCore::operator<): Used by std::sort. * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position. (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'. (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed. * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized. (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic. (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed). (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code. (WebCore::sortTimeList): Ditto. (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto. (WebCore::SVGSMILElement::addBeginTime): Ditto. (WebCore::SVGSMILElement::addEndTime): Ditto. (WebCore::extractTimeFromVector): Ditto. (WebCore::SVGSMILElement::findInstanceTime): Ditto. * svg/animation/SVGSMILElement.h: * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed. Source/WebKit/chromium: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * public/WebFrame.h: (WebFrame): * src/WebFrameImpl.cpp: * src/WebFrameImpl.h: (WebFrameImpl): Source/WebKit/efl: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: * WebCoreSupport/DumpRenderTreeSupportEfl.h: Source/WebKit/gtk: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: * WebCoreSupport/DumpRenderTreeSupportGtk.h: (DumpRenderTreeSupportGtk): Source/WebKit/mac: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebKit.order: * WebView/WebFrame.mm: * WebView/WebFramePrivate.h: Source/WebKit/qt: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportQt.cpp: * WebCoreSupport/DumpRenderTreeSupportQt.h: Source/WebKit/win: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: * WebFrame.h: Tools: Remove no longer needed SVG specific animation sampling functionality from DRT. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * DumpRenderTree/LayoutTestController.cpp: (LayoutTestController::staticFunctions): * DumpRenderTree/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: * DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): * DumpRenderTree/chromium/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: * DumpRenderTree/mac/LayoutTestControllerMac.mm: * DumpRenderTree/qt/LayoutTestControllerQt.cpp: * DumpRenderTree/qt/LayoutTestControllerQt.h: (LayoutTestController): * DumpRenderTree/win/LayoutTestControllerWin.cpp: * DumpRenderTree/wx/LayoutTestControllerWx.cpp: LayoutTests: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked. This also unifies & cleans up the tests, to use the same formatting and the same shouldBeCloseEnough helpers. * svg/animations/animVal-basics-expected.txt: * svg/animations/animVal-basics.html: * svg/animations/animate-calcMode-spline-by-expected.txt: * svg/animations/animate-calcMode-spline-by.html: * svg/animations/animate-calcMode-spline-from-by-expected.txt: * svg/animations/animate-calcMode-spline-from-by.html: * svg/animations/animate-calcMode-spline-from-to-expected.txt: * svg/animations/animate-calcMode-spline-from-to.html: * svg/animations/animate-calcMode-spline-to-expected.txt: * svg/animations/animate-calcMode-spline-to.html: * svg/animations/animate-calcMode-spline-values-expected.txt: * svg/animations/animate-calcMode-spline-values.html: * svg/animations/animate-color-calcMode-discrete.html: * svg/animations/animate-color-fill-currentColor.html: * svg/animations/animate-color-fill-from-by.html: * svg/animations/animate-color-rgba-calcMode-discrete.html: * svg/animations/animate-color-transparent.html: * svg/animations/animate-currentColor.html: * svg/animations/animate-dynamic-update-attributeName.html: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-end-attribute.html: * svg/animations/animate-endElement-beginElement.html: * svg/animations/animate-from-to-keyTimes.html: * svg/animations/animate-gradient-transform.html: * svg/animations/animate-inherit-css-property.html: * svg/animations/animate-insert-begin.html: * svg/animations/animate-insert-no-begin.html: * svg/animations/animate-keySplines.html: * svg/animations/animate-mpath-insert.html: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes.html: * svg/animations/animate-number-calcMode-discrete.html: * svg/animations/animate-path-animation-Cc-Ss-expected.txt: * svg/animations/animate-path-animation-Cc-Ss.html: * svg/animations/animate-path-animation-Ll-Vv-Hh-expected.txt: * svg/animations/animate-path-animation-Ll-Vv-Hh.html: * svg/animations/animate-path-animation-Qq-Tt.html: * svg/animations/animate-path-animation-cC-sS-inverse-expected.txt: * svg/animations/animate-path-animation-cC-sS-inverse.html: * svg/animations/animate-path-animation-lL-vV-hH-inverse-expected.txt: * svg/animations/animate-path-animation-lL-vV-hH-inverse.html: * svg/animations/animate-path-animation-qQ-tT-inverse.html: * svg/animations/animate-path-nested-transforms-expected.txt: * svg/animations/animate-path-nested-transforms.html: * svg/animations/animate-path-to-animation-expected.txt: * svg/animations/animate-path-to-animation.html: * svg/animations/animate-text-nested-transforms-expected.txt: * svg/animations/animate-text-nested-transforms.html: * svg/animations/animateTransform-pattern-transform.html: * svg/animations/resources/SVGAnimationTestCase.js: (isCloseEnough): (shouldBeCloseEnough): (moveAnimationTimelineAndSample): (sampleAnimation): (runSMILTest): (runAnimationTest): * svg/animations/script-tests/TEMPLATE.html: Removed. * svg/animations/script-tests/animVal-basics.js: (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (executeTest): * svg/animations/script-tests/animate-color-fill-from-by.js: (executeTest): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-transparent.js: (executeTest): * svg/animations/script-tests/animate-currentColor.js: (executeTest): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (executeTest): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-endElement-beginElement.js: (executeTest): (end): (begin): * svg/animations/script-tests/animate-from-to-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-gradient-transform.js: (executeTest): * svg/animations/script-tests/animate-inherit-css-property.js: (executeTest): * svg/animations/script-tests/animate-insert-begin.js: (executeTest): * svg/animations/script-tests/animate-insert-no-begin.js: (executeTest): * svg/animations/script-tests/animate-keySplines.js: (executeTest): * svg/animations/script-tests/animate-mpath-insert.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (executeTest): * svg/animations/script-tests/animate-path-nested-transforms.js: (g.setAttribute.rect.createSVGElement.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.g.appendChild.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.g.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-text-nested-transforms.js: (rootSVGElement.setAttribute.text.createSVGElement.text.setAttribute.text.textContent.string_appeared_here.text.setAttribute.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.text.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (executeTest): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample5): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-discrete.js: (executeTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/svgPreserveAspectRatio-animation-1.html: * svg/animations/svgangle-animation-deg-to-grad-expected.txt: * svg/animations/svgangle-animation-deg-to-grad.html: * svg/animations/svgangle-animation-deg-to-rad-expected.txt: * svg/animations/svgangle-animation-deg-to-rad.html: * svg/animations/svgangle-animation-grad-to-deg-expected.txt: * svg/animations/svgangle-animation-grad-to-deg.html: * svg/animations/svgangle-animation-grad-to-rad-expected.txt: * svg/animations/svgangle-animation-grad-to-rad.html: * svg/animations/svgangle-animation-rad-to-deg-expected.txt: * svg/animations/svgangle-animation-rad-to-deg.html: * svg/animations/svgangle-animation-rad-to-grad-expected.txt: * svg/animations/svgangle-animation-rad-to-grad.html: * svg/animations/svgboolean-animation-1.html: * svg/animations/svginteger-animation-1.html: * svg/animations/svglength-animation-LengthModeHeight-expected.txt: * svg/animations/svglength-animation-LengthModeHeight.html: * svg/animations/svglength-animation-LengthModeOther-expected.txt: * svg/animations/svglength-animation-LengthModeOther.html: * svg/animations/svglength-animation-LengthModeWidth-expected.txt: * svg/animations/svglength-animation-LengthModeWidth.html: * svg/animations/svglength-animation-invalid-value-1.html: * svg/animations/svglength-animation-invalid-value-2.html: * svg/animations/svglength-animation-invalid-value-3.html: * svg/animations/svglength-animation-number-to-number-expected.txt: * svg/animations/svglength-animation-number-to-number.html: * svg/animations/svglength-animation-px-to-cm-expected.txt: * svg/animations/svglength-animation-px-to-cm.html: * svg/animations/svglength-animation-px-to-ems-expected.txt: * svg/animations/svglength-animation-px-to-ems.html: * svg/animations/svglength-animation-px-to-exs-expected.txt: * svg/animations/svglength-animation-px-to-exs.html: * svg/animations/svglength-animation-px-to-in-expected.txt: * svg/animations/svglength-animation-px-to-in.html: * svg/animations/svglength-animation-px-to-number-expected.txt: * svg/animations/svglength-animation-px-to-number.html: * svg/animations/svglength-animation-px-to-pc-expected.txt: * svg/animations/svglength-animation-px-to-pc.html: * svg/animations/svglength-animation-px-to-percentage-expected.txt: * svg/animations/svglength-animation-px-to-percentage.html: * svg/animations/svglength-animation-px-to-pt-expected.txt: * svg/animations/svglength-animation-px-to-pt.html: * svg/animations/svglength-animation-px-to-px-expected.txt: * svg/animations/svglength-animation-px-to-px.html: * svg/animations/svglength-animation-unitType.html: * svg/animations/svglength-animation-values-expected.txt: * svg/animations/svglength-animation-values.html: * svg/animations/svglengthlist-animation-1.html: * svg/animations/svglengthlist-animation-2-expected.txt: * svg/animations/svglengthlist-animation-2.html: * svg/animations/svglengthlist-animation-3.html: * svg/animations/svglengthlist-animation-4.html: * svg/animations/svglengthlist-animation-5.html: * svg/animations/svgnumber-animation-1.html: * svg/animations/svgnumber-animation-2.html: * svg/animations/svgnumber-animation-3.html: * svg/animations/svgnumberlist-animation-1-expected.txt: * svg/animations/svgnumberlist-animation-1.html: * svg/animations/svgnumberlist-animation-2-expected.txt: * svg/animations/svgnumberlist-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-1.html: * svg/animations/svgnumberoptionalnumber-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-3.html: * svg/animations/svgnumberoptionalnumber-animation-4.html: * svg/animations/svgpath-animation-1-expected.txt: * svg/animations/svgpath-animation-1.html: * svg/animations/svgpointlist-animation-1-expected.txt: * svg/animations/svgpointlist-animation-1.html: * svg/animations/svgpointlist-animation-2-expected.txt: * svg/animations/svgpointlist-animation-2.html: * svg/animations/svgrect-animation-1-expected.txt: * svg/animations/svgrect-animation-1.html: * svg/animations/svgrect-animation-2-expected.txt: * svg/animations/svgrect-animation-2.html: * svg/animations/svgstring-animation-fallback-to-discrete-expected.txt: * svg/animations/svgstring-animation-fallback-to-discrete.html: * svg/animations/svgtransform-animation-1.html: * svg/animations/svgtransform-animation-discrete-expected.txt: * svg/animations/svgtransform-animation-discrete.html: Canonical link: https://commits.webkit.org/95529@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-14 08:41:30 +00:00
PASS rect.x.animVal.value is 100
[Qt] svg/animations tests are very flaky https://bugs.webkit.org/show_bug.cgi?id=80703 Reviewed by Rob Buis. Overhaul the svg/animation frameworks, to be more stable. Especially discrete animations were flaky on Qt, because some tests still sampled at integral times like 2.0s, instead of 1.999s (before change), and 2.001s (after change). Always use shouldBeCloseEnough() when comparing font-sizes/color values/, as there's always an uncertainity about the actual sampling time (low but may lead to 40.01px values, instead of 40px). This makes these tests also stable in Firefox/Opera, which was the ultimate goal! * platform/qt/Skipped: Unskip svg/animation tests. * svg/animations/additive-values-width-animation-expected.txt: * svg/animations/animate-color-calcMode-discrete-expected.txt: * svg/animations/animate-color-fill-currentColor-expected.txt: * svg/animations/animate-color-fill-from-by-expected.txt: * svg/animations/animate-color-rgba-calcMode-discrete-expected.txt: * svg/animations/animate-color-transparent-expected.txt: * svg/animations/animate-currentColor-expected.txt: * svg/animations/animate-dynamic-update-attributeName-expected.txt: * svg/animations/animate-elem-03-t-drt-expected.txt: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-from-to-keyTimes-expected.txt: * svg/animations/animate-inherit-css-property-expected.txt: * svg/animations/animate-keySplines-expected.txt: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes-expected.txt: * svg/animations/attributeTypes-expected.txt: * svg/animations/resources/SVGAnimationTestCase.js: (expectColor): (expectFillColor): (moveAnimationTimelineAndSample): * svg/animations/script-tests/additive-values-width-animation.js: (executeTest): * svg/animations/script-tests/animVal-basics.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample1): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-fill-from-by.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (parseAlphaFromColor): (red): * svg/animations/script-tests/animate-color-transparent.js: (expectTransparent): (expectOtherColor): * svg/animations/script-tests/animate-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (sample1): (sample2): (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-elem-03-t-drt.js: (parseFontSizeFromString): (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): * svg/animations/script-tests/animate-endElement-beginElement.js: (sample1): * svg/animations/script-tests/animate-from-to-keyTimes.js: * svg/animations/script-tests/animate-gradient-transform.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-inherit-css-property.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-insert-begin.js: (sample1): (sample2): * svg/animations/script-tests/animate-insert-no-begin.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-keySplines.js: (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/attributeTypes.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/multiple-animations-fill-freeze.js: (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample1): (sample2): (sample4): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample1): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (sample1): (sample2): * svg/animations/script-tests/svgtransform-animation-discrete.js: (sample1): (executeTest): * svg/animations/svglength-animation-invalid-value-1-expected.txt: * svg/animations/svglength-animation-invalid-value-2-expected.txt: * svg/animations/svglength-animation-invalid-value-3-expected.txt: * svg/animations/svglength-animation-unitType-expected.txt: * svg/animations/svgnumber-animation-1-expected.txt: * svg/animations/svgnumber-animation-2-expected.txt: * svg/animations/svgnumber-animation-3-expected.txt: * svg/animations/svgtransform-animation-discrete-expected.txt: Canonical link: https://commits.webkit.org/98151@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-13 16:11:17 +00:00
PASS rect.x.baseVal.value is 100
Convert svg/animations to use SMIL methods for driving the timeline https://bugs.webkit.org/show_bug.cgi?id=78422 Reviewed by Dirk Schulze. Source/WebCore: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked: - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is called a new begin time is added to the list - and the same happens for endElement() with the end list. Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime. SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted via beginElement/endElement - get removed if the begin/endTimes list is updated. Why? When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be identical, w/o leftovers from any previous begin/endElement call. To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum, which determines whether this SMILTime was created by the parser or dynamically created via beginElement/endElement. - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the animation state, when it was not paused. - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in, now that all IDLs are available. Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore. Covered by all existing tests in svg/animations. * WebCore.exp.in: Remove sampleAnimationAtTime() symbols. * WebCore.order: Ditto. * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElementAt): * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime. * svg/SVGDocumentExtensions.h: Ditto. * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper. (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry. (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin): (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime. (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script. (WebCore::operator<): Used by std::sort. * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position. (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'. (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed. * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized. (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic. (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed). (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code. (WebCore::sortTimeList): Ditto. (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto. (WebCore::SVGSMILElement::addBeginTime): Ditto. (WebCore::SVGSMILElement::addEndTime): Ditto. (WebCore::extractTimeFromVector): Ditto. (WebCore::SVGSMILElement::findInstanceTime): Ditto. * svg/animation/SVGSMILElement.h: * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed. Source/WebKit/chromium: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * public/WebFrame.h: (WebFrame): * src/WebFrameImpl.cpp: * src/WebFrameImpl.h: (WebFrameImpl): Source/WebKit/efl: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: * WebCoreSupport/DumpRenderTreeSupportEfl.h: Source/WebKit/gtk: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: * WebCoreSupport/DumpRenderTreeSupportGtk.h: (DumpRenderTreeSupportGtk): Source/WebKit/mac: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebKit.order: * WebView/WebFrame.mm: * WebView/WebFramePrivate.h: Source/WebKit/qt: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportQt.cpp: * WebCoreSupport/DumpRenderTreeSupportQt.h: Source/WebKit/win: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: * WebFrame.h: Tools: Remove no longer needed SVG specific animation sampling functionality from DRT. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * DumpRenderTree/LayoutTestController.cpp: (LayoutTestController::staticFunctions): * DumpRenderTree/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: * DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): * DumpRenderTree/chromium/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: * DumpRenderTree/mac/LayoutTestControllerMac.mm: * DumpRenderTree/qt/LayoutTestControllerQt.cpp: * DumpRenderTree/qt/LayoutTestControllerQt.h: (LayoutTestController): * DumpRenderTree/win/LayoutTestControllerWin.cpp: * DumpRenderTree/wx/LayoutTestControllerWx.cpp: LayoutTests: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked. This also unifies & cleans up the tests, to use the same formatting and the same shouldBeCloseEnough helpers. * svg/animations/animVal-basics-expected.txt: * svg/animations/animVal-basics.html: * svg/animations/animate-calcMode-spline-by-expected.txt: * svg/animations/animate-calcMode-spline-by.html: * svg/animations/animate-calcMode-spline-from-by-expected.txt: * svg/animations/animate-calcMode-spline-from-by.html: * svg/animations/animate-calcMode-spline-from-to-expected.txt: * svg/animations/animate-calcMode-spline-from-to.html: * svg/animations/animate-calcMode-spline-to-expected.txt: * svg/animations/animate-calcMode-spline-to.html: * svg/animations/animate-calcMode-spline-values-expected.txt: * svg/animations/animate-calcMode-spline-values.html: * svg/animations/animate-color-calcMode-discrete.html: * svg/animations/animate-color-fill-currentColor.html: * svg/animations/animate-color-fill-from-by.html: * svg/animations/animate-color-rgba-calcMode-discrete.html: * svg/animations/animate-color-transparent.html: * svg/animations/animate-currentColor.html: * svg/animations/animate-dynamic-update-attributeName.html: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-end-attribute.html: * svg/animations/animate-endElement-beginElement.html: * svg/animations/animate-from-to-keyTimes.html: * svg/animations/animate-gradient-transform.html: * svg/animations/animate-inherit-css-property.html: * svg/animations/animate-insert-begin.html: * svg/animations/animate-insert-no-begin.html: * svg/animations/animate-keySplines.html: * svg/animations/animate-mpath-insert.html: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes.html: * svg/animations/animate-number-calcMode-discrete.html: * svg/animations/animate-path-animation-Cc-Ss-expected.txt: * svg/animations/animate-path-animation-Cc-Ss.html: * svg/animations/animate-path-animation-Ll-Vv-Hh-expected.txt: * svg/animations/animate-path-animation-Ll-Vv-Hh.html: * svg/animations/animate-path-animation-Qq-Tt.html: * svg/animations/animate-path-animation-cC-sS-inverse-expected.txt: * svg/animations/animate-path-animation-cC-sS-inverse.html: * svg/animations/animate-path-animation-lL-vV-hH-inverse-expected.txt: * svg/animations/animate-path-animation-lL-vV-hH-inverse.html: * svg/animations/animate-path-animation-qQ-tT-inverse.html: * svg/animations/animate-path-nested-transforms-expected.txt: * svg/animations/animate-path-nested-transforms.html: * svg/animations/animate-path-to-animation-expected.txt: * svg/animations/animate-path-to-animation.html: * svg/animations/animate-text-nested-transforms-expected.txt: * svg/animations/animate-text-nested-transforms.html: * svg/animations/animateTransform-pattern-transform.html: * svg/animations/resources/SVGAnimationTestCase.js: (isCloseEnough): (shouldBeCloseEnough): (moveAnimationTimelineAndSample): (sampleAnimation): (runSMILTest): (runAnimationTest): * svg/animations/script-tests/TEMPLATE.html: Removed. * svg/animations/script-tests/animVal-basics.js: (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (executeTest): * svg/animations/script-tests/animate-color-fill-from-by.js: (executeTest): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-transparent.js: (executeTest): * svg/animations/script-tests/animate-currentColor.js: (executeTest): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (executeTest): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-endElement-beginElement.js: (executeTest): (end): (begin): * svg/animations/script-tests/animate-from-to-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-gradient-transform.js: (executeTest): * svg/animations/script-tests/animate-inherit-css-property.js: (executeTest): * svg/animations/script-tests/animate-insert-begin.js: (executeTest): * svg/animations/script-tests/animate-insert-no-begin.js: (executeTest): * svg/animations/script-tests/animate-keySplines.js: (executeTest): * svg/animations/script-tests/animate-mpath-insert.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (executeTest): * svg/animations/script-tests/animate-path-nested-transforms.js: (g.setAttribute.rect.createSVGElement.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.g.appendChild.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.g.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-text-nested-transforms.js: (rootSVGElement.setAttribute.text.createSVGElement.text.setAttribute.text.textContent.string_appeared_here.text.setAttribute.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.text.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (executeTest): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample5): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-discrete.js: (executeTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/svgPreserveAspectRatio-animation-1.html: * svg/animations/svgangle-animation-deg-to-grad-expected.txt: * svg/animations/svgangle-animation-deg-to-grad.html: * svg/animations/svgangle-animation-deg-to-rad-expected.txt: * svg/animations/svgangle-animation-deg-to-rad.html: * svg/animations/svgangle-animation-grad-to-deg-expected.txt: * svg/animations/svgangle-animation-grad-to-deg.html: * svg/animations/svgangle-animation-grad-to-rad-expected.txt: * svg/animations/svgangle-animation-grad-to-rad.html: * svg/animations/svgangle-animation-rad-to-deg-expected.txt: * svg/animations/svgangle-animation-rad-to-deg.html: * svg/animations/svgangle-animation-rad-to-grad-expected.txt: * svg/animations/svgangle-animation-rad-to-grad.html: * svg/animations/svgboolean-animation-1.html: * svg/animations/svginteger-animation-1.html: * svg/animations/svglength-animation-LengthModeHeight-expected.txt: * svg/animations/svglength-animation-LengthModeHeight.html: * svg/animations/svglength-animation-LengthModeOther-expected.txt: * svg/animations/svglength-animation-LengthModeOther.html: * svg/animations/svglength-animation-LengthModeWidth-expected.txt: * svg/animations/svglength-animation-LengthModeWidth.html: * svg/animations/svglength-animation-invalid-value-1.html: * svg/animations/svglength-animation-invalid-value-2.html: * svg/animations/svglength-animation-invalid-value-3.html: * svg/animations/svglength-animation-number-to-number-expected.txt: * svg/animations/svglength-animation-number-to-number.html: * svg/animations/svglength-animation-px-to-cm-expected.txt: * svg/animations/svglength-animation-px-to-cm.html: * svg/animations/svglength-animation-px-to-ems-expected.txt: * svg/animations/svglength-animation-px-to-ems.html: * svg/animations/svglength-animation-px-to-exs-expected.txt: * svg/animations/svglength-animation-px-to-exs.html: * svg/animations/svglength-animation-px-to-in-expected.txt: * svg/animations/svglength-animation-px-to-in.html: * svg/animations/svglength-animation-px-to-number-expected.txt: * svg/animations/svglength-animation-px-to-number.html: * svg/animations/svglength-animation-px-to-pc-expected.txt: * svg/animations/svglength-animation-px-to-pc.html: * svg/animations/svglength-animation-px-to-percentage-expected.txt: * svg/animations/svglength-animation-px-to-percentage.html: * svg/animations/svglength-animation-px-to-pt-expected.txt: * svg/animations/svglength-animation-px-to-pt.html: * svg/animations/svglength-animation-px-to-px-expected.txt: * svg/animations/svglength-animation-px-to-px.html: * svg/animations/svglength-animation-unitType.html: * svg/animations/svglength-animation-values-expected.txt: * svg/animations/svglength-animation-values.html: * svg/animations/svglengthlist-animation-1.html: * svg/animations/svglengthlist-animation-2-expected.txt: * svg/animations/svglengthlist-animation-2.html: * svg/animations/svglengthlist-animation-3.html: * svg/animations/svglengthlist-animation-4.html: * svg/animations/svglengthlist-animation-5.html: * svg/animations/svgnumber-animation-1.html: * svg/animations/svgnumber-animation-2.html: * svg/animations/svgnumber-animation-3.html: * svg/animations/svgnumberlist-animation-1-expected.txt: * svg/animations/svgnumberlist-animation-1.html: * svg/animations/svgnumberlist-animation-2-expected.txt: * svg/animations/svgnumberlist-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-1.html: * svg/animations/svgnumberoptionalnumber-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-3.html: * svg/animations/svgnumberoptionalnumber-animation-4.html: * svg/animations/svgpath-animation-1-expected.txt: * svg/animations/svgpath-animation-1.html: * svg/animations/svgpointlist-animation-1-expected.txt: * svg/animations/svgpointlist-animation-1.html: * svg/animations/svgpointlist-animation-2-expected.txt: * svg/animations/svgpointlist-animation-2.html: * svg/animations/svgrect-animation-1-expected.txt: * svg/animations/svgrect-animation-1.html: * svg/animations/svgrect-animation-2-expected.txt: * svg/animations/svgrect-animation-2.html: * svg/animations/svgstring-animation-fallback-to-discrete-expected.txt: * svg/animations/svgstring-animation-fallback-to-discrete.html: * svg/animations/svgtransform-animation-1.html: * svg/animations/svgtransform-animation-discrete-expected.txt: * svg/animations/svgtransform-animation-discrete.html: Canonical link: https://commits.webkit.org/95529@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-14 08:41:30 +00:00
PASS rect.x.animVal.value is 100
[Qt] svg/animations tests are very flaky https://bugs.webkit.org/show_bug.cgi?id=80703 Reviewed by Rob Buis. Overhaul the svg/animation frameworks, to be more stable. Especially discrete animations were flaky on Qt, because some tests still sampled at integral times like 2.0s, instead of 1.999s (before change), and 2.001s (after change). Always use shouldBeCloseEnough() when comparing font-sizes/color values/, as there's always an uncertainity about the actual sampling time (low but may lead to 40.01px values, instead of 40px). This makes these tests also stable in Firefox/Opera, which was the ultimate goal! * platform/qt/Skipped: Unskip svg/animation tests. * svg/animations/additive-values-width-animation-expected.txt: * svg/animations/animate-color-calcMode-discrete-expected.txt: * svg/animations/animate-color-fill-currentColor-expected.txt: * svg/animations/animate-color-fill-from-by-expected.txt: * svg/animations/animate-color-rgba-calcMode-discrete-expected.txt: * svg/animations/animate-color-transparent-expected.txt: * svg/animations/animate-currentColor-expected.txt: * svg/animations/animate-dynamic-update-attributeName-expected.txt: * svg/animations/animate-elem-03-t-drt-expected.txt: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-from-to-keyTimes-expected.txt: * svg/animations/animate-inherit-css-property-expected.txt: * svg/animations/animate-keySplines-expected.txt: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes-expected.txt: * svg/animations/attributeTypes-expected.txt: * svg/animations/resources/SVGAnimationTestCase.js: (expectColor): (expectFillColor): (moveAnimationTimelineAndSample): * svg/animations/script-tests/additive-values-width-animation.js: (executeTest): * svg/animations/script-tests/animVal-basics.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample1): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-fill-from-by.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (parseAlphaFromColor): (red): * svg/animations/script-tests/animate-color-transparent.js: (expectTransparent): (expectOtherColor): * svg/animations/script-tests/animate-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (sample1): (sample2): (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-elem-03-t-drt.js: (parseFontSizeFromString): (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): * svg/animations/script-tests/animate-endElement-beginElement.js: (sample1): * svg/animations/script-tests/animate-from-to-keyTimes.js: * svg/animations/script-tests/animate-gradient-transform.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-inherit-css-property.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-insert-begin.js: (sample1): (sample2): * svg/animations/script-tests/animate-insert-no-begin.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-keySplines.js: (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/attributeTypes.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/multiple-animations-fill-freeze.js: (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample1): (sample2): (sample4): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample1): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (sample1): (sample2): * svg/animations/script-tests/svgtransform-animation-discrete.js: (sample1): (executeTest): * svg/animations/svglength-animation-invalid-value-1-expected.txt: * svg/animations/svglength-animation-invalid-value-2-expected.txt: * svg/animations/svglength-animation-invalid-value-3-expected.txt: * svg/animations/svglength-animation-unitType-expected.txt: * svg/animations/svgnumber-animation-1-expected.txt: * svg/animations/svgnumber-animation-2-expected.txt: * svg/animations/svgnumber-animation-3-expected.txt: * svg/animations/svgtransform-animation-discrete-expected.txt: Canonical link: https://commits.webkit.org/98151@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-13 16:11:17 +00:00
PASS rect.x.baseVal.value is 100
Convert svg/animations to use SMIL methods for driving the timeline https://bugs.webkit.org/show_bug.cgi?id=78422 Reviewed by Dirk Schulze. Source/WebCore: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked: - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is called a new begin time is added to the list - and the same happens for endElement() with the end list. Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime. SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted via beginElement/endElement - get removed if the begin/endTimes list is updated. Why? When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be identical, w/o leftovers from any previous begin/endElement call. To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum, which determines whether this SMILTime was created by the parser or dynamically created via beginElement/endElement. - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the animation state, when it was not paused. - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in, now that all IDLs are available. Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore. Covered by all existing tests in svg/animations. * WebCore.exp.in: Remove sampleAnimationAtTime() symbols. * WebCore.order: Ditto. * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElementAt): * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime. * svg/SVGDocumentExtensions.h: Ditto. * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper. (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry. (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin): (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime. (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script. (WebCore::operator<): Used by std::sort. * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position. (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'. (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed. * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized. (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic. (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed). (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code. (WebCore::sortTimeList): Ditto. (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto. (WebCore::SVGSMILElement::addBeginTime): Ditto. (WebCore::SVGSMILElement::addEndTime): Ditto. (WebCore::extractTimeFromVector): Ditto. (WebCore::SVGSMILElement::findInstanceTime): Ditto. * svg/animation/SVGSMILElement.h: * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed. Source/WebKit/chromium: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * public/WebFrame.h: (WebFrame): * src/WebFrameImpl.cpp: * src/WebFrameImpl.h: (WebFrameImpl): Source/WebKit/efl: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: * WebCoreSupport/DumpRenderTreeSupportEfl.h: Source/WebKit/gtk: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: * WebCoreSupport/DumpRenderTreeSupportGtk.h: (DumpRenderTreeSupportGtk): Source/WebKit/mac: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebKit.order: * WebView/WebFrame.mm: * WebView/WebFramePrivate.h: Source/WebKit/qt: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportQt.cpp: * WebCoreSupport/DumpRenderTreeSupportQt.h: Source/WebKit/win: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: * WebFrame.h: Tools: Remove no longer needed SVG specific animation sampling functionality from DRT. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * DumpRenderTree/LayoutTestController.cpp: (LayoutTestController::staticFunctions): * DumpRenderTree/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: * DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): * DumpRenderTree/chromium/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: * DumpRenderTree/mac/LayoutTestControllerMac.mm: * DumpRenderTree/qt/LayoutTestControllerQt.cpp: * DumpRenderTree/qt/LayoutTestControllerQt.h: (LayoutTestController): * DumpRenderTree/win/LayoutTestControllerWin.cpp: * DumpRenderTree/wx/LayoutTestControllerWx.cpp: LayoutTests: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked. This also unifies & cleans up the tests, to use the same formatting and the same shouldBeCloseEnough helpers. * svg/animations/animVal-basics-expected.txt: * svg/animations/animVal-basics.html: * svg/animations/animate-calcMode-spline-by-expected.txt: * svg/animations/animate-calcMode-spline-by.html: * svg/animations/animate-calcMode-spline-from-by-expected.txt: * svg/animations/animate-calcMode-spline-from-by.html: * svg/animations/animate-calcMode-spline-from-to-expected.txt: * svg/animations/animate-calcMode-spline-from-to.html: * svg/animations/animate-calcMode-spline-to-expected.txt: * svg/animations/animate-calcMode-spline-to.html: * svg/animations/animate-calcMode-spline-values-expected.txt: * svg/animations/animate-calcMode-spline-values.html: * svg/animations/animate-color-calcMode-discrete.html: * svg/animations/animate-color-fill-currentColor.html: * svg/animations/animate-color-fill-from-by.html: * svg/animations/animate-color-rgba-calcMode-discrete.html: * svg/animations/animate-color-transparent.html: * svg/animations/animate-currentColor.html: * svg/animations/animate-dynamic-update-attributeName.html: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-end-attribute.html: * svg/animations/animate-endElement-beginElement.html: * svg/animations/animate-from-to-keyTimes.html: * svg/animations/animate-gradient-transform.html: * svg/animations/animate-inherit-css-property.html: * svg/animations/animate-insert-begin.html: * svg/animations/animate-insert-no-begin.html: * svg/animations/animate-keySplines.html: * svg/animations/animate-mpath-insert.html: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes.html: * svg/animations/animate-number-calcMode-discrete.html: * svg/animations/animate-path-animation-Cc-Ss-expected.txt: * svg/animations/animate-path-animation-Cc-Ss.html: * svg/animations/animate-path-animation-Ll-Vv-Hh-expected.txt: * svg/animations/animate-path-animation-Ll-Vv-Hh.html: * svg/animations/animate-path-animation-Qq-Tt.html: * svg/animations/animate-path-animation-cC-sS-inverse-expected.txt: * svg/animations/animate-path-animation-cC-sS-inverse.html: * svg/animations/animate-path-animation-lL-vV-hH-inverse-expected.txt: * svg/animations/animate-path-animation-lL-vV-hH-inverse.html: * svg/animations/animate-path-animation-qQ-tT-inverse.html: * svg/animations/animate-path-nested-transforms-expected.txt: * svg/animations/animate-path-nested-transforms.html: * svg/animations/animate-path-to-animation-expected.txt: * svg/animations/animate-path-to-animation.html: * svg/animations/animate-text-nested-transforms-expected.txt: * svg/animations/animate-text-nested-transforms.html: * svg/animations/animateTransform-pattern-transform.html: * svg/animations/resources/SVGAnimationTestCase.js: (isCloseEnough): (shouldBeCloseEnough): (moveAnimationTimelineAndSample): (sampleAnimation): (runSMILTest): (runAnimationTest): * svg/animations/script-tests/TEMPLATE.html: Removed. * svg/animations/script-tests/animVal-basics.js: (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (executeTest): * svg/animations/script-tests/animate-color-fill-from-by.js: (executeTest): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-transparent.js: (executeTest): * svg/animations/script-tests/animate-currentColor.js: (executeTest): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (executeTest): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-endElement-beginElement.js: (executeTest): (end): (begin): * svg/animations/script-tests/animate-from-to-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-gradient-transform.js: (executeTest): * svg/animations/script-tests/animate-inherit-css-property.js: (executeTest): * svg/animations/script-tests/animate-insert-begin.js: (executeTest): * svg/animations/script-tests/animate-insert-no-begin.js: (executeTest): * svg/animations/script-tests/animate-keySplines.js: (executeTest): * svg/animations/script-tests/animate-mpath-insert.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (executeTest): * svg/animations/script-tests/animate-path-nested-transforms.js: (g.setAttribute.rect.createSVGElement.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.g.appendChild.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.g.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-text-nested-transforms.js: (rootSVGElement.setAttribute.text.createSVGElement.text.setAttribute.text.textContent.string_appeared_here.text.setAttribute.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.text.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (executeTest): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample5): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-discrete.js: (executeTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/svgPreserveAspectRatio-animation-1.html: * svg/animations/svgangle-animation-deg-to-grad-expected.txt: * svg/animations/svgangle-animation-deg-to-grad.html: * svg/animations/svgangle-animation-deg-to-rad-expected.txt: * svg/animations/svgangle-animation-deg-to-rad.html: * svg/animations/svgangle-animation-grad-to-deg-expected.txt: * svg/animations/svgangle-animation-grad-to-deg.html: * svg/animations/svgangle-animation-grad-to-rad-expected.txt: * svg/animations/svgangle-animation-grad-to-rad.html: * svg/animations/svgangle-animation-rad-to-deg-expected.txt: * svg/animations/svgangle-animation-rad-to-deg.html: * svg/animations/svgangle-animation-rad-to-grad-expected.txt: * svg/animations/svgangle-animation-rad-to-grad.html: * svg/animations/svgboolean-animation-1.html: * svg/animations/svginteger-animation-1.html: * svg/animations/svglength-animation-LengthModeHeight-expected.txt: * svg/animations/svglength-animation-LengthModeHeight.html: * svg/animations/svglength-animation-LengthModeOther-expected.txt: * svg/animations/svglength-animation-LengthModeOther.html: * svg/animations/svglength-animation-LengthModeWidth-expected.txt: * svg/animations/svglength-animation-LengthModeWidth.html: * svg/animations/svglength-animation-invalid-value-1.html: * svg/animations/svglength-animation-invalid-value-2.html: * svg/animations/svglength-animation-invalid-value-3.html: * svg/animations/svglength-animation-number-to-number-expected.txt: * svg/animations/svglength-animation-number-to-number.html: * svg/animations/svglength-animation-px-to-cm-expected.txt: * svg/animations/svglength-animation-px-to-cm.html: * svg/animations/svglength-animation-px-to-ems-expected.txt: * svg/animations/svglength-animation-px-to-ems.html: * svg/animations/svglength-animation-px-to-exs-expected.txt: * svg/animations/svglength-animation-px-to-exs.html: * svg/animations/svglength-animation-px-to-in-expected.txt: * svg/animations/svglength-animation-px-to-in.html: * svg/animations/svglength-animation-px-to-number-expected.txt: * svg/animations/svglength-animation-px-to-number.html: * svg/animations/svglength-animation-px-to-pc-expected.txt: * svg/animations/svglength-animation-px-to-pc.html: * svg/animations/svglength-animation-px-to-percentage-expected.txt: * svg/animations/svglength-animation-px-to-percentage.html: * svg/animations/svglength-animation-px-to-pt-expected.txt: * svg/animations/svglength-animation-px-to-pt.html: * svg/animations/svglength-animation-px-to-px-expected.txt: * svg/animations/svglength-animation-px-to-px.html: * svg/animations/svglength-animation-unitType.html: * svg/animations/svglength-animation-values-expected.txt: * svg/animations/svglength-animation-values.html: * svg/animations/svglengthlist-animation-1.html: * svg/animations/svglengthlist-animation-2-expected.txt: * svg/animations/svglengthlist-animation-2.html: * svg/animations/svglengthlist-animation-3.html: * svg/animations/svglengthlist-animation-4.html: * svg/animations/svglengthlist-animation-5.html: * svg/animations/svgnumber-animation-1.html: * svg/animations/svgnumber-animation-2.html: * svg/animations/svgnumber-animation-3.html: * svg/animations/svgnumberlist-animation-1-expected.txt: * svg/animations/svgnumberlist-animation-1.html: * svg/animations/svgnumberlist-animation-2-expected.txt: * svg/animations/svgnumberlist-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-1.html: * svg/animations/svgnumberoptionalnumber-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-3.html: * svg/animations/svgnumberoptionalnumber-animation-4.html: * svg/animations/svgpath-animation-1-expected.txt: * svg/animations/svgpath-animation-1.html: * svg/animations/svgpointlist-animation-1-expected.txt: * svg/animations/svgpointlist-animation-1.html: * svg/animations/svgpointlist-animation-2-expected.txt: * svg/animations/svgpointlist-animation-2.html: * svg/animations/svgrect-animation-1-expected.txt: * svg/animations/svgrect-animation-1.html: * svg/animations/svgrect-animation-2-expected.txt: * svg/animations/svgrect-animation-2.html: * svg/animations/svgstring-animation-fallback-to-discrete-expected.txt: * svg/animations/svgstring-animation-fallback-to-discrete.html: * svg/animations/svgtransform-animation-1.html: * svg/animations/svgtransform-animation-discrete-expected.txt: * svg/animations/svgtransform-animation-discrete.html: Canonical link: https://commits.webkit.org/95529@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-14 08:41:30 +00:00
PASS rect.x.animVal.value is 0
[Qt] svg/animations tests are very flaky https://bugs.webkit.org/show_bug.cgi?id=80703 Reviewed by Rob Buis. Overhaul the svg/animation frameworks, to be more stable. Especially discrete animations were flaky on Qt, because some tests still sampled at integral times like 2.0s, instead of 1.999s (before change), and 2.001s (after change). Always use shouldBeCloseEnough() when comparing font-sizes/color values/, as there's always an uncertainity about the actual sampling time (low but may lead to 40.01px values, instead of 40px). This makes these tests also stable in Firefox/Opera, which was the ultimate goal! * platform/qt/Skipped: Unskip svg/animation tests. * svg/animations/additive-values-width-animation-expected.txt: * svg/animations/animate-color-calcMode-discrete-expected.txt: * svg/animations/animate-color-fill-currentColor-expected.txt: * svg/animations/animate-color-fill-from-by-expected.txt: * svg/animations/animate-color-rgba-calcMode-discrete-expected.txt: * svg/animations/animate-color-transparent-expected.txt: * svg/animations/animate-currentColor-expected.txt: * svg/animations/animate-dynamic-update-attributeName-expected.txt: * svg/animations/animate-elem-03-t-drt-expected.txt: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-from-to-keyTimes-expected.txt: * svg/animations/animate-inherit-css-property-expected.txt: * svg/animations/animate-keySplines-expected.txt: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes-expected.txt: * svg/animations/attributeTypes-expected.txt: * svg/animations/resources/SVGAnimationTestCase.js: (expectColor): (expectFillColor): (moveAnimationTimelineAndSample): * svg/animations/script-tests/additive-values-width-animation.js: (executeTest): * svg/animations/script-tests/animVal-basics.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample1): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-fill-from-by.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (parseAlphaFromColor): (red): * svg/animations/script-tests/animate-color-transparent.js: (expectTransparent): (expectOtherColor): * svg/animations/script-tests/animate-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (sample1): (sample2): (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-elem-03-t-drt.js: (parseFontSizeFromString): (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): * svg/animations/script-tests/animate-endElement-beginElement.js: (sample1): * svg/animations/script-tests/animate-from-to-keyTimes.js: * svg/animations/script-tests/animate-gradient-transform.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-inherit-css-property.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-insert-begin.js: (sample1): (sample2): * svg/animations/script-tests/animate-insert-no-begin.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-keySplines.js: (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/attributeTypes.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/multiple-animations-fill-freeze.js: (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample1): (sample2): (sample4): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample1): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (sample1): (sample2): * svg/animations/script-tests/svgtransform-animation-discrete.js: (sample1): (executeTest): * svg/animations/svglength-animation-invalid-value-1-expected.txt: * svg/animations/svglength-animation-invalid-value-2-expected.txt: * svg/animations/svglength-animation-invalid-value-3-expected.txt: * svg/animations/svglength-animation-unitType-expected.txt: * svg/animations/svgnumber-animation-1-expected.txt: * svg/animations/svgnumber-animation-2-expected.txt: * svg/animations/svgnumber-animation-3-expected.txt: * svg/animations/svgtransform-animation-discrete-expected.txt: Canonical link: https://commits.webkit.org/98151@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-13 16:11:17 +00:00
PASS rect.x.baseVal.value is 100
Convert svg/animations to use SMIL methods for driving the timeline https://bugs.webkit.org/show_bug.cgi?id=78422 Reviewed by Dirk Schulze. Source/WebCore: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked: - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is called a new begin time is added to the list - and the same happens for endElement() with the end list. Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime. SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted via beginElement/endElement - get removed if the begin/endTimes list is updated. Why? When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be identical, w/o leftovers from any previous begin/endElement call. To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum, which determines whether this SMILTime was created by the parser or dynamically created via beginElement/endElement. - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the animation state, when it was not paused. - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in, now that all IDLs are available. Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore. Covered by all existing tests in svg/animations. * WebCore.exp.in: Remove sampleAnimationAtTime() symbols. * WebCore.order: Ditto. * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElementAt): * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime. * svg/SVGDocumentExtensions.h: Ditto. * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper. (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry. (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin): (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime. (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script. (WebCore::operator<): Used by std::sort. * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position. (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'. (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed. * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized. (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic. (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed). (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code. (WebCore::sortTimeList): Ditto. (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto. (WebCore::SVGSMILElement::addBeginTime): Ditto. (WebCore::SVGSMILElement::addEndTime): Ditto. (WebCore::extractTimeFromVector): Ditto. (WebCore::SVGSMILElement::findInstanceTime): Ditto. * svg/animation/SVGSMILElement.h: * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed. Source/WebKit/chromium: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * public/WebFrame.h: (WebFrame): * src/WebFrameImpl.cpp: * src/WebFrameImpl.h: (WebFrameImpl): Source/WebKit/efl: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: * WebCoreSupport/DumpRenderTreeSupportEfl.h: Source/WebKit/gtk: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: * WebCoreSupport/DumpRenderTreeSupportGtk.h: (DumpRenderTreeSupportGtk): Source/WebKit/mac: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebKit.order: * WebView/WebFrame.mm: * WebView/WebFramePrivate.h: Source/WebKit/qt: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportQt.cpp: * WebCoreSupport/DumpRenderTreeSupportQt.h: Source/WebKit/win: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: * WebFrame.h: Tools: Remove no longer needed SVG specific animation sampling functionality from DRT. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * DumpRenderTree/LayoutTestController.cpp: (LayoutTestController::staticFunctions): * DumpRenderTree/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: * DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): * DumpRenderTree/chromium/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: * DumpRenderTree/mac/LayoutTestControllerMac.mm: * DumpRenderTree/qt/LayoutTestControllerQt.cpp: * DumpRenderTree/qt/LayoutTestControllerQt.h: (LayoutTestController): * DumpRenderTree/win/LayoutTestControllerWin.cpp: * DumpRenderTree/wx/LayoutTestControllerWx.cpp: LayoutTests: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked. This also unifies & cleans up the tests, to use the same formatting and the same shouldBeCloseEnough helpers. * svg/animations/animVal-basics-expected.txt: * svg/animations/animVal-basics.html: * svg/animations/animate-calcMode-spline-by-expected.txt: * svg/animations/animate-calcMode-spline-by.html: * svg/animations/animate-calcMode-spline-from-by-expected.txt: * svg/animations/animate-calcMode-spline-from-by.html: * svg/animations/animate-calcMode-spline-from-to-expected.txt: * svg/animations/animate-calcMode-spline-from-to.html: * svg/animations/animate-calcMode-spline-to-expected.txt: * svg/animations/animate-calcMode-spline-to.html: * svg/animations/animate-calcMode-spline-values-expected.txt: * svg/animations/animate-calcMode-spline-values.html: * svg/animations/animate-color-calcMode-discrete.html: * svg/animations/animate-color-fill-currentColor.html: * svg/animations/animate-color-fill-from-by.html: * svg/animations/animate-color-rgba-calcMode-discrete.html: * svg/animations/animate-color-transparent.html: * svg/animations/animate-currentColor.html: * svg/animations/animate-dynamic-update-attributeName.html: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-end-attribute.html: * svg/animations/animate-endElement-beginElement.html: * svg/animations/animate-from-to-keyTimes.html: * svg/animations/animate-gradient-transform.html: * svg/animations/animate-inherit-css-property.html: * svg/animations/animate-insert-begin.html: * svg/animations/animate-insert-no-begin.html: * svg/animations/animate-keySplines.html: * svg/animations/animate-mpath-insert.html: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes.html: * svg/animations/animate-number-calcMode-discrete.html: * svg/animations/animate-path-animation-Cc-Ss-expected.txt: * svg/animations/animate-path-animation-Cc-Ss.html: * svg/animations/animate-path-animation-Ll-Vv-Hh-expected.txt: * svg/animations/animate-path-animation-Ll-Vv-Hh.html: * svg/animations/animate-path-animation-Qq-Tt.html: * svg/animations/animate-path-animation-cC-sS-inverse-expected.txt: * svg/animations/animate-path-animation-cC-sS-inverse.html: * svg/animations/animate-path-animation-lL-vV-hH-inverse-expected.txt: * svg/animations/animate-path-animation-lL-vV-hH-inverse.html: * svg/animations/animate-path-animation-qQ-tT-inverse.html: * svg/animations/animate-path-nested-transforms-expected.txt: * svg/animations/animate-path-nested-transforms.html: * svg/animations/animate-path-to-animation-expected.txt: * svg/animations/animate-path-to-animation.html: * svg/animations/animate-text-nested-transforms-expected.txt: * svg/animations/animate-text-nested-transforms.html: * svg/animations/animateTransform-pattern-transform.html: * svg/animations/resources/SVGAnimationTestCase.js: (isCloseEnough): (shouldBeCloseEnough): (moveAnimationTimelineAndSample): (sampleAnimation): (runSMILTest): (runAnimationTest): * svg/animations/script-tests/TEMPLATE.html: Removed. * svg/animations/script-tests/animVal-basics.js: (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (executeTest): * svg/animations/script-tests/animate-color-fill-from-by.js: (executeTest): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-transparent.js: (executeTest): * svg/animations/script-tests/animate-currentColor.js: (executeTest): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (executeTest): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-endElement-beginElement.js: (executeTest): (end): (begin): * svg/animations/script-tests/animate-from-to-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-gradient-transform.js: (executeTest): * svg/animations/script-tests/animate-inherit-css-property.js: (executeTest): * svg/animations/script-tests/animate-insert-begin.js: (executeTest): * svg/animations/script-tests/animate-insert-no-begin.js: (executeTest): * svg/animations/script-tests/animate-keySplines.js: (executeTest): * svg/animations/script-tests/animate-mpath-insert.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (executeTest): * svg/animations/script-tests/animate-path-nested-transforms.js: (g.setAttribute.rect.createSVGElement.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.g.appendChild.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.g.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-text-nested-transforms.js: (rootSVGElement.setAttribute.text.createSVGElement.text.setAttribute.text.textContent.string_appeared_here.text.setAttribute.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.text.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (executeTest): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample5): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-discrete.js: (executeTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/svgPreserveAspectRatio-animation-1.html: * svg/animations/svgangle-animation-deg-to-grad-expected.txt: * svg/animations/svgangle-animation-deg-to-grad.html: * svg/animations/svgangle-animation-deg-to-rad-expected.txt: * svg/animations/svgangle-animation-deg-to-rad.html: * svg/animations/svgangle-animation-grad-to-deg-expected.txt: * svg/animations/svgangle-animation-grad-to-deg.html: * svg/animations/svgangle-animation-grad-to-rad-expected.txt: * svg/animations/svgangle-animation-grad-to-rad.html: * svg/animations/svgangle-animation-rad-to-deg-expected.txt: * svg/animations/svgangle-animation-rad-to-deg.html: * svg/animations/svgangle-animation-rad-to-grad-expected.txt: * svg/animations/svgangle-animation-rad-to-grad.html: * svg/animations/svgboolean-animation-1.html: * svg/animations/svginteger-animation-1.html: * svg/animations/svglength-animation-LengthModeHeight-expected.txt: * svg/animations/svglength-animation-LengthModeHeight.html: * svg/animations/svglength-animation-LengthModeOther-expected.txt: * svg/animations/svglength-animation-LengthModeOther.html: * svg/animations/svglength-animation-LengthModeWidth-expected.txt: * svg/animations/svglength-animation-LengthModeWidth.html: * svg/animations/svglength-animation-invalid-value-1.html: * svg/animations/svglength-animation-invalid-value-2.html: * svg/animations/svglength-animation-invalid-value-3.html: * svg/animations/svglength-animation-number-to-number-expected.txt: * svg/animations/svglength-animation-number-to-number.html: * svg/animations/svglength-animation-px-to-cm-expected.txt: * svg/animations/svglength-animation-px-to-cm.html: * svg/animations/svglength-animation-px-to-ems-expected.txt: * svg/animations/svglength-animation-px-to-ems.html: * svg/animations/svglength-animation-px-to-exs-expected.txt: * svg/animations/svglength-animation-px-to-exs.html: * svg/animations/svglength-animation-px-to-in-expected.txt: * svg/animations/svglength-animation-px-to-in.html: * svg/animations/svglength-animation-px-to-number-expected.txt: * svg/animations/svglength-animation-px-to-number.html: * svg/animations/svglength-animation-px-to-pc-expected.txt: * svg/animations/svglength-animation-px-to-pc.html: * svg/animations/svglength-animation-px-to-percentage-expected.txt: * svg/animations/svglength-animation-px-to-percentage.html: * svg/animations/svglength-animation-px-to-pt-expected.txt: * svg/animations/svglength-animation-px-to-pt.html: * svg/animations/svglength-animation-px-to-px-expected.txt: * svg/animations/svglength-animation-px-to-px.html: * svg/animations/svglength-animation-unitType.html: * svg/animations/svglength-animation-values-expected.txt: * svg/animations/svglength-animation-values.html: * svg/animations/svglengthlist-animation-1.html: * svg/animations/svglengthlist-animation-2-expected.txt: * svg/animations/svglengthlist-animation-2.html: * svg/animations/svglengthlist-animation-3.html: * svg/animations/svglengthlist-animation-4.html: * svg/animations/svglengthlist-animation-5.html: * svg/animations/svgnumber-animation-1.html: * svg/animations/svgnumber-animation-2.html: * svg/animations/svgnumber-animation-3.html: * svg/animations/svgnumberlist-animation-1-expected.txt: * svg/animations/svgnumberlist-animation-1.html: * svg/animations/svgnumberlist-animation-2-expected.txt: * svg/animations/svgnumberlist-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-1.html: * svg/animations/svgnumberoptionalnumber-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-3.html: * svg/animations/svgnumberoptionalnumber-animation-4.html: * svg/animations/svgpath-animation-1-expected.txt: * svg/animations/svgpath-animation-1.html: * svg/animations/svgpointlist-animation-1-expected.txt: * svg/animations/svgpointlist-animation-1.html: * svg/animations/svgpointlist-animation-2-expected.txt: * svg/animations/svgpointlist-animation-2.html: * svg/animations/svgrect-animation-1-expected.txt: * svg/animations/svgrect-animation-1.html: * svg/animations/svgrect-animation-2-expected.txt: * svg/animations/svgrect-animation-2.html: * svg/animations/svgstring-animation-fallback-to-discrete-expected.txt: * svg/animations/svgstring-animation-fallback-to-discrete.html: * svg/animations/svgtransform-animation-1.html: * svg/animations/svgtransform-animation-discrete-expected.txt: * svg/animations/svgtransform-animation-discrete.html: Canonical link: https://commits.webkit.org/95529@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-14 08:41:30 +00:00
PASS rect.x.animVal.value is 0
[Qt] svg/animations tests are very flaky https://bugs.webkit.org/show_bug.cgi?id=80703 Reviewed by Rob Buis. Overhaul the svg/animation frameworks, to be more stable. Especially discrete animations were flaky on Qt, because some tests still sampled at integral times like 2.0s, instead of 1.999s (before change), and 2.001s (after change). Always use shouldBeCloseEnough() when comparing font-sizes/color values/, as there's always an uncertainity about the actual sampling time (low but may lead to 40.01px values, instead of 40px). This makes these tests also stable in Firefox/Opera, which was the ultimate goal! * platform/qt/Skipped: Unskip svg/animation tests. * svg/animations/additive-values-width-animation-expected.txt: * svg/animations/animate-color-calcMode-discrete-expected.txt: * svg/animations/animate-color-fill-currentColor-expected.txt: * svg/animations/animate-color-fill-from-by-expected.txt: * svg/animations/animate-color-rgba-calcMode-discrete-expected.txt: * svg/animations/animate-color-transparent-expected.txt: * svg/animations/animate-currentColor-expected.txt: * svg/animations/animate-dynamic-update-attributeName-expected.txt: * svg/animations/animate-elem-03-t-drt-expected.txt: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-from-to-keyTimes-expected.txt: * svg/animations/animate-inherit-css-property-expected.txt: * svg/animations/animate-keySplines-expected.txt: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes-expected.txt: * svg/animations/attributeTypes-expected.txt: * svg/animations/resources/SVGAnimationTestCase.js: (expectColor): (expectFillColor): (moveAnimationTimelineAndSample): * svg/animations/script-tests/additive-values-width-animation.js: (executeTest): * svg/animations/script-tests/animVal-basics.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample1): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-fill-from-by.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (parseAlphaFromColor): (red): * svg/animations/script-tests/animate-color-transparent.js: (expectTransparent): (expectOtherColor): * svg/animations/script-tests/animate-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (sample1): (sample2): (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-elem-03-t-drt.js: (parseFontSizeFromString): (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): * svg/animations/script-tests/animate-endElement-beginElement.js: (sample1): * svg/animations/script-tests/animate-from-to-keyTimes.js: * svg/animations/script-tests/animate-gradient-transform.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-inherit-css-property.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-insert-begin.js: (sample1): (sample2): * svg/animations/script-tests/animate-insert-no-begin.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-keySplines.js: (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/attributeTypes.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/multiple-animations-fill-freeze.js: (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample1): (sample2): (sample4): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample1): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (sample1): (sample2): * svg/animations/script-tests/svgtransform-animation-discrete.js: (sample1): (executeTest): * svg/animations/svglength-animation-invalid-value-1-expected.txt: * svg/animations/svglength-animation-invalid-value-2-expected.txt: * svg/animations/svglength-animation-invalid-value-3-expected.txt: * svg/animations/svglength-animation-unitType-expected.txt: * svg/animations/svgnumber-animation-1-expected.txt: * svg/animations/svgnumber-animation-2-expected.txt: * svg/animations/svgnumber-animation-3-expected.txt: * svg/animations/svgtransform-animation-discrete-expected.txt: Canonical link: https://commits.webkit.org/98151@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-13 16:11:17 +00:00
PASS rect.x.baseVal.value is 100
Convert svg/animations to use SMIL methods for driving the timeline https://bugs.webkit.org/show_bug.cgi?id=78422 Reviewed by Dirk Schulze. Source/WebCore: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked: - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is called a new begin time is added to the list - and the same happens for endElement() with the end list. Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime. SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted via beginElement/endElement - get removed if the begin/endTimes list is updated. Why? When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be identical, w/o leftovers from any previous begin/endElement call. To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum, which determines whether this SMILTime was created by the parser or dynamically created via beginElement/endElement. - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the animation state, when it was not paused. - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in, now that all IDLs are available. Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore. Covered by all existing tests in svg/animations. * WebCore.exp.in: Remove sampleAnimationAtTime() symbols. * WebCore.order: Ditto. * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElementAt): * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime. * svg/SVGDocumentExtensions.h: Ditto. * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper. (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry. (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin): (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime. (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script. (WebCore::operator<): Used by std::sort. * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position. (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'. (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed. * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized. (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic. (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed). (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code. (WebCore::sortTimeList): Ditto. (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto. (WebCore::SVGSMILElement::addBeginTime): Ditto. (WebCore::SVGSMILElement::addEndTime): Ditto. (WebCore::extractTimeFromVector): Ditto. (WebCore::SVGSMILElement::findInstanceTime): Ditto. * svg/animation/SVGSMILElement.h: * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed. Source/WebKit/chromium: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * public/WebFrame.h: (WebFrame): * src/WebFrameImpl.cpp: * src/WebFrameImpl.h: (WebFrameImpl): Source/WebKit/efl: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: * WebCoreSupport/DumpRenderTreeSupportEfl.h: Source/WebKit/gtk: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: * WebCoreSupport/DumpRenderTreeSupportGtk.h: (DumpRenderTreeSupportGtk): Source/WebKit/mac: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebKit.order: * WebView/WebFrame.mm: * WebView/WebFramePrivate.h: Source/WebKit/qt: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * WebCoreSupport/DumpRenderTreeSupportQt.cpp: * WebCoreSupport/DumpRenderTreeSupportQt.h: Source/WebKit/win: Remove SVG animation sampling functionality provided for DRT, which no longer uses it. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * Interfaces/IWebFramePrivate.idl: * WebFrame.cpp: * WebFrame.h: Tools: Remove no longer needed SVG specific animation sampling functionality from DRT. Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. * DumpRenderTree/LayoutTestController.cpp: (LayoutTestController::staticFunctions): * DumpRenderTree/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: * DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): * DumpRenderTree/chromium/LayoutTestController.h: (LayoutTestController): * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: * DumpRenderTree/mac/LayoutTestControllerMac.mm: * DumpRenderTree/qt/LayoutTestControllerQt.cpp: * DumpRenderTree/qt/LayoutTestControllerQt.h: (LayoutTestController): * DumpRenderTree/win/LayoutTestControllerWin.cpp: * DumpRenderTree/wx/LayoutTestControllerWx.cpp: LayoutTests: Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline. This should fix all flakiness we previously had with these tests - and as nice side-effect we're now using the standard SVG methods to drive the timeline, and thus have more coverage for these methods. It already exposed several SMIL bugs, that had to be fixed, before this worked. This also unifies & cleans up the tests, to use the same formatting and the same shouldBeCloseEnough helpers. * svg/animations/animVal-basics-expected.txt: * svg/animations/animVal-basics.html: * svg/animations/animate-calcMode-spline-by-expected.txt: * svg/animations/animate-calcMode-spline-by.html: * svg/animations/animate-calcMode-spline-from-by-expected.txt: * svg/animations/animate-calcMode-spline-from-by.html: * svg/animations/animate-calcMode-spline-from-to-expected.txt: * svg/animations/animate-calcMode-spline-from-to.html: * svg/animations/animate-calcMode-spline-to-expected.txt: * svg/animations/animate-calcMode-spline-to.html: * svg/animations/animate-calcMode-spline-values-expected.txt: * svg/animations/animate-calcMode-spline-values.html: * svg/animations/animate-color-calcMode-discrete.html: * svg/animations/animate-color-fill-currentColor.html: * svg/animations/animate-color-fill-from-by.html: * svg/animations/animate-color-rgba-calcMode-discrete.html: * svg/animations/animate-color-transparent.html: * svg/animations/animate-currentColor.html: * svg/animations/animate-dynamic-update-attributeName.html: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-end-attribute.html: * svg/animations/animate-endElement-beginElement.html: * svg/animations/animate-from-to-keyTimes.html: * svg/animations/animate-gradient-transform.html: * svg/animations/animate-inherit-css-property.html: * svg/animations/animate-insert-begin.html: * svg/animations/animate-insert-no-begin.html: * svg/animations/animate-keySplines.html: * svg/animations/animate-mpath-insert.html: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes.html: * svg/animations/animate-number-calcMode-discrete.html: * svg/animations/animate-path-animation-Cc-Ss-expected.txt: * svg/animations/animate-path-animation-Cc-Ss.html: * svg/animations/animate-path-animation-Ll-Vv-Hh-expected.txt: * svg/animations/animate-path-animation-Ll-Vv-Hh.html: * svg/animations/animate-path-animation-Qq-Tt.html: * svg/animations/animate-path-animation-cC-sS-inverse-expected.txt: * svg/animations/animate-path-animation-cC-sS-inverse.html: * svg/animations/animate-path-animation-lL-vV-hH-inverse-expected.txt: * svg/animations/animate-path-animation-lL-vV-hH-inverse.html: * svg/animations/animate-path-animation-qQ-tT-inverse.html: * svg/animations/animate-path-nested-transforms-expected.txt: * svg/animations/animate-path-nested-transforms.html: * svg/animations/animate-path-to-animation-expected.txt: * svg/animations/animate-path-to-animation.html: * svg/animations/animate-text-nested-transforms-expected.txt: * svg/animations/animate-text-nested-transforms.html: * svg/animations/animateTransform-pattern-transform.html: * svg/animations/resources/SVGAnimationTestCase.js: (isCloseEnough): (shouldBeCloseEnough): (moveAnimationTimelineAndSample): (sampleAnimation): (runSMILTest): (runAnimationTest): * svg/animations/script-tests/TEMPLATE.html: Removed. * svg/animations/script-tests/animVal-basics.js: (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (executeTest): * svg/animations/script-tests/animate-color-fill-from-by.js: (executeTest): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (executeTest): * svg/animations/script-tests/animate-color-transparent.js: (executeTest): * svg/animations/script-tests/animate-currentColor.js: (executeTest): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (executeTest): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-endElement-beginElement.js: (executeTest): (end): (begin): * svg/animations/script-tests/animate-from-to-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-gradient-transform.js: (executeTest): * svg/animations/script-tests/animate-inherit-css-property.js: (executeTest): * svg/animations/script-tests/animate-insert-begin.js: (executeTest): * svg/animations/script-tests/animate-insert-no-begin.js: (executeTest): * svg/animations/script-tests/animate-keySplines.js: (executeTest): * svg/animations/script-tests/animate-mpath-insert.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample4): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (executeTest): * svg/animations/script-tests/animate-path-nested-transforms.js: (g.setAttribute.rect.createSVGElement.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.rect.setAttribute.g.appendChild.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.g.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-text-nested-transforms.js: (rootSVGElement.setAttribute.text.createSVGElement.text.setAttribute.text.textContent.string_appeared_here.text.setAttribute.animateMotion.createSVGElement.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.animateMotion.setAttribute.text.appendChild.rootSVGElement.appendChild.startSample): (endSample): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (executeTest): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample3): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample5): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample3): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-discrete.js: (executeTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/svgPreserveAspectRatio-animation-1.html: * svg/animations/svgangle-animation-deg-to-grad-expected.txt: * svg/animations/svgangle-animation-deg-to-grad.html: * svg/animations/svgangle-animation-deg-to-rad-expected.txt: * svg/animations/svgangle-animation-deg-to-rad.html: * svg/animations/svgangle-animation-grad-to-deg-expected.txt: * svg/animations/svgangle-animation-grad-to-deg.html: * svg/animations/svgangle-animation-grad-to-rad-expected.txt: * svg/animations/svgangle-animation-grad-to-rad.html: * svg/animations/svgangle-animation-rad-to-deg-expected.txt: * svg/animations/svgangle-animation-rad-to-deg.html: * svg/animations/svgangle-animation-rad-to-grad-expected.txt: * svg/animations/svgangle-animation-rad-to-grad.html: * svg/animations/svgboolean-animation-1.html: * svg/animations/svginteger-animation-1.html: * svg/animations/svglength-animation-LengthModeHeight-expected.txt: * svg/animations/svglength-animation-LengthModeHeight.html: * svg/animations/svglength-animation-LengthModeOther-expected.txt: * svg/animations/svglength-animation-LengthModeOther.html: * svg/animations/svglength-animation-LengthModeWidth-expected.txt: * svg/animations/svglength-animation-LengthModeWidth.html: * svg/animations/svglength-animation-invalid-value-1.html: * svg/animations/svglength-animation-invalid-value-2.html: * svg/animations/svglength-animation-invalid-value-3.html: * svg/animations/svglength-animation-number-to-number-expected.txt: * svg/animations/svglength-animation-number-to-number.html: * svg/animations/svglength-animation-px-to-cm-expected.txt: * svg/animations/svglength-animation-px-to-cm.html: * svg/animations/svglength-animation-px-to-ems-expected.txt: * svg/animations/svglength-animation-px-to-ems.html: * svg/animations/svglength-animation-px-to-exs-expected.txt: * svg/animations/svglength-animation-px-to-exs.html: * svg/animations/svglength-animation-px-to-in-expected.txt: * svg/animations/svglength-animation-px-to-in.html: * svg/animations/svglength-animation-px-to-number-expected.txt: * svg/animations/svglength-animation-px-to-number.html: * svg/animations/svglength-animation-px-to-pc-expected.txt: * svg/animations/svglength-animation-px-to-pc.html: * svg/animations/svglength-animation-px-to-percentage-expected.txt: * svg/animations/svglength-animation-px-to-percentage.html: * svg/animations/svglength-animation-px-to-pt-expected.txt: * svg/animations/svglength-animation-px-to-pt.html: * svg/animations/svglength-animation-px-to-px-expected.txt: * svg/animations/svglength-animation-px-to-px.html: * svg/animations/svglength-animation-unitType.html: * svg/animations/svglength-animation-values-expected.txt: * svg/animations/svglength-animation-values.html: * svg/animations/svglengthlist-animation-1.html: * svg/animations/svglengthlist-animation-2-expected.txt: * svg/animations/svglengthlist-animation-2.html: * svg/animations/svglengthlist-animation-3.html: * svg/animations/svglengthlist-animation-4.html: * svg/animations/svglengthlist-animation-5.html: * svg/animations/svgnumber-animation-1.html: * svg/animations/svgnumber-animation-2.html: * svg/animations/svgnumber-animation-3.html: * svg/animations/svgnumberlist-animation-1-expected.txt: * svg/animations/svgnumberlist-animation-1.html: * svg/animations/svgnumberlist-animation-2-expected.txt: * svg/animations/svgnumberlist-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-1.html: * svg/animations/svgnumberoptionalnumber-animation-2.html: * svg/animations/svgnumberoptionalnumber-animation-3.html: * svg/animations/svgnumberoptionalnumber-animation-4.html: * svg/animations/svgpath-animation-1-expected.txt: * svg/animations/svgpath-animation-1.html: * svg/animations/svgpointlist-animation-1-expected.txt: * svg/animations/svgpointlist-animation-1.html: * svg/animations/svgpointlist-animation-2-expected.txt: * svg/animations/svgpointlist-animation-2.html: * svg/animations/svgrect-animation-1-expected.txt: * svg/animations/svgrect-animation-1.html: * svg/animations/svgrect-animation-2-expected.txt: * svg/animations/svgrect-animation-2.html: * svg/animations/svgstring-animation-fallback-to-discrete-expected.txt: * svg/animations/svgstring-animation-fallback-to-discrete.html: * svg/animations/svgtransform-animation-1.html: * svg/animations/svgtransform-animation-discrete-expected.txt: * svg/animations/svgtransform-animation-discrete.html: Canonical link: https://commits.webkit.org/95529@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-14 08:41:30 +00:00
PASS rect.x.animVal.value is 100
[Qt] svg/animations tests are very flaky https://bugs.webkit.org/show_bug.cgi?id=80703 Reviewed by Rob Buis. Overhaul the svg/animation frameworks, to be more stable. Especially discrete animations were flaky on Qt, because some tests still sampled at integral times like 2.0s, instead of 1.999s (before change), and 2.001s (after change). Always use shouldBeCloseEnough() when comparing font-sizes/color values/, as there's always an uncertainity about the actual sampling time (low but may lead to 40.01px values, instead of 40px). This makes these tests also stable in Firefox/Opera, which was the ultimate goal! * platform/qt/Skipped: Unskip svg/animation tests. * svg/animations/additive-values-width-animation-expected.txt: * svg/animations/animate-color-calcMode-discrete-expected.txt: * svg/animations/animate-color-fill-currentColor-expected.txt: * svg/animations/animate-color-fill-from-by-expected.txt: * svg/animations/animate-color-rgba-calcMode-discrete-expected.txt: * svg/animations/animate-color-transparent-expected.txt: * svg/animations/animate-currentColor-expected.txt: * svg/animations/animate-dynamic-update-attributeName-expected.txt: * svg/animations/animate-elem-03-t-drt-expected.txt: * svg/animations/animate-end-attribute-expected.txt: * svg/animations/animate-from-to-keyTimes-expected.txt: * svg/animations/animate-inherit-css-property-expected.txt: * svg/animations/animate-keySplines-expected.txt: * svg/animations/animate-number-calcMode-discrete-expected.txt: * svg/animations/animate-number-calcMode-discrete-keyTimes-expected.txt: * svg/animations/attributeTypes-expected.txt: * svg/animations/resources/SVGAnimationTestCase.js: (expectColor): (expectFillColor): (moveAnimationTimelineAndSample): * svg/animations/script-tests/additive-values-width-animation.js: (executeTest): * svg/animations/script-tests/animVal-basics.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-by.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-from-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-to.js: (sample1): (executeTest): * svg/animations/script-tests/animate-calcMode-spline-values.js: (sample1): (executeTest): * svg/animations/script-tests/animate-color-calcMode-discrete.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-color-fill-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-fill-from-by.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-color-rgba-calcMode-discrete.js: (parseAlphaFromColor): (red): * svg/animations/script-tests/animate-color-transparent.js: (expectTransparent): (expectOtherColor): * svg/animations/script-tests/animate-currentColor.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-dynamic-update-attributeName.js: (sample1): (sample2): (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-elem-03-t-drt.js: (parseFontSizeFromString): (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-end-attribute.js: (sample1): (sample2): * svg/animations/script-tests/animate-endElement-beginElement.js: (sample1): * svg/animations/script-tests/animate-from-to-keyTimes.js: * svg/animations/script-tests/animate-gradient-transform.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-inherit-css-property.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/animate-insert-begin.js: (sample1): (sample2): * svg/animations/script-tests/animate-insert-no-begin.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-keySplines.js: (sample3): (sample4): (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete-keyTimes.js: (executeTest): * svg/animations/script-tests/animate-number-calcMode-discrete.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animate-path-animation-Cc-Ss.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Ll-Vv-Hh.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-Qq-Tt.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-cC-sS-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-lL-vV-hH-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-animation-qQ-tT-inverse.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/animate-path-to-animation.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/animateTransform-pattern-transform.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/attributeTypes.js: (sample1): (sample2): (sample3): * svg/animations/script-tests/multiple-animations-fill-freeze.js: (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): * svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js: (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-deg-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-grad-to-rad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-deg.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgangle-animation-rad-to-grad.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgboolean-animation-1.js: (executeTest): * svg/animations/script-tests/svginteger-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeHeight.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeOther.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-LengthModeWidth.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-invalid-value-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-number-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-cm.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-ems.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-exs.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-in.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-number.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pc.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-percentage.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-pt.js: (sample1): (executeTest): * svg/animations/script-tests/svglength-animation-px-to-px.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglength-animation-unitType.js: (executeTest): * svg/animations/script-tests/svglength-animation-values.js: (sample1): (sample2): (sample4): (executeTest): * svg/animations/script-tests/svglengthlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-2.js: (sample1): (executeTest): * svg/animations/script-tests/svglengthlist-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svglengthlist-animation-5.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumber-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumber-animation-3.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberlist-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-3.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgnumberoptionalnumber-animation-4.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpath-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgpointlist-animation-1.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgpointlist-animation-2.js: (sample1): (sample2): (sample3): (executeTest): * svg/animations/script-tests/svgrect-animation-1.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgrect-animation-2.js: (sample1): (sample2): (executeTest): * svg/animations/script-tests/svgstring-animation-fallback-to-discrete.js: (executeTest): * svg/animations/script-tests/svgtransform-animation-1.js: (sample1): (sample2): * svg/animations/script-tests/svgtransform-animation-discrete.js: (sample1): (executeTest): * svg/animations/svglength-animation-invalid-value-1-expected.txt: * svg/animations/svglength-animation-invalid-value-2-expected.txt: * svg/animations/svglength-animation-invalid-value-3-expected.txt: * svg/animations/svglength-animation-unitType-expected.txt: * svg/animations/svgnumber-animation-1-expected.txt: * svg/animations/svgnumber-animation-2-expected.txt: * svg/animations/svgnumber-animation-3-expected.txt: * svg/animations/svgtransform-animation-discrete-expected.txt: Canonical link: https://commits.webkit.org/98151@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-13 16:11:17 +00:00
PASS rect.x.baseVal.value is 100
PASS successfullyParsed is true
TEST COMPLETE