diff --git a/Ladybird/HelperProcess.cpp b/Ladybird/HelperProcess.cpp index 91629aa7705..7491a4b8a9a 100644 --- a/Ladybird/HelperProcess.cpp +++ b/Ladybird/HelperProcess.cpp @@ -8,7 +8,6 @@ #include "Utilities.h" #include #include -#include #include enum class RegisterWithProcessManager { @@ -62,6 +61,19 @@ static ErrorOr> launch_generic_server_process( }); } +template +static ErrorOr> launch_singleton_server_process( + StringView server_name, + ReadonlySpan candidate_server_paths, + Vector const& arguments, + RegisterWithProcessManager register_with_process_manager, + ClientArguments&&... client_arguments) +{ + return launch_server_process_impl(server_name, candidate_server_paths, arguments, register_with_process_manager, [&](auto options) { + return Core::IPCProcess::spawn_singleton(move(options), forward(client_arguments)...); + }); +} + ErrorOr> launch_web_content_process( WebView::ViewImplementation& view, ReadonlySpan candidate_web_content_paths, @@ -161,10 +173,7 @@ ErrorOr> launch_sql_server_process(ReadonlySpan("SQLServer"sv, candidate_sql_server_paths, arguments)); - WebView::ProcessManager::the().add_process(WebView::ProcessType::SQLServer, pid); - - return client; + return launch_singleton_server_process("SQLServer"sv, candidate_sql_server_paths, arguments, RegisterWithProcessManager::Yes); } ErrorOr connect_new_request_server_client(Protocol::RequestClient& client)