[webkit-changes] [WebKit/WebKit] 71e209: [web-animations] correctly blend transform with it...

Antoine Quint noreply at github.com
Thu Nov 24 13:06:22 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 71e209c557898b92a216b8206bae5a86e1234830
      https://github.com/WebKit/WebKit/commit/71e209c557898b92a216b8206bae5a86e1234830
  Author: Antoine Quint <graouts at 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




More information about the webkit-changes mailing list