[webkit-changes] [WebKit/WebKit] 452ca1: [web-animations] effect targeting an element with ...

Antoine Quint noreply at github.com
Wed Dec 6 09:35:34 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 452ca171058f6b23dfd986c79b8093939c9b32ce
      https://github.com/WebKit/WebKit/commit/452ca171058f6b23dfd986c79b8093939c9b32ce
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-12-06 (Wed, 06 Dec 2023)

  Changed paths:
    A LayoutTests/webanimations/scheduling-of-animation-with-display-contents-expected.txt
    A LayoutTests/webanimations/scheduling-of-animation-with-display-contents.html
    A LayoutTests/webanimations/scheduling-of-animation-without-renderer-expected.txt
    A LayoutTests/webanimations/scheduling-of-animation-without-renderer.html
    M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  -----------
  [web-animations] effect targeting an element with `display: none` should not schedule immediate animation resolution (affects reddit.com)
https://bugs.webkit.org/show_bug.cgi?id=265934
rdar://119191813

Reviewed by Simon Fraser and Antti Koivisto.

Typically, effects that are in their active phase (ie. their current time is changing from frame
to frame (see https://drafts.csswg.org/web-animations-1/#animation-effect-active-phase for details)
will schedule immediate animation resolution. However there are exceptions, for instance we don't
schedule immediate animation resolution if the effect does not affect styles or if the effect is
running accelerated.

We now also handle the case where an effect's target does not have a renderer, as would be the case
if an element has a `display: none` style, making sure to also handle the `display: contents` case
where a renderer is not created for the target element, but will for its children.

This helps power usage on reddit.com which has JS-originated animations running infinitely that are
targeting elements in shadow roots that eventually lose their renderer.

* LayoutTests/webanimations/scheduling-of-animation-with-display-contents-expected.txt: Added.
* LayoutTests/webanimations/scheduling-of-animation-with-display-contents.html: Added.
* LayoutTests/webanimations/scheduling-of-animation-without-renderer-expected.txt: Added.
* LayoutTests/webanimations/scheduling-of-animation-without-renderer.html: Added.
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::ticksContinouslyWhileActive const):

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




More information about the webkit-changes mailing list