/* * Copyright (c) 2023, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #include namespace Web::HTML { HashTable WebWorkerClient::s_all_clients; void WebWorkerClient::die() { // FIXME: Notify WorkerAgent that the worker is dead } void WebWorkerClient::did_close_worker() { if (on_worker_close) on_worker_close(); } void WebWorkerClient::did_fail_loading_worker_script() { if (on_worker_script_load_failure) on_worker_script_load_failure(); } void WebWorkerClient::did_report_worker_exception(String message, String filename, u32 lineno, u32 colno) { if (on_worker_exception) on_worker_exception(move(message), move(filename), lineno, colno); } Messages::WebWorkerClient::DidRequestCookieResponse WebWorkerClient::did_request_cookie(URL::URL url, HTTP::Cookie::Source source) { if (on_request_cookie) return on_request_cookie(url, source); return HTTP::Cookie::VersionedCookie {}; } void WebWorkerClient::did_post_broadcast_channel_message(Web::HTML::BroadcastChannelMessage message) { if (on_post_broadcast_channel_message) on_post_broadcast_channel_message(move(message)); } Messages::WebWorkerClient::RequestWorkerAgentResponse WebWorkerClient::request_worker_agent(Web::Bindings::AgentType worker_type) { if (on_request_worker_agent) return on_request_worker_agent(worker_type); return { IPC::TransportHandle {}, IPC::TransportHandle {}, IPC::TransportHandle {} }; } WebWorkerClient::WebWorkerClient(NonnullOwnPtr transport) : IPC::ConnectionToServer(*this, move(transport)) { s_all_clients.set(this); } WebWorkerClient::~WebWorkerClient() { s_all_clients.remove(this); } }