haikuwebkit/LayoutTests/svg/animations/svg-two-animate-elements-cr...

12 lines
470 B
XML
Raw Permalink Normal View History

Accumulate SVG animations into first contributing element https://bugs.webkit.org/show_bug.cgi?id=86385 Reviewed by Nikolas Zimmermann. Source/WebCore: Previously we were accumulating animations into the first animation element when there were multiple animations for a single element. This crashed if the first animation ended first because the first animation was prematurely cleaned up. This change accumulates animations into the first _contributing_ animation element. Tests: svg/animations/multiple-animations-ending.html svg/animations/svg-two-animate-elements-crash-expected.svg svg/animations/svg-two-animate-elements-crash.svg * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::updateAnimations): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::progress): LayoutTests: * svg/animations/multiple-animations-ending-expected.txt: Added. * svg/animations/multiple-animations-ending.html: Added. * svg/animations/resources/multiple-animations-ending.svg: Added. * svg/animations/script-tests/multiple-animations-ending.js: Added. (sample1): (sample2): (sample3): (sample4): (sample5): (sample6): (sample7): (sample8): (sample9): (sample10): (sample11): (sample12): (sample13): (sample14): (sample15): (sample16): (sample17): (sample18): (sample19): (sample20): (sample21): (sample22): (sample23): (executeTest): * svg/animations/svg-two-animate-elements-crash-expected.svg: Added. * svg/animations/svg-two-animate-elements-crash.svg: Added. Canonical link: https://commits.webkit.org/104610@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@117711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-05-20 20:58:04 +00:00
<svg xmlns="http://www.w3.org/2000/svg">
<!--
Test for WK86385 - This test passes if it doesn't crash.
This test has two animations running simultaneously where
the first animation ends before the second. At the end of
the test the green circle should be hidden behind a 100x100
green square in the top-left corner.
-->
<ellipse cx="50" cy="50" rx="20" ry="20" fill="green"/>
<rect width="100" height="100" x="0" y="0" fill="green"/>
</svg>