/* * Copyright (c) 2024, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::HTML { class DedicatedWorkerGlobalScope : public WorkerGlobalScope , public Bindings::DedicatedWorkerGlobalScopeGlobalMixin { WEB_PLATFORM_OBJECT(DedicatedWorkerGlobalScope, WorkerGlobalScope); GC_DECLARE_ALLOCATOR(DedicatedWorkerGlobalScope); public: virtual ~DedicatedWorkerGlobalScope() override; WebIDL::ExceptionOr post_message(JS::Value message, StructuredSerializeOptions const&); WebIDL::ExceptionOr post_message(JS::Value message, Vector> const& transfer); void close(); WebIDL::CallbackType* onmessage(); void set_onmessage(WebIDL::CallbackType* callback); WebIDL::CallbackType* onmessageerror(); void set_onmessageerror(WebIDL::CallbackType* callback); virtual void finalize() override; private: DedicatedWorkerGlobalScope(JS::Realm&, GC::Ref); virtual void initialize_web_interfaces_impl() override; }; }