/* * Copyright (c) 2023, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include namespace Web::HTML { struct WorkerOptions { String type { "classic"_string }; String credentials { "same-origin"_string }; String name { String {} }; }; struct WorkerAgent : JS::Cell { JS_CELL(Agent, JS::Cell); JS_DECLARE_ALLOCATOR(WorkerAgent); WorkerAgent(AK::URL url, WorkerOptions const& options); RefPtr m_worker_ipc; private: WorkerOptions m_worker_options; AK::URL m_url; // TODO: associate with MessagePorts? int m_message_port_fd; }; }