[webkit-changes] [WebKit/WebKit] c35a74: REGRESSION (262875 at main / iOS 17): fill: 'both' no...
Antoine Quint
noreply at github.com
Sat Jun 24 11:05:49 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c35a742731035c158245080919ce8589ddddf5e1
https://github.com/WebKit/WebKit/commit/c35a742731035c158245080919ce8589ddddf5e1
Author: Antoine Quint <graouts at webkit.org>
Date: 2023-06-24 (Sat, 24 Jun 2023)
Changed paths:
A LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-expected.html
A LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-ref.html
A LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect.html
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeEffectStack.cpp
Log Message:
-----------
REGRESSION (262875 at main / iOS 17): fill: 'both' not respected with animation
https://bugs.webkit.org/show_bug.cgi?id=257861
rdar://110559121
Reviewed by Dean Jackson.
In 262875 at main we switched to a model where we update all the accelerated effects in the effect stack
when one of the accelerated effects changes. However, we failed to identify the case where an accelerated
effect was removed from the effect stack, either explicitly or through the removal mechanism of the Web
Animations API (https://drafts.csswg.org/web-animations-1/#removing-replaced-animations).
We now have a new `KeyframeEffect::wasRemovedFromStack()` that we call when an effect is removed from the
effect stack, which always goes through `KeyframeEffectStack::removeEffect()`. When this happens we add
a `Stop` accelerated action and commit it to the GraphicsLayer straight away so that the accelerated animation
is removed.
* LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect.html: Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::wasRemovedFromStack):
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::removeEffect):
Canonical link: https://commits.webkit.org/265498@main
More information about the webkit-changes
mailing list