From 54133c683d3c62c1561552b1f7e6b3d262ae8011 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 21 Apr 2020 23:49:09 +0200 Subject: [PATCH] LibWeb: Hack requestAnimationFrame() to provide a (very fake) timestamp --- Libraries/LibWeb/DOM/Window.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWeb/DOM/Window.cpp b/Libraries/LibWeb/DOM/Window.cpp index f5f48e2a5b..22f307a7c9 100644 --- a/Libraries/LibWeb/DOM/Window.cpp +++ b/Libraries/LibWeb/DOM/Window.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include namespace Web { @@ -81,10 +82,16 @@ void Window::set_timeout(JS::Function& callback, i32 interval) i32 Window::request_animation_frame(JS::Function& callback) { + // FIXME: This is extremely fake! + static double fake_timestamp = 0; + i32 link_id = GUI::DisplayLink::register_callback([handle = make_handle(&callback)](i32 link_id) { auto* function = const_cast(static_cast(handle.cell())); auto& interpreter = function->interpreter(); - interpreter.call(function); + JS::MarkedValueList arguments(interpreter.heap()); + arguments.append(JS::Value(fake_timestamp)); + fake_timestamp += 10; + interpreter.call(function, {}, move(arguments)); GUI::DisplayLink::unregister_callback(link_id); });