Branch: refs/heads/webkitglib/2.54
  Home:   https://github.com/WebKit/WebKit
  Commit: 6fc5f640beedd0c5fdb28bd47fbd214d3c328d1b
      
https://github.com/WebKit/WebKit/commit/6fc5f640beedd0c5fdb28bd47fbd214d3c328d1b
  Author: Vitaly Dyachkov <[email protected]>
  Date:   2026-09-09 (Wed, 09 Sep 2026)

  Changed paths:
    A 
LayoutTests/webanimations/accelerated-animation-not-invalidated-by-sibling-timeline-ticks-expected.txt
    A 
LayoutTests/webanimations/accelerated-animation-not-invalidated-by-sibling-timeline-ticks.html
    M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  -----------
  Cherry-pick 320647@main (1508d59b56eb). 
https://bugs.webkit.org/show_bug.cgi?id=323436

    [Web Animations] Fully accelerated animations unnecessarily invalidate 
style while a non-accelerated animation is running
    https://bugs.webkit.org/show_bug.cgi?id=323436

    Reviewed by Antoine Quint.

    When a page has at least one animation that cannot run on the
    compositor, that animation forces the page to process animation updates
    on every frame. While this happens, other animations on the same page
    that are otherwise running entirely on the compositor have their style
    needlessly recalculated on every update too, and in some cases this can
    force layout.

    `KeyframeEffect::animationDidTick()` unconditionally invalidated the
    target's style on every tick, even for effects that were fully
    accelerated and confirmed running on the compositor, whenever some other
    animation on the shared timeline forced that tick.

    Skip `invalidate()` when the effect is completely accelerated, confirmed
    running accelerated, and its phase hasn't changed since it was last
    applied.

    Progress-based (scroll/view) timeline effects are excluded from this
    fast path, since their current time is driven by input rather than
    tracked autonomously by the compositor, and can change within the same
    phase.

    Test: 
webanimations/accelerated-animation-not-invalidated-by-sibling-timeline-ticks.html

    * Source/WebCore/animation/KeyframeEffect.cpp:
    (WebCore::KeyframeEffect::animationDidTick):
    * 
LayoutTests/webanimations/accelerated-animation-not-invalidated-by-sibling-timeline-ticks-expected.txt:
 Added.
    * 
LayoutTests/webanimations/accelerated-animation-not-invalidated-by-sibling-timeline-ticks.html:
 Added.

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

Canonical link: https://commits.webkit.org/317695.245@webkitglib/2.54



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to