diff --git a/Ladybird/HelperProcess.cpp b/Ladybird/HelperProcess.cpp index 5809fbe27b..2bfed3ca35 100644 --- a/Ladybird/HelperProcess.cpp +++ b/Ladybird/HelperProcess.cpp @@ -187,7 +187,16 @@ ErrorOr> launch_request_server_process(Re ErrorOr> launch_sql_server_process(ReadonlySpan candidate_sql_server_paths) { - auto [client, _] = TRY(Core::launch_singleton_process("SQLServer"sv, candidate_sql_server_paths)); + Vector arguments; + + if (auto server = mach_server_name(); server.has_value()) { + arguments.append("--mach-server-name"sv); + arguments.append(server.value()); + } + + auto [client, pid] = TRY(Core::launch_singleton_process("SQLServer"sv, candidate_sql_server_paths, arguments)); + WebView::ProcessManager::the().add_process(WebView::ProcessType::SQLServer, pid); + return client; } diff --git a/Ladybird/SQLServer/main.cpp b/Ladybird/SQLServer/main.cpp index 6c04eb3893..e06b6f41d6 100644 --- a/Ladybird/SQLServer/main.cpp +++ b/Ladybird/SQLServer/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Tim Flynn + * Copyright (c) 2022-2024, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ @@ -13,14 +13,20 @@ #include #include +#if defined(AK_OS_MACOS) +# include +#endif + ErrorOr serenity_main(Main::Arguments arguments) { AK::set_rich_debug_enabled(true); - ByteString pid_file; + StringView pid_file; + StringView mach_server_name; Core::ArgsParser args_parser; args_parser.add_option(pid_file, "Path to the PID file for the SQLServer singleton process", "pid-file", 'p', "pid_file"); + args_parser.add_option(mach_server_name, "Mach server name", "mach-server-name", 0, "mach_server_name"); args_parser.parse(arguments); VERIFY(!pid_file.is_empty()); @@ -30,6 +36,11 @@ ErrorOr serenity_main(Main::Arguments arguments) Core::EventLoop loop; +#if defined(AK_OS_MACOS) + if (!mach_server_name.is_empty()) + Core::Platform::register_with_mach_server(mach_server_name); +#endif + auto server = TRY(IPC::MultiServer::try_create()); u64 connection_count { 0 };