From 371ddf9dc3757f1ee3bb154e8e4f2f9fe27469d8 Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Sat, 2 Nov 2024 22:16:35 +1300 Subject: [PATCH] LibWeb: Don't assume a Window global object in HostEnqueuePromiseJob This was causing crashes in Worker test cases making use of promises, fixing a regression introduced in da18551f1005300d1b80761462fabe34e142e5d0 --- Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp b/Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp index e02cf2db333..d561e1f66db 100644 --- a/Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp +++ b/Userland/Libraries/LibWeb/Bindings/MainThreadVM.cpp @@ -279,7 +279,7 @@ ErrorOr initialize_main_thread_vm(HTML::EventLoop::Type type) auto* script = active_script(); auto& heap = realm ? realm->heap() : vm.heap(); - HTML::queue_a_microtask(script ? &verify_cast(script->realm().global_object()).associated_document() : nullptr, JS::create_heap_function(heap, [&vm, realm, job = move(job), script_or_module = move(script_or_module)] { + HTML::queue_a_microtask(script ? script->settings_object().responsible_document().ptr() : nullptr, JS::create_heap_function(heap, [&vm, realm, job = move(job), script_or_module = move(script_or_module)] { // The dummy execution context has to be kept up here to keep it alive for the duration of the function. OwnPtr dummy_execution_context;