If a CSS animations is specified using the shorthand in one rule, and a later rule specifies a longhand property, then the animation uses the wrong timing-function. See testcase.
Created attachment 51543 [details] Testcase
Created attachment 51548 [details] Fixed testcase
Created attachment 51553 [details] Another testcase This testcase shows how it works fine if no script is involved.
The issue is that CSSStyleSelector::keyframeStylesForAnimation() is called with the old render style (which just contains the -webkit-animation-iteration-count:, and thus has the default timing function) here: #3 WebCore::CSSStyleSelector::keyframeStylesForAnimation (this=0x107087c00, e=0x1066f9fd0, elementStyle=0x1066f99a0, list=@0x1066f2068) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/css/CSSStyleSelector.cpp:1341 #4 0x00000001025ec497 in WebCore::KeyframeAnimation::KeyframeAnimation (this=0x1066f2000, animation=0x1066f3700, renderer=0x1066f9268, index=0, compAnim=0x1066f8bc0, unanimatedStyle=0x1066f99a0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/animation/KeyframeAnimation.cpp:52 #5 0x0000000101f6c43b in WebCore::KeyframeAnimation::create (animation=0x1066f3700, renderer=0x1066f9268, index=0, compositeAnimation=0x1066f8bc0, unanimatedStyle=0x1066f99a0) at KeyframeAnimation.h:46 #6 0x0000000101f6693c in WebCore::CompositeAnimation::updateKeyframeAnimations (this=0x1066f8bc0, renderer=0x1066f9268, currentStyle=0x1066f99a0, targetStyle=0x1066f30d0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/animation/CompositeAnimation.cpp:236 #7 0x0000000101f672f5 in WebCore::CompositeAnimation::animate (this=0x1066f8bc0, renderer=0x1066f9268, currentStyle=0x1066f99a0, targetStyle=0x1066f30d0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/animation/CompositeAnimation.cpp:267 #8 0x0000000101ebe36c in WebCore::AnimationController::updateAnimations (this=0x11b816528, renderer=0x1066f9268, newStyle=0x1066f30d0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/animation/AnimationController.cpp:485 #9 0x000000010275e7b1 in WebCore::RenderObject::setAnimatableStyle (this=0x1066f9268, style=@0x7fff5fbfd3c0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderObject.cpp:1502
Created attachment 51657 [details] Testcase with color
Created attachment 51664 [details] Patch
Comment on attachment 51664 [details] Patch r=me
http://trac.webkit.org/changeset/56562