Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 71e209c557898b92a216b8206bae5a86e1234830
      
https://github.com/WebKit/WebKit/commit/71e209c557898b92a216b8206bae5a86e1234830
  Author: Antoine Quint <grao...@apple.com>
  Date:   2022-11-24 (Thu, 24 Nov 2022)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt
    M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  -----------
  [web-animations] correctly blend transform with iterationComposite is set to 
"accumulate"
https://bugs.webkit.org/show_bug.cgi?id=248312

Reviewed by Antti Koivisto.

When animating transform, we pre-compute the number of matching transform 
operations.
However, in the case of `iterationComposite` we end up blending the "to" value 
with
itself multiple times with an accumulation composite operation (per
https://drafts.csswg.org/web-animations-2/#the-effect-value-of-a-keyframe-animation-effect).

Indeed, when computing the final keyframe, we accumulate the end keyframe onto 
itself
to match the current iteration interval. In that case, since we're blending the 
same
value with itself, the pre-computed matching prefix is incorrect, so we use 
std::nullopt
instead to indicate that the operations fully match.

* 
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):

Canonical link: https://commits.webkit.org/256996@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to