зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1397122 - Handle values as valid in single transition shorthand even if the transition-property is 'none'. r=xidorn
A single transition value that includes 'none' for transition-property is valid, so we should store whole specified values (if it's valid). Whereas, the spec [1] clearly says for the case where there are multiple entries; If there is more than one <single-transition> in the shorthand, and any of the transitions has none as the <single-transition-property>, then the declaration is invalid. 'none 2s linear 2s' is a test case for the former, '1s width, 2s none' is a test case for the latter. Note that with this patch, 'transition: none' is serialized as 'none 0s ease 0s' instead of 'none' but it matches Gecko. [1] https://drafts.csswg.org/css-transitions/#single-transition MozReview-Commit-ID: 3o3z5GFyMqh --HG-- extra : rebase_source : c553af804124c0c76554fb8ad007e78e2813d321
This commit is contained in:
Родитель
1798e97abb
Коммит
ad4feb676c
|
@ -4173,7 +4173,7 @@ var gCSSProperties = {
|
|||
type: CSS_TYPE_TRUE_SHORTHAND,
|
||||
subproperties: [ "transition-property", "transition-duration", "transition-timing-function", "transition-delay" ],
|
||||
initial_values: [ "all 0s ease 0s", "all", "0s", "0s 0s", "ease" ],
|
||||
other_values: [ "all 0s cubic-bezier(0.25, 0.1, 0.25, 1.0) 0s", "width 1s linear 2s", "width 1s 2s linear", "width linear 1s 2s", "linear width 1s 2s", "linear 1s width 2s", "linear 1s 2s width", "1s width linear 2s", "1s width 2s linear", "1s 2s width linear", "1s linear width 2s", "1s linear 2s width", "1s 2s linear width", "width linear 1s", "width 1s linear", "linear width 1s", "linear 1s width", "1s width linear", "1s linear width", "1s 2s width", "1s width 2s", "width 1s 2s", "1s 2s linear", "1s linear 2s", "linear 1s 2s", "width 1s", "1s width", "linear 1s", "1s linear", "1s 2s", "2s 1s", "width", "linear", "1s", "height", "2s", "ease-in-out", "2s ease-in", "opacity linear", "ease-out 2s", "2s color, 1s width, 500ms height linear, 1s opacity 4s cubic-bezier(0.0, 0.1, 1.0, 1.0)", "1s \\32width linear 2s", "1s -width linear 2s", "1s -\\32width linear 2s", "1s \\32 0width linear 2s", "1s -\\32 0width linear 2s", "1s \\2width linear 2s", "1s -\\2width linear 2s", "2s, 1s width", "1s width, 2s", "2s all, 1s width", "1s width, 2s all", "2s all, 1s width", "2s width, 1s all", "3s --my-color" ],
|
||||
other_values: [ "all 0s cubic-bezier(0.25, 0.1, 0.25, 1.0) 0s", "width 1s linear 2s", "width 1s 2s linear", "width linear 1s 2s", "linear width 1s 2s", "linear 1s width 2s", "linear 1s 2s width", "1s width linear 2s", "1s width 2s linear", "1s 2s width linear", "1s linear width 2s", "1s linear 2s width", "1s 2s linear width", "width linear 1s", "width 1s linear", "linear width 1s", "linear 1s width", "1s width linear", "1s linear width", "1s 2s width", "1s width 2s", "width 1s 2s", "1s 2s linear", "1s linear 2s", "linear 1s 2s", "width 1s", "1s width", "linear 1s", "1s linear", "1s 2s", "2s 1s", "width", "linear", "1s", "height", "2s", "ease-in-out", "2s ease-in", "opacity linear", "ease-out 2s", "2s color, 1s width, 500ms height linear, 1s opacity 4s cubic-bezier(0.0, 0.1, 1.0, 1.0)", "1s \\32width linear 2s", "1s -width linear 2s", "1s -\\32width linear 2s", "1s \\32 0width linear 2s", "1s -\\32 0width linear 2s", "1s \\2width linear 2s", "1s -\\2width linear 2s", "2s, 1s width", "1s width, 2s", "2s all, 1s width", "1s width, 2s all", "2s all, 1s width", "2s width, 1s all", "3s --my-color", "none", "none 2s linear 2s" ],
|
||||
invalid_values: [ "1s width, 2s none", "2s none, 1s width", "2s inherit", "inherit 2s", "2s width, 1s inherit", "2s inherit, 1s width", "2s initial", "1s width,,2s color", "1s width, ,2s color", "bounce 1s cubic-bezier(0, rubbish) 2s", "bounce 1s steps(rubbish) 2s" ]
|
||||
},
|
||||
"transition-delay": {
|
||||
|
|
|
@ -208,6 +208,8 @@ e.setAttribute("style", "transition-property: color, width; transition-duration:
|
|||
is(e.style.transition, "", "should not have transition shorthand (lists different lengths)");
|
||||
e.setAttribute("style", "transition-property: color, width; transition-duration: 1s, 200ms; transition-timing-function: ease-in, linear; transition-delay: 0s, 1s, 0s");
|
||||
is(e.style.transition, "", "should not have transition shorthand (lists different lengths)");
|
||||
e.setAttribute("style", "transition: color, width; transition-delay: 0s");
|
||||
is(e.style.transition, "", "should not have transition shorthand (lists different lengths)");
|
||||
|
||||
e.setAttribute("style", "animation-name: bounce, roll; animation-duration: 1s, 200ms; animation-timing-function: ease-in, linear; animation-delay: 0s, 1s; animation-direction: normal, reverse; animation-fill-mode: forwards, backwards; animation-iteration-count: infinite, 2; animation-play-state: paused, running;");
|
||||
isnot(e.style.animation, "", "should have animation shorthand (lists same length)");
|
||||
|
|
Загрузка…
Ссылка в новой задаче