This patch adds an additional mochitest for specifically targetting CSS
Animations that run on the compositor thread. The content of the test mimicks
test_animations.html but using properties whose animations are expected to run
on the compositor thread.
NOTE: The tests in test_animations.html fail without the patch; the
tests in test_shorthand_property_getters.html are only tangentially
related and pass both with and without the patch.
This implements my proposal in
http://lists.w3.org/Archives/Public/www-style/2011Apr/0381.html and
http://lists.w3.org/Archives/Public/www-style/2011Apr/0387.html . I
think it was a serious mistake to implement what the spec says, and I'm
fixing that mistake so that we have a chance to change the spec.
In other words, when an @keyframes rule has two key selectors at the
same time, the later one no longer overrides the entirety of the earlier
one. The overriding is done for each property that's in the later rule.
(And the -moz-animation-timing-function is taken only from the keyframe
actually used for the given property; if there's no declaration there
then the computed value of the property is used.)
The test for @keyframes cascade fails without the patch; the test for
@keyframes cascade2 tests behavior that works both before and after the
patch.
This inverts the relationship between segments and properties in the
animation data structures: now each property has a set of segments,
since the segments differ between properties.
Furthermore, we now handle inability to interpolate between values by
dropping the entire property rather than dropping a single segment.