haikuwebkit/LayoutTests/svg/animations/use-animate-transform-and-p...

69 lines
2.3 KiB
Plaintext
Raw Permalink Normal View History

Source/WebCore: Remove unnecessary codepaths in SMILTimeContainer::updateAnimations https://bugs.webkit.org/show_bug.cgi?id=96224 Reviewed by Nikolas Zimmermann. This change removes two sources of unnecessary code in SMILTimeContainer::updateAnimations: 1) After r117711 we now accumulate the result of multiple animations into the first _contributing_ animation element. As a result it is no longer necessary to track both which elements are contributing AND which elements we are storing results into. Both cases are now handled together with resultsElements. 2) r32044 added a second sort of the animation elements in order to process animateTransform last. This change was added 4 years ago, before we correctly handled <use> and the instance tree, and I think the extra sort is no longer necessary. A test has been added to ensure this is the case. This change also does a minor cleanup of resultsElements. Previously, we added animation elements to resultsElements and then removed them if the animation element did not contribute. After this change, we only add to resultsElements (no more add-then-remove). Test: svg/animations/use-animate-transform-and-position.html * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::sortByPriority): (WebCore::SMILTimeContainer::updateAnimations): LayoutTests: Remove unnecessary work in SMILTimeContainer::updateAnimations https://bugs.webkit.org/show_bug.cgi?id=96224 Reviewed by Nikolas Zimmermann. This change should have no functional differences but a test is being added to show that. SMILTimeContainer::updateAnimations contained a comment explaining why a animateTransform needed to be processed last but that is no longer the case (as the test shows). * svg/animations/script-tests/use-animate-transform-and-position.js: Added. (sample1): (sample2): (sample3): (sample4): (sample5): (executeTest): * svg/animations/use-animate-transform-and-position-expected.txt: Added. * svg/animations/use-animate-transform-and-position.html: Added. Canonical link: https://commits.webkit.org/114224@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@128131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-09-11 00:07:26 +00:00
SVG 1.1 dynamic animation tests
Test animation of use element where the instance is also animated with animate and animateTransform
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS rect.x.animVal.value is 10
PASS rect.x.baseVal.value is 10
PASS rect.y.animVal.value is 10
PASS rect.y.baseVal.value is 10
PASS use.x.animVal.value is 0
PASS use.x.baseVal.value is 0
PASS use.y.animVal.value is 0
PASS use.y.baseVal.value is 0
PASS use.transform.baseVal.numberOfItems is 0
PASS rect.x.animVal.value is 15
PASS rect.x.baseVal.value is 10
PASS rect.y.animVal.value is 10
PASS rect.y.baseVal.value is 10
PASS use.x.animVal.value is 0
PASS use.x.baseVal.value is 0
PASS use.y.animVal.value is 0
PASS use.y.baseVal.value is 0
PASS use.transform.animVal.numberOfItems is 1
PASS use.transform.baseVal.numberOfItems is 0
PASS use.transform.animVal.getItem(0).matrix.e is 0
PASS use.transform.animVal.getItem(0).matrix.f is 115
PASS rect.x.animVal.value is 25
PASS rect.x.baseVal.value is 10
PASS rect.y.animVal.value is 10
PASS rect.y.baseVal.value is 10
PASS use.x.animVal.value is 5
PASS use.x.baseVal.value is 0
PASS use.y.animVal.value is 0
PASS use.y.baseVal.value is 0
PASS use.transform.animVal.numberOfItems is 1
PASS use.transform.baseVal.numberOfItems is 0
PASS use.transform.animVal.getItem(0).matrix.e is 0
PASS use.transform.animVal.getItem(0).matrix.f is 125
PASS rect.x.animVal.value is 35
PASS rect.x.baseVal.value is 10
PASS rect.y.animVal.value is 10
PASS rect.y.baseVal.value is 10
PASS use.x.animVal.value is 15
PASS use.x.baseVal.value is 0
PASS use.y.animVal.value is 0
PASS use.y.baseVal.value is 0
PASS use.transform.animVal.numberOfItems is 1
PASS use.transform.baseVal.numberOfItems is 0
PASS use.transform.animVal.getItem(0).matrix.e is 0
PASS use.transform.animVal.getItem(0).matrix.f is 128.5
PASS rect.x.animVal.value is 45
PASS rect.x.baseVal.value is 10
PASS rect.y.animVal.value is 10
PASS rect.y.baseVal.value is 10
PASS use.x.animVal.value is 25
PASS use.x.baseVal.value is 0
PASS use.y.animVal.value is 0
PASS use.y.baseVal.value is 0
PASS use.transform.animVal.numberOfItems is 1
PASS use.transform.baseVal.numberOfItems is 0
PASS use.transform.animVal.getItem(0).matrix.e is 0
PASS use.transform.animVal.getItem(0).matrix.f is 125.5
PASS successfullyParsed is true
TEST COMPLETE