mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-05 06:32:30 +02:00
This commit provides IPC endpoint to WebWorker processes that allows new WebWorker processes to be requested (just like what WebContent has). This is implemented by proxying the request_worker_agent call from WebWorker through WebContent to LibWebView. This allows the WPT test... http://wpt.live/referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-classic.http.html ...to pass, and the same is likely true for similar tests.
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2023, Andrew Kaster <akaster@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibCore/System.h>
|
|
#include <LibWeb/Worker/WebWorkerClient.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
void WebWorkerClient::die()
|
|
{
|
|
// FIXME: Notify WorkerAgent that the worker is dead
|
|
}
|
|
|
|
void WebWorkerClient::did_close_worker()
|
|
{
|
|
if (on_worker_close)
|
|
on_worker_close();
|
|
}
|
|
|
|
Messages::WebWorkerClient::DidRequestCookieResponse WebWorkerClient::did_request_cookie(URL::URL url, Cookie::Source source)
|
|
{
|
|
if (on_request_cookie)
|
|
return on_request_cookie(url, source);
|
|
return String {};
|
|
}
|
|
|
|
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::File {};
|
|
}
|
|
|
|
WebWorkerClient::WebWorkerClient(NonnullOwnPtr<IPC::Transport> transport)
|
|
: IPC::ConnectionToServer<WebWorkerClientEndpoint, WebWorkerServerEndpoint>(*this, move(transport))
|
|
{
|
|
}
|
|
|
|
IPC::File WebWorkerClient::clone_transport()
|
|
{
|
|
return MUST(m_transport->clone_for_transfer());
|
|
}
|
|
|
|
}
|