/* * Copyright (c) 2021-2022, Andreas Kling * Copyright (c) 2021-2023, Luke Wilde * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include namespace Web::Bindings { struct WebEngineCustomJobCallbackData final : public JS::JobCallback::CustomData { WebEngineCustomJobCallbackData(JS::Realm& incumbent_realm, OwnPtr active_script_context) : incumbent_realm(incumbent_realm) , active_script_context(move(active_script_context)) { } virtual ~WebEngineCustomJobCallbackData() override = default; GC::Ref incumbent_realm; OwnPtr active_script_context; }; HTML::Script* active_script(); enum class AgentType : u8 { SimilarOriginWindow, DedicatedWorker, SharedWorker, ServiceWorker, Worklet, }; void initialize_main_thread_vm(AgentType); JS::VM& main_thread_vm(); void queue_mutation_observer_microtask(DOM::Document const&); NonnullOwnPtr create_a_new_javascript_realm(JS::VM&, Function create_global_object, Function create_global_this_value); void invoke_custom_element_reactions(Vector>& element_queue); }