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&);