1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:18:11 +00:00

LibWeb: Run queued promise jobs after callbacks

We now run queued promise jobs after calling event handler, timer, and
requestAnimationFrame() callbacks - this is a bit ad-hoc, but I don't
want to switch LibWeb to use an event loop right now - this works just
fine, too.
We might want to revisit this at a later point and do tasks and
microtasks properly.
This commit is contained in:
Linus Groh 2021-04-01 22:13:42 +02:00 committed by Andreas Kling
parent f418115f1b
commit ade3adcc7a
3 changed files with 12 additions and 2 deletions

View file

@ -114,6 +114,8 @@ bool EventDispatcher::inner_invoke(Event& event, Vector<EventTarget::EventListen
vm.clear_exception();
// FIXME: Set legacyOutputDidListenersThrowFlag if given. (Only used by IndexedDB currently)
}
vm.run_queued_promise_jobs();
VERIFY(!vm.exception());
event.set_in_passive_listener(false);
if (is<Bindings::WindowObject>(global)) {