英文:
How to add a custom command line switch in Chromium source code
问题
我正在尝试在Windows上向Chromium源代码中添加自定义命令行选项,以便我可以使用类似chrome.exe --my-custom-flag=value
的标志来运行浏览器。目标是在Chromium代码库的任何位置都能访问这个值。然而,到目前为止,我的尝试都没有成功。
我尝试使用以下代码片段在Chromium源代码中读取命令行值:
std::string value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("my-custom-flag");
然而,这种方法没有产生期望的结果。我还尝试了另一种方法,使用CommandLine::ForCurrentProcess()->HasSwitch()
方法来检查自定义标志是否存在,但它也没有起作用。
我将非常感激关于如何正确实现和读取Chromium源代码中的自定义命令行选项的任何建议或指导。提前感谢您的帮助。
英文:
I'm attempting to add a custom command line option to the Chromium source code on windows, allowing me to run the browser with a flag like chrome.exe --my-custom-flag=value
. The goal is to access this value anywhere within the Chromium codebase. However, my attempts so far have been unsuccessful.
I've tried using the following code snippet to read the command line value within the Chromium source:
std::string value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("my-custom-flag");
However, this method didn't yield the desired result. I also tried another approach using the CommandLine::ForCurrentProcess()->HasSwitch()
method to check if the custom flag was present, but it didn't work either.
I would greatly appreciate any advice or guidance on how to properly implement and read a custom command line option in the Chromium source code. Thank you in advance for your assistance.
答案1
得分: 0
third_party/blink/renderer/core/frame/navigator.cc
是 Chromium 渲染器进程的一部分,您尝试在渲染器中运行您的代码。您的命令行开关 --my-custom-flag
不会被传递到渲染器进程,它会在以下函数中被过滤掉:
void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
const base::CommandLine& browser_cmd,
base::CommandLine* renderer_cmd);
将您的开关添加到该成员函数中的数组 kSwitchNames
中,它将被传递到渲染器进程。请注意,所有开关必须在定义时不包括开始的双破折号 --
。
英文:
third_party/blink/renderer/core/frame/navigator.cc
is a part of Chromium renderer process, you attempt to run your code in a renderer. You command line switch --my-custom-flag
is not forwarded to a renderer process, it is filtered out in
void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
const base::CommandLine& browser_cmd,
base::CommandLine* renderer_cmd);
Add your switch to the array kSwitchNames
in that member function, and it will be propagated to a renderer process. Note, all switches must be defined without the beginning double dashes --
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论