diff --git a/Userland/Libraries/LibWeb/HTML/AnimationFrameCallbackDriver.h b/Userland/Libraries/LibWeb/HTML/AnimationFrameCallbackDriver.h index 05bdc5daac..3c5b07811a 100644 --- a/Userland/Libraries/LibWeb/HTML/AnimationFrameCallbackDriver.h +++ b/Userland/Libraries/LibWeb/HTML/AnimationFrameCallbackDriver.h @@ -43,11 +43,11 @@ struct AnimationFrameCallbackDriver { return true; } - void run() + void run(double now) { auto taken_callbacks = move(m_callbacks); for (auto& [id, callback] : taken_callbacks) - callback(id); + callback(now); } bool has_callbacks() const diff --git a/Userland/Libraries/LibWeb/HTML/Window.cpp b/Userland/Libraries/LibWeb/HTML/Window.cpp index 50f4c1394c..fbe87a7e24 100644 --- a/Userland/Libraries/LibWeb/HTML/Window.cpp +++ b/Userland/Libraries/LibWeb/HTML/Window.cpp @@ -76,10 +76,10 @@ namespace Web::HTML { JS_DEFINE_ALLOCATOR(Window); // https://html.spec.whatwg.org/#run-the-animation-frame-callbacks -void run_animation_frame_callbacks(DOM::Document& document, double) +void run_animation_frame_callbacks(DOM::Document& document, double now) { // FIXME: Bring this closer to the spec. - document.window().animation_frame_callback_driver().run(); + document.window().animation_frame_callback_driver().run(now); } class IdleCallback : public RefCounted { @@ -1409,8 +1409,7 @@ double Window::device_pixel_ratio() const i32 Window::request_animation_frame(WebIDL::CallbackType& callback) { // FIXME: Make this fully spec compliant. Currently implements a mix of 'requestAnimationFrame()' and 'run the animation frame callbacks'. - auto now = HighResolutionTime::unsafe_shared_current_time(); - return m_animation_frame_callback_driver.add([this, now, callback = JS::make_handle(callback)](auto) { + return m_animation_frame_callback_driver.add([this, callback = JS::make_handle(callback)](double now) { // 3. Invoke callback, passing now as the only argument, and if an exception is thrown, report the exception. auto result = WebIDL::invoke_callback(*callback, {}, JS::Value(now)); if (result.is_error())