diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 666486df0249..3033ec1e59b9 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -102,3 +102,4 @@ refactor_restore_base_adaptcallbackforrepeating.patch hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch add_gin_wrappable_crash_key.patch +logging_win32_only_create_a_console_if_logging_to_stderr.patch diff --git a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch new file mode 100644 index 000000000000..d49318d8bc7e --- /dev/null +++ b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jeremy Rose +Date: Mon, 2 Aug 2021 15:56:56 -0700 +Subject: only create a console if logging to stderr + +This fixes an issue on Windows where, when `--enable-logging=file` is +passed and the app was not run from the console, a console window would +be created for each child process, despite logs being redirected to a +file. + +diff --git a/content/app/content_main.cc b/content/app/content_main.cc +index a26c5c2e053eddb4c70afb166a4643f38eb3c7f6..265b9af981454ab09ed34542ca845fb566b4a75d 100644 +--- a/content/app/content_main.cc ++++ b/content/app/content_main.cc +@@ -370,8 +370,12 @@ RunContentProcess(const ContentMainParams& params, + + #if defined(OS_WIN) + // Route stdio to parent console (if any) or create one. +- if (base::CommandLine::ForCurrentProcess()->HasSwitch( +- switches::kEnableLogging)) { ++ auto* cmd_line = base::CommandLine::ForCurrentProcess(); ++ bool log_to_stderr = ++ cmd_line->HasSwitch(switches::kEnableLogging) && ++ cmd_line->GetSwitchValueASCII(switches::kEnableLogging) != "file" && ++ !cmd_line->HasSwitch(switches::kLogFile); ++ if (log_to_stderr) { + base::RouteStdioToConsole(true); + } + #endif