
Thorium 命令行开关实战指南解析 CMDLINE_FLAGS_LIST.md 中的 Chromium 完整参数列表与真实启动示例【免费下载链接】thoriumChromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top of the README.md.项目地址: https://gitcode.com/GitHub_Trending/th/thorium本文以仓库中的 infra/CMDLINE_FLAGS_LIST.md 为主体系统讲解这份收录了约 1400 个 Chromium 命令行开关command line switches的参考清单它的格式约定、按子系统划分的开关体系以及如何结合 Thorium 仓库自带的启动脚本thorium_shell包装器、便携版脚本、桌面快捷方式把--user-data-dir、--no-experiments、--enable-clear-hevc-for-testing等参数用进真实的浏览器启动流程。读完后你将能够准确查表定位参数含义、理解参数间的安全与优先级关系并复现 Thorium 官方的各类启动姿势。一、文档定位与来源Thorium 仓库里的“全量参数字典”infra/README.md 对这份文档的官方定位是The CMDLINE_FLAGS_LIST.md contains a list of all possible cmdline flags for Chromium. It is borrowed from https://peter.sh/experiments/chromium-command-line-switches/即它并非 Thorium 原创而是从社区经典的 Chromium 命令行开关实验页移植而来的全量参数字典覆盖 Chromium 内核中所有已注册的--开关。仓库中还有一份内容完全相同同为 2810 行的副本 docs/CMDLINE_FLAGS_LIST.md两者可互为索引。它与同目录的 infra/DEV_CMDLINE_FLAGS.txt 是“字典”与“精选词表”的关系前者回答“Chromium 一共支持哪些开关、各自什么意思”后者是 Thorium 维护者为调试、Web 开发与 Thorium 自身开发筛选出的一行式高频参数组合第四节完整拆解。1.1 清单的条目格式文档开头声明了格式约定Format: Condition ## Explanation ## -----------------------------------实际条目由--flag-name加##分隔符后的英文说明组成例如--user-data-dir ## Directory where the browser stores the user profile. ## --headless ## Run in headless mode, i.e., without a UI or display server dependencies. ##三个需要留意的格式细节决定了检索效率部分 flag 名后带方括号条件标记如--class[9]、--use-cras[20]、--user-data-migrated[22]。这是原清单中用于标注该开关生效条件平台/场景的脚注编号例如大量带[1]的条目--add-gpu-appcontainer-caps[1]、--no-sandbox-and-elevated[1]与 Windows 平台相关。查参数含义时应先读描述正文方括号编号只是来源清单的条件标注不代表 Thorium 修改过该开关。No description是占位而非缺失功能。当前文件中 1404 个--开头条目里有 195 个说明为No description意味着对应开关在 Chromium 源码中注册了名字但没有编写说明多为内部/测试开关不代表参数不可用也不代表有具体行为。条目按 flag 名字母序排列没有分类标题。想按主题浏览时应结合下文的子系统分类检索想精确定位某个 flag 时直接在文件中按--flag-name ##前缀搜索最快。二、为什么会有这么多开关Chromium 多进程模型与开关的流转理解这份清单的前提是理解 Chromium 的进程模型——很多开关的“奇怪名字”都源于它服务于哪一个进程。清单本身给出了多处一手证据--typeIndicates the type of process to run. This may be service-manager, service-runner, or any other arbitrary value supported by the embedder.浏览器主进程启动子进程renderer、gpu、utility、crashpad_handler 等时通过--type传递角色。--/prefetch:1至--/prefetch:8描述写明这些参数用于让 Windows 预取器“区分同一可执行文件的不同执行模式进程类型避免不同类型进程互相污染预取档案”取值必须落在[1, 8]8表示“任意”。这是“一个二进制、多种进程角色”模型的直接体现。--renderer-cmd-prefix/--utility-cmd-prefix/--gpu-launcher分别向 renderer、utility、GPU 进程的前置命令行注入调试器前缀描述举例valgrind、xterm -e gdb --args。排查“只有某个子进程才复现”的问题时这三组开关是关键入口。--isolate-origins、--site-per-process、--process-per-site描述中明确区分了“隔离isolation”与“合并consolidation”两种相反的进程模型并反复警告两者不要混淆IMPORTANT: This isnt to be confused with --process-per-site ... You probably want the other one.。安全敏感的读者应重点阅读--site-per-process条目它声明每个 renderer 进程终身只服务一个站点、跨站导航强制换进程、跨站iframe一律跨进程渲染。2.1 按主题划分的开关地图下面这张地图把清单按子系统重新组织并给出每个主题下值得精读的条目及其在文档中的原始语义摘录并简化完整描述以源文件为准主题代表开关文档中的关键语义摘译用户配置目录--user-data-dirDirectory where the browser stores the user profile.磁盘缓存--disk-cache-dir/--disk-cache-size使用指定磁盘缓存位置强制磁盘缓存最大字节数功能与实验--enable-features/--disable-featuresComma-separated list of feature names to enable/disable. See also kDisableFeatures.Blink 运行时功能--enable-blink-features/--disable-blink-features使用runtime_enabled_features.json5中的名字与命令行其他 flag 的生效顺序在描述中有明确说明字段试验Field Trial--force-fieldtrials/--force-fieldtrial-params本地强制试验组与试验参数格式如Trial1.Group1:k1/v1/k2/v2实验总开关--no-experimentsDisables all experiments set on about:flags. Does not disable about:flags itself.描述中给出典型用法某实验导致启动崩溃时先用它启动、到 about:flags 关闭问题项、再正常重启沙箱与安全--no-sandbox/--disable-site-isolation-trials/--unsafely-treat-insecure-origin-as-secure--no-sandbox明确标注Meant to be used as a browser-level switch for testing purposes only“unsafely-” 前缀的开关在命名上自曝了风险等级GPU 与渲染--use-gl/--use-angle/--use-vulkan/--disable-gpu-rasterization/--show-fps-counter--use-gl描述列出 desktop/egl/swiftshader 三个实现--use-angle列出 d3d9/d3d11/warp/gl/gles 后端--show-fps-counter额外说明配合--enable-loggingstderr --vmodulehead*1可把 FPS 打到控制台进程模型--single-process/--in-process-gpu/--process-per-tab分别为“渲染器与浏览器同进程”“GPU 进程作为浏览器内线程运行”“每个脚本连通标签组一个渲染进程描述注明当前为 no-op”无头与自动化--headless/--dump-dom/--screenshot/--print-to-pdf--dump-dom让 headless_shell 向 stdout 打印document.body.innerHTML--print-to-pdf-no-header去掉页眉页脚网络与代理--proxy-server/--proxy-pac-url/--proxy-bypass-list/--no-proxy-server--proxy-server描述强调“只影响 HTTP/HTTPS 请求”--no-proxy-server覆盖其他所有代理 flag证书与 TLS--ssl-version-min/--ssl-version-max/--cipher-suite-blacklist/--ignore-certificate-errors-spki-listTLS 版本取值范围写得很具体min 可为 tls1tls1.3SPKI 白名单要求--user-data-dir同时存在才生效扩展--load-extension/--disable-extensions/--disable-extensions-except/--pack-extension启动时加载解包扩展路径列表打包含签名的--pack-extension-key用于生成 .crx远程调试--remote-debugging-port/--remote-debugging-address/--remote-debugging-pipe描述直接给出安全警告the remote debugging protocol does not perform any authentication, so exposing it too widely can be a security risk日志与追踪--enable-logging/--log-level/--v/--vmodule/--log-net-log/--trace-startup--log-level取值 03 对应 INFO/WARNING/LOG_ERROR/LOG_FATAL--vmodule支持按源文件名与目录 glob 设置分级日志媒体自动播放--autoplay-policy及--no-user-gesture-required/--user-gesture-required/--document-user-activation-required四个取值分别对应“不要求任何用户手势 / 要求用户手势 / 要求文档级用户激活”等策略用户代理与窗口--user-agent/--window-size/--window-position/--start-fullscreen/--start-in-incognito--window-size格式为800,600字符串音频ALSA--alsa-output-device/--alsa-output-buffer-size/--alsa-output-period-size等十余个描述精确到“输出缓冲区大小直接决定输出延迟延迟 采样率 × 缓冲区帧数”系统信息--product-versionOutputs the product version information and quit. Used as an internal api to detect the installed version of Chrome on Linux.——在 Linux 上探测已安装版本的标准入口其中与 Thorium 日常使用关系最密切的几组值得单独展开1功能开关三件套的生效顺序。清单描述给出了明确的优先级语义--enable-blink-features的说明写有Applied before kDisableBlinkFeatures, and after other flags that change these features即“其他更底层的 flag 先生效 →--enable-blink-features→--disable-blink-features最后覆盖”。--enable-features/--disable-features则互为镜像See also kDisableFeatures。排查“某个 feature 到底被谁打开了”时应同时搜索 enable 与 disable 两侧。2about:flags 与命令行参数的边界。--flag-switches-begin条目的描述说明about:flags追加到命令行的开关会被这两个“哑”标记夹在中间目的就是在chrome://version里能看出哪些参数是 about:flags 加上的它们本身无副作用。结合--no-experiments禁用 about:flags 的全部实验但保留 about:flags 页面本身就构成了 Thorium “安全模式”的底层机制——见第四节。3安全开关的“自曝命名”。清单里以unsafely-开头的条目如--unsafely-treat-insecure-origin-as-secureTreat given (insecure) origins as secure origins支持逗号分隔多源以及描述中含only to be used in tests/for testing purposes字样的条目都是上游明确标注“仅限测试”的开关。Thorium 的发行版不会替你把这些开关挡在门外使用时应以条目描述中的限定语为准。三、从字典到实操Thorium 官方脚本中的真实 flag 组合仓库中有多处把清单里的参数“用活”了的一手材料按启动层级从低到高梳理如下。3.1 thorium_shellcontent_shell 的官方包装器thorium_shell/thorium-shell 全文只有一行核心逻辑/opt/chromium.org/thorium/thorium_shell --enable-experimental-web-platform-features --debug --enable-clear-hevc-for-testing $它对应清单中的三个条目--enable-experimental-web-platform-featuresEnables Web Platform features that are in development.--enable-clear-hevc-for-testingThorium 为 HEVC/H.265 支持引入的测试开关README 中说明 Thorium 默认提供完整编解码器与 HEVC 支持对应清单外的 Thorium 自有 patch 开关。$原样透传用户追加的参数——这就是包装器模式先注入一批默认实验开关再把控制权交还命令行。同目录的 thorium_shell/thorium-shell.desktop 以Exec/usr/bin/thorium-shell %U暴露到桌面环境名称 “Thorium Shell”、CommentRun Thorium Tests in content_shell即 Thorium 发行版附带的内容 Shellcontent_shell工具链。3.2 便携版脚本参数拼装的标准姿势infra/portable/THORIUM-SHELL.sh 的启动行展示了“数据目录分离 实验开关 透传”的完整拼法exec -a $0 $HERE/thorium_shell --user-data-dir$PROFILE --disk-cache-dir$CACHE \ --enable-experimental-web-platform-features --enable-clear-hevc-for-testing $--user-data-dir与--disk-cache-dir分开的意义正是清单两条描述的组合前者是“浏览器存放用户配置的目录”后者是“使用与用户目录推导无关的独立磁盘缓存位置”。把缓存目录从 profile 中拆出是便携Portable版能在移动介质上保持 profile 精简的标准做法。3.3 Linux 发行版启动器--safe-mode、--temp-profile与 flags.confThorium 各 SIMD 变体SSE3/SSE4/AVX2/AVX512 等共享同一套启动器逻辑以 other/thor_ver_linux/wrapper-avx2 为代表--safe-mode ) # L86-88识别 --safe-mode is_safe_mode1# L98-100允许用户通过文件覆盖命令行参数 if [[ -f $XDG_CONFIG_HOME/thorium/thorium-flags.conf ]]; then CHROME_USER_FLAGS$(cat $XDG_CONFIG_HOME/thorium/thorium-flags.conf) fi# L124-126安全模式的实现 if [ $is_safe_mode -eq 1 ] ; then CHROME_USER_FLAGS$CHROME_USER_FLAGS --no-experiments fi这里有三个关键点Thorium 的--safe-mode是启动器层面的语法糖最终落到 Chromium 开关就是--no-experiments。这与清单中--safe-mode条目描述的语义ChromeOS session_manager 在 60 秒内崩溃 3 次以上时追加的崩溃恢复开关完全不同——同名 flag 在不同语境下含义不同是阅读这份字典时最容易踩的坑也是“字典必须结合上下文使用”的典型例证。--temp-profile通过mktemp -d创建临时 profile并自动追加--disk-cache-dir$CACHE --user-data-dir$TEMP_PROFILE对应 README 描述中发行版附带的“临时配置启动”能力。~/.config/thorium/thorium-flags.conf是 Thorium 提供的“无命令行持久化参数”通道文件内容会被读入CHROME_USER_FLAGS并在最终exec时展开。把 infra/DEV_CMDLINE_FLAGS.txt 这类组合存进该文件即可实现“每次启动自动带上调试参数”。3.4 桌面快捷方式把开关做成右键动作infra/portable/thorium-portable.desktop 中把常用开关固化为 Desktop Action[Desktop Action safe-mode] NameOpen in Safe Mode Exec./thorium-browser --no-experiments %U [Desktop Action dark-mode] NameOpen in Dark Mode Exec./thorium-browser --force-dark-mode %U这与 README 所述“右键启动器可见三个附加动作打开 thorium-shell、以 Safe Mode 打开禁用 chrome://flags 中已设置的开关直到下次启动、以 Dark Mode 打开追加--force-dark-mode”一一对应。--force-dark-mode在清单中的描述是Forces dark mode in UI for platforms that support it.属于跨平台 UI 开关是 Thorium 发行版默认外观偏好之一。四、DEV_CMDLINE_FLAGS.txt 精选参数逐条解析infra/DEV_CMDLINE_FLAGS.txt 是一整行可直接使用的参数串infra/README.md 称其为 “useful command line flags for Debugging, Web Development, and Thorium development”。逐条对照清单语义--enable-benchmarkingEnables the benchmarking extensions.开启基准测试扩展清单标注了上游 TODO 考虑移除/改名属实验性质。--autoplay-policyuser-gesture-required--autoplay-policy条目的取值为user-gesture-required即“需要用户手势才能自动播放”的媒体策略用于开发时把自动播放行为固定到最严格档避免页面行为受默认策略漂移影响。--force-dev-mode-highlightingWhether to force developer mode extensions highlighting.在扩展界面上高亮开发者模式扩展。--enable-ui-devtoolsEnables DevTools server for UI (mus, ash, etc). Value should be the port the server is started on. Default port is 9223.对 ChromeOS 风格的 UImus/ash暴露 DevTools 服务默认端口 9223。--enable-local-file-accessesEnable file accesses. It should not be enabled for most Cast devices.允许本地文件访问主要面向媒体/投射场景。--disable-extensions-file-access-checkDisable checking for user opt-in for extensions that want to inject script into file URLs (ie, always allow it). This is used during automated testing.允许扩展向file://页面注入脚本而不弹询问——本地调试自研扩展的高频开关。--allow-file-access-from-filesBy default, file:// URIs cannot read other file:// URIs. This is an override for developers who need the old behavior for testing.解除本地页面之间的同源限制与上一条配合构成“本地开发沙箱解除”组合。--force-dark-mode强制 UI 深色模式见 3.4 节。--disable-web-securityDont enforce the same-origin policy. (Used by people testing their sites.)关闭同源策略。这是该组合中风险最高的一项仅应在本机受控环境使用。--enable-webgl2-compute-context --webgl-antialiasing-modeexplicit --webgl-msaa-sample-count16 --gpu-rasterization-msaa-sample-count16四条共同把 WebGL/GPU 栅格化的抗锯齿钉死在“显式 MSAA、16x 采样”--webgl-antialiasing-mode取值为(none, explicit, implicit)--webgl-msaa-sample-count设定 MSAA 启用时的默认采样数--gpu-rasterization-msaa-sample-count对 GPU 栅格化生效Requires MSAA support on GPU to have an effect. 0 disables MSAA.。组合意图是让 WebGL 与栅格化像素结果在开发机上保持一致、可复现。--show-fps-counterDraws a heads-up-display showing Frames Per Second as well as GPU memory usage.并在描述中提示配合--enable-loggingstderr --vmodulehead*1可将 FPS 输出到控制台日志。--enable-precise-memory-infoMake the values returned to window.performance.memory more granular and more up to date ...让performance.memory更细粒度、更实时便于内存观察。--force-gpu-mem-available-mb1024Sets the total amount of memory that may be allocated for GPU resources——把可用 GPU 显存配额钉在 1024 MB用于在显存充裕的机器上复现“显存受限”路径。这一整行的设计逻辑值得注意它不是“打开功能”而是“把行为钉死”——固定自动播放策略、固定抗锯齿参数、固定显存配额让开发/复现环境的变量最小化。这正是命令行开关相对 UI 设置的核心优势可复现、可版本化、可放进脚本。五、安全边界与使用纪律这份字典把“什么能做”写得非常全但同样用描述文字划出了“不该做什么”。综合条目原文使用 Thorium/Chromium 命令行开关应遵守以下边界测试专用开关不用于日常浏览。--no-sandboxMeant to be used as a browser-level switch for testing purposes only且描述明确其削弱全部受沙箱保护进程的隔离能力、--disable-web-security、--unsafely-treat-insecure-origin-as-secure描述直接要求参考 W3C secure contexts 定义理解风险均只应在本地受控、不连敏感站点的场景使用。远程调试端口默认只绑回环。--remote-debugging-address的描述明确警告远程调试协议不做任何认证exposing it too widely can be a security risk。需要跨机调试时也应限定可信网络。同名开关语义随上下文变化。如 3.3 节所述--safe-mode在清单条目里是 ChromeOS 崩溃恢复语义在 Thorium 启动器里是“禁用 about:flags 实验”语义。引用任何开关前先确认它被谁解释、在哪一层生效。No description条目不等于可用参数。195 个占位条目多为内部或测试残留除非有额外证据源码、测试脚本不应对其行为下结论。feature 类开关注意成对搜索。--enable-features与--disable-features、--enable-blink-features与--disable-blink-features相互覆盖且 Blink 侧的生效顺序在描述中已注明disable 后于 enable 应用。定位“功能为什么没开”时两侧都要查。六、速查与检索建议全量字典infra/CMDLINE_FLAGS_LIST.md副本docs/CMDLINE_FLAGS_LIST.md条目按 flag 名字母序可用--flag-name ##前缀精确检索。精选调试组合infra/DEV_CMDLINE_FLAGS.txt一行可直接拼入启动命令或存入~/.config/thorium/thorium-flags.conf。官方启动示例thorium_shell/thorium-shellcontent_shell 包装、infra/portable/THORIUM-SHELL.sh便携版参数拼装、other/thor_ver_linux/wrapper-avx2--safe-mode/--temp-profile/ flags.conf 机制。桌面入口thorium_shell/thorium-shell.desktop、infra/portable/thorium-portable.desktopsafe-mode / dark-mode 右键动作。背景文档infra/README.md文档定位与来源、README.mdThorium 与 Chromium 的差异、发行版附带的 ChromeDriver / content_shell 工具链说明。掌握这份清单的方法论可以概括为一句话字典给出“参数存在且语义为何”仓库脚本给出“Thorium 何时以何种组合使用它”条目中的 testing-only 限定语给出“你能把它用到多深”。三者对照使用才是把 1400 行开关列表转化为可用知识的方式。【免费下载链接】thoriumChromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top of the README.md.项目地址: https://gitcode.com/GitHub_Trending/th/thorium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考