[Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations...
authorgraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 20 Jun 2018 11:48:39 +0000 (11:48 +0000)
committergraouts@webkit.org <graouts@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 20 Jun 2018 11:48:39 +0000 (11:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183841
<rdar://problem/40998101>

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Mark progressions in the Mozilla CSS Transitions and CSS Animations tests.

* css-animations/test_element-get-animations-expected.txt:
* css-transitions/test_element-get-animations-expected.txt:

Source/WebCore:

We must ignore CSS Animations with "animation-name: none".

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):

LayoutTests:

This test now passes reliably.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233010 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/imported/mozilla/ChangeLog
LayoutTests/imported/mozilla/css-animations/test_element-get-animations-expected.txt
LayoutTests/imported/mozilla/css-transitions/test_element-get-animations-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/animation/AnimationTimeline.cpp

index ffb7943..366eddc 100644 (file)
@@ -1,3 +1,15 @@
+2018-06-20  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations.html pass reliably
+        https://bugs.webkit.org/show_bug.cgi?id=183841
+        <rdar://problem/40998101>
+
+        Reviewed by Dean Jackson.
+
+        This test now passes reliably.
+
+        * TestExpectations:
+
 2018-06-19  Antoine Quint  <graouts@apple.com>
 
         [Web Animations] Make imported/mozilla/css-animations/test_pseudoElement-get-animations.html pass reliably
index 9a0ee3d..dc471b2 100644 (file)
@@ -1932,7 +1932,6 @@ webkit.org/b/183834 imported/mozilla/css-animations/test_animation-starttime.htm
 webkit.org/b/183836 imported/mozilla/css-animations/test_animations-dynamic-changes.html [ Pass Failure Timeout ]
 webkit.org/b/183837 imported/mozilla/css-transitions/test_document-get-animations.html [ Pass Failure Timeout ]
 webkit.org/b/183840 imported/mozilla/css-animations/test_document-get-animations.html [ Pass Failure Timeout ]
-webkit.org/b/183841 imported/mozilla/css-transitions/test_element-get-animations.html [ Pass Failure Timeout ]
 webkit.org/b/183844 imported/mozilla/css-animations/test_element-get-animations.html [ Pass Failure Timeout ]
 webkit.org/b/183846 imported/mozilla/css-transitions/test_pseudoElement-get-animations.html [ Pass Failure Timeout ]
 webkit.org/b/183847 imported/mozilla/css-animations/test_event-order.html [ Pass Failure Timeout ]
index df63dce..773ccc1 100644 (file)
@@ -1,3 +1,16 @@
+2018-06-20  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations.html pass reliably
+        https://bugs.webkit.org/show_bug.cgi?id=183841
+        <rdar://problem/40998101>
+
+        Reviewed by Dean Jackson.
+
+        Mark progressions in the Mozilla CSS Transitions and CSS Animations tests.
+
+        * css-animations/test_element-get-animations-expected.txt:
+        * css-transitions/test_element-get-animations-expected.txt:
+
 2018-06-19  Antoine Quint  <graouts@apple.com>
 
         [Web Animations] Make imported/mozilla/css-animations/test_pseudoElement-get-animations.html pass reliably
index 6ab9336..abfa296 100644 (file)
@@ -6,7 +6,7 @@ PASS getAnimations for multi-property animations
 PASS getAnimations for both CSS Animations and CSS Transitions at once 
 PASS getAnimations for CSS Animations that have finished 
 PASS getAnimations for CSS Animations that have finished but are forwards filling 
-FAIL getAnimations for CSS Animations with animation-name: none assert_equals: getAnimations returns an empty sequence for an element with animation-name: none expected 0 but got 1
+PASS getAnimations for CSS Animations with animation-name: none 
 FAIL getAnimations for CSS Animations with animation-name: missing assert_equals: getAnimations returns an empty sequence for an element with animation-name: missing expected 0 but got 1
 FAIL getAnimations for CSS Animations where the @keyframes rule is added later assert_equals: getAnimations initally only returns Animations for CSS Animations whose animation-name is found expected 1 but got 2
 PASS getAnimations for CSS Animations with duplicated animation-name 
index 9c796e0..0ce5344 100644 (file)
@@ -2,7 +2,7 @@
 PASS getAnimations for CSS Transitions 
 PASS getAnimations returns CSSTransition objects for CSS Transitions 
 PASS getAnimations for CSS Transitions that have finished 
-FAIL getAnimations for transition on non-animatable property assert_equals: getAnimations returns an empty sequence for a transition of a non-animatable property expected 0 but got 1
+PASS getAnimations for transition on non-animatable property 
 PASS getAnimations for transition on unsupported property 
 PASS getAnimations sorts simultaneous transitions by name 
 PASS getAnimations sorts transitions by when they were generated 
index cbcea18..d9d658f 100644 (file)
@@ -1,3 +1,16 @@
+2018-06-20  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations.html pass reliably
+        https://bugs.webkit.org/show_bug.cgi?id=183841
+        <rdar://problem/40998101>
+
+        Reviewed by Dean Jackson.
+
+        We must ignore CSS Animations with "animation-name: none".
+
+        * animation/AnimationTimeline.cpp:
+        (WebCore::AnimationTimeline::updateCSSAnimationsForElement):
+
 2018-06-20  Miguel Gomez  <magomez@igalia.com>
 
         [GTK][ThreadedRendering][Nicosia] Themed elements cannot be rendered using threaded rendering
index 71efa88..3f69cb1 100644 (file)
@@ -204,13 +204,15 @@ void AnimationTimeline::updateCSSAnimationsForElement(Element& element, const Re
     if (currentStyle && currentStyle->hasAnimations() && afterChangeStyle.hasAnimations() && *(currentStyle->animations()) == *(afterChangeStyle.animations()))
         return;
 
+    static NeverDestroyed<const String> animationNameNone(MAKE_STATIC_STRING_IMPL("none"));
+
     // First, compile the list of animation names that were applied to this element up to this point.
     HashSet<String> namesOfPreviousAnimations;
     if (currentStyle && currentStyle->hasAnimations()) {
         auto* previousAnimations = currentStyle->animations();
         for (size_t i = 0; i < previousAnimations->size(); ++i) {
             auto& previousAnimation = previousAnimations->animation(i);
-            if (previousAnimation.isValidAnimation())
+            if (previousAnimation.isValidAnimation() && previousAnimation.name() != animationNameNone)
                 namesOfPreviousAnimations.add(previousAnimation.name());
         }
     }
@@ -229,7 +231,7 @@ void AnimationTimeline::updateCSSAnimationsForElement(Element& element, const Re
                 // created a CSSAnimation object for it and need to ensure that this CSSAnimation is backed by the current
                 // animation object for this animation name.
                 cssAnimationsByName.get(name)->setBackingAnimation(currentAnimation);
-            } else if (currentAnimation.isValidAnimation()) {
+            } else if (currentAnimation.isValidAnimation() && name != animationNameNone) {
                 // Otherwise we are dealing with a new animation name and must create a CSSAnimation for it.
                 cssAnimationsByName.set(name, CSSAnimation::create(element, currentAnimation, currentStyle, afterChangeStyle));
             }