From d2521c8e720eccb240d4ecdfc4457a92755ac9cc Mon Sep 17 00:00:00 2001 From: rmg-x Date: Mon, 2 Dec 2024 19:46:04 -0600 Subject: [PATCH] LibWebView+WebContent: Add and set cmdline option for echo server port --- Libraries/LibWebView/HelperProcess.cpp | 5 +++++ Services/WebContent/main.cpp | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/Libraries/LibWebView/HelperProcess.cpp b/Libraries/LibWebView/HelperProcess.cpp index b2d8a333037..a40b060bd52 100644 --- a/Libraries/LibWebView/HelperProcess.cpp +++ b/Libraries/LibWebView/HelperProcess.cpp @@ -109,6 +109,11 @@ ErrorOr> launch_web_content_process( if (web_content_options.collect_garbage_on_every_allocation == WebView::CollectGarbageOnEveryAllocation::Yes) arguments.append("--collect-garbage-on-every-allocation"sv); + if (auto const maybe_echo_server_port = web_content_options.echo_server_port; maybe_echo_server_port.has_value()) { + arguments.append("--echo-server-port"sv); + arguments.append(ByteString::number(maybe_echo_server_port.value())); + } + if (auto server = mach_server_name(); server.has_value()) { arguments.append("--mach-server-name"sv); arguments.append(server.value()); diff --git a/Services/WebContent/main.cpp b/Services/WebContent/main.cpp index d0fbfbe2860..2a8ca2a2f10 100644 --- a/Services/WebContent/main.cpp +++ b/Services/WebContent/main.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -106,6 +107,7 @@ ErrorOr serenity_main(Main::Arguments arguments) bool force_cpu_painting = false; bool force_fontconfig = false; bool collect_garbage_on_every_allocation = false; + StringView echo_server_port_string_view {}; Core::ArgsParser args_parser; args_parser.add_option(command_line, "Chrome process command line", "command-line", 0, "command_line"); @@ -124,6 +126,7 @@ ErrorOr serenity_main(Main::Arguments arguments) args_parser.add_option(force_cpu_painting, "Force CPU painting", "force-cpu-painting"); args_parser.add_option(force_fontconfig, "Force using fontconfig for font loading", "force-fontconfig"); args_parser.add_option(collect_garbage_on_every_allocation, "Collect garbage after every JS heap allocation", "collect-garbage-on-every-allocation"); + args_parser.add_option(echo_server_port_string_view, "Echo server port used in test internals", "echo-server-port", 0, "echo_server_port"); args_parser.parse(arguments); @@ -153,6 +156,13 @@ ErrorOr serenity_main(Main::Arguments arguments) Web::Fetch::Fetching::g_http_cache_enabled = true; } + if (!echo_server_port_string_view.is_empty()) { + if (auto maybe_echo_server_port = echo_server_port_string_view.to_number(); maybe_echo_server_port.has_value()) + Web::Internals::Internals::set_echo_server_port(maybe_echo_server_port.value()); + else + VERIFY_NOT_REACHED(); + } + #if defined(AK_OS_MACOS) if (!mach_server_name.is_empty()) { [[maybe_unused]] auto server_port = Core::Platform::register_with_mach_server(mach_server_name);