From 6a9c03482f6925227a0cbc9f3ede3c77b2b01c9c Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Sat, 4 Nov 2023 11:30:59 -0700 Subject: [PATCH] LibWeb: Implement AnimationEffect's active_boundary time getters --- .../LibWeb/Animations/AnimationEffect.cpp | 14 ++++++++++++++ .../Libraries/LibWeb/Animations/AnimationEffect.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp b/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp index 14d24ebeff..21f907d153 100644 --- a/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp +++ b/Userland/Libraries/LibWeb/Animations/AnimationEffect.cpp @@ -200,6 +200,20 @@ double AnimationEffect::active_duration() const return m_iteration_duration.get() * m_iteration_count; } +// https://www.w3.org/TR/web-animations-1/#before-active-boundary-time +double AnimationEffect::before_active_boundary_time() const +{ + // max(min(start delay, end time), 0) + return max(min(m_start_delay, end_time()), 0.0); +} + +// https://www.w3.org/TR/web-animations-1/#active-after-boundary-time +double AnimationEffect::after_active_boundary_time() const +{ + // max(min(start delay + active duration, end time), 0) + return max(min(m_start_delay + active_duration(), end_time()), 0.0); +} + AnimationEffect::AnimationEffect(JS::Realm& realm) : Bindings::PlatformObject(realm) { diff --git a/Userland/Libraries/LibWeb/Animations/AnimationEffect.h b/Userland/Libraries/LibWeb/Animations/AnimationEffect.h index da2d3b0bf4..5fead4d62a 100644 --- a/Userland/Libraries/LibWeb/Animations/AnimationEffect.h +++ b/Userland/Libraries/LibWeb/Animations/AnimationEffect.h @@ -98,6 +98,9 @@ public: Optional local_time() const; double active_duration() const; + double before_active_boundary_time() const; + double after_active_boundary_time() const; + protected: AnimationEffect(JS::Realm&);