transition-property property and transition shorthand property doesn't accept "all...
authoralexis@webkit.org <alexis@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Mar 2013 18:49:29 +0000 (18:49 +0000)
committeralexis@webkit.org <alexis@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Mar 2013 18:49:29 +0000 (18:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=111201

Reviewed by Simon Fraser.

Source/WebCore:

Relax the parsing of transition-property to allow all, all as a value.
It is not very useful per say but it is possible by the spec and we
align with Firefox, IE and Opera.

Test: LayoutTests/transitions/transitions-parsing.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseAnimationProperty):

LayoutTests:

Updated the tests to cover the bug.

* transitions/transitions-parsing-expected.txt:
* transitions/transitions-parsing.html:

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

LayoutTests/ChangeLog
LayoutTests/transitions/transitions-parsing-expected.txt
LayoutTests/transitions/transitions-parsing.html
Source/WebCore/ChangeLog
Source/WebCore/css/CSSParser.cpp

index 0e07fbf..c03058c 100644 (file)
@@ -1,3 +1,15 @@
+2013-03-04  Alexis Menard  <alexis@webkit.org>
+
+        transition-property property and transition shorthand property doesn't accept "all, all".
+        https://bugs.webkit.org/show_bug.cgi?id=111201
+
+        Reviewed by Simon Fraser.
+
+        Updated the tests to cover the bug.
+
+        * transitions/transitions-parsing-expected.txt:
+        * transitions/transitions-parsing.html:
+
 2013-03-04  Ian Vollick  <vollick@chromium.org>
 
         ASSERTION FAILED: m_clipRectsCache->m_respectingOverflowClip[clipRectsType] == (clipRectsContext.respectOverflowClip == RespectOverflowClip) in RenderLayer.
index f73201d..32b8e4f 100644 (file)
@@ -16,6 +16,10 @@ PASS style.transitionProperty is 'all'
 PASS computedStyle.transitionProperty is 'all'
 PASS style.webkitTransitionProperty is 'all'
 PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is 'all, all'
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is 'all, all'
+PASS computedStyle.webkitTransitionProperty is 'all'
 PASS style.transitionProperty is 'background-position'
 PASS computedStyle.transitionProperty is 'background-position'
 PASS style.webkitTransitionProperty is 'background-position'
@@ -93,10 +97,6 @@ PASS style.transitionProperty is ''
 PASS computedStyle.transitionProperty is 'all'
 PASS style.webkitTransitionProperty is ''
 PASS computedStyle.webkitTransitionProperty is 'all'
-PASS style.transitionProperty is ''
-PASS computedStyle.transitionProperty is 'all'
-PASS style.webkitTransitionProperty is ''
-PASS computedStyle.webkitTransitionProperty is 'all'
 Valid transition-duration values.
 PASS computedStyle.transitionDuration is '0s'
 PASS computedStyle.webkitTransitionDuration is '0s'
@@ -395,6 +395,14 @@ PASS computedStyle.webkitTransitionDuration is '20s, 10s'
 PASS computedStyle.transitionDelay is '10s, 20s'
 PASS computedStyle.webkitTransitionDelay is '10s, 20s'
 PASS checkTransitionShorthandValue() is true
+PASS style.transition is 'all, all'
+PASS computedStyle.transition is 'all 0s ease 0s'
+PASS style.webkitTransition is 'all, all'
+PASS computedStyle.webkitTransition is 'all 0s ease 0s'
+PASS style.transition is 'all 20s ease-in 10s, all 20s ease-out'
+PASS computedStyle.transition is 'all 20s ease-out 0s'
+PASS style.webkitTransition is 'all 20s ease-in 10s, all 20s ease-out'
+PASS computedStyle.webkitTransition is 'all 20s ease-out 0s'
 PASS style.transition is 'opacity 20s ease-in 10s, all 20s ease-out'
 PASS computedStyle.transition is 'opacity 20s ease-in 10s, all 20s ease-out 0s'
 PASS style.webkitTransition is 'opacity 20s ease-in 10s, all 20s ease-out'
@@ -458,10 +466,6 @@ PASS style.transition is ''
 PASS computedStyle.transition is 'all 0s ease 0s'
 PASS style.webkitTransition is ''
 PASS computedStyle.webkitTransition is 'all 0s ease 0s'
-PASS style.transition is ''
-PASS computedStyle.transition is 'all 0s ease 0s'
-PASS style.webkitTransition is ''
-PASS computedStyle.webkitTransition is 'all 0s ease 0s'
 PASS successfullyParsed is true
 
 TEST COMPLETE
index be2def1..29620ed 100644 (file)
@@ -43,6 +43,12 @@ shouldBe("computedStyle.transitionProperty", "'all'");
 shouldBe("style.webkitTransitionProperty", "'all'");
 shouldBe("computedStyle.webkitTransitionProperty", "'all'");
 
+style.transitionProperty = "all, all";
+shouldBe("style.transitionProperty", "'all, all'");
+shouldBe("computedStyle.transitionProperty", "'all'");
+shouldBe("style.webkitTransitionProperty", "'all, all'");
+shouldBe("computedStyle.webkitTransitionProperty", "'all'");
+
 style.transitionProperty = "background-position";
 shouldBe("style.transitionProperty", "'background-position'");
 shouldBe("computedStyle.transitionProperty", "'background-position'");
@@ -160,12 +166,6 @@ shouldBe("computedStyle.transitionProperty", "'all'");
 shouldBe("style.webkitTransitionProperty", "''");
 shouldBe("computedStyle.webkitTransitionProperty", "'all'");
 
-style.transitionProperty = "all, all";
-shouldBe("style.transitionProperty", "''");
-shouldBe("computedStyle.transitionProperty", "'all'");
-shouldBe("style.webkitTransitionProperty", "''");
-shouldBe("computedStyle.webkitTransitionProperty", "'all'");
-
 style.transitionProperty = "";
 
 debug("Valid transition-duration values.");
@@ -623,6 +623,18 @@ shouldBe("computedStyle.transitionDelay", "'10s, 20s'");
 shouldBe("computedStyle.webkitTransitionDelay", "'10s, 20s'");
 shouldBe("checkTransitionShorthandValue()", "true");
 
+style.transition = "all, all";
+shouldBe("style.transition", "'all, all'");
+shouldBe("computedStyle.transition", "'all 0s ease 0s'");
+shouldBe("style.webkitTransition", "'all, all'");
+shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
+
+style.transition = "all 20s 10s ease-in, all ease-out 20s";
+shouldBe("style.transition", "'all 20s ease-in 10s, all 20s ease-out'");
+shouldBe("computedStyle.transition", "'all 20s ease-out 0s'");
+shouldBe("style.webkitTransition", "'all 20s ease-in 10s, all 20s ease-out'");
+shouldBe("computedStyle.webkitTransition", "'all 20s ease-out 0s'");
+
 style.transition = "ease-in opacity 20s 10s, all ease-out 20s";
 shouldBe("style.transition", "'opacity 20s ease-in 10s, all 20s ease-out'");
 shouldBe("computedStyle.transition", "'opacity 20s ease-in 10s, all 20s ease-out 0s'");
@@ -718,12 +730,6 @@ shouldBe("computedStyle.transition", "'all 0s ease 0s'");
 shouldBe("style.webkitTransition", "''");
 shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
 
-style.transition = "all, all";
-shouldBe("style.transition", "''");
-shouldBe("computedStyle.transition", "'all 0s ease 0s'");
-shouldBe("style.webkitTransition", "''");
-shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
-
 document.body.removeChild(testContainer);
 </script>
 <script src="../fast/js/resources/js-test-post.js"></script>
index 759d63a..9a90fd7 100644 (file)
@@ -1,3 +1,19 @@
+2013-03-04  Alexis Menard  <alexis@webkit.org>
+
+        transition-property property and transition shorthand property doesn't accept "all, all".
+        https://bugs.webkit.org/show_bug.cgi?id=111201
+
+        Reviewed by Simon Fraser.
+
+        Relax the parsing of transition-property to allow all, all as a value.
+        It is not very useful per say but it is possible by the spec and we
+        align with Firefox, IE and Opera.
+
+        Test: LayoutTests/transitions/transitions-parsing.html
+
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseAnimationProperty):
+
 2013-03-04  Min Qin  <qinmin@chromium.org>
 
         Don't apply page scale to clipRect if applyPageScaleFactorInCompositor is set to true
index 3f2f031..35476b0 100644 (file)
@@ -4445,8 +4445,6 @@ PassRefPtr<CSSValue> CSSParser::parseAnimationProperty(AnimationParseContext& co
     if (result)
         return cssValuePool().createIdentifierValue(result);
     if (equalIgnoringCase(value, "all")) {
-        if (context.hasSeenAnimationPropertyKeyword())
-            context.commitAnimationPropertyKeyword();
         context.sawAnimationPropertyKeyword();
         return cssValuePool().createIdentifierValue(CSSValueAll);
     }