跳转至内容

Chromium

来自 ArchWiki
(重定向自 Chromium tweaks)

Chromium 是一个基于 Blink 渲染引擎的开源图形网络浏览器。它是专有的 Google Chrome 浏览器的基础。

有关 Chromium 和 Google Chrome 之间差异的解释,请参阅 此页面。此外

  • 从 Chromium 89+ (2021-03-02) 开始,同步功能将不可用 [1]
注意 可以通过 使用 Chrome 的 OAuth2 凭据获取您自己的凭据 来暂时恢复同步,但请注意免责声明,不要将其视为长期解决方案。

考虑切换到 xbrowsersync 作为书签同步的长期解决方案。

有关其他基于 Chromium 的浏览器,请参阅 List of applications/Internet#Blink-based

安装

安装 chromium 包,该包跟踪 google-chromeAUR 版本。

注意 来自 Chromium 隐私页面:“通过 Chromium 代码编译实现的功能,受 Google 隐私政策 的约束。”对于那些希望避免与 Google 服务进行任何集成的人来说,有一些 注重隐私的 Chromium 衍生版本

配置

本文档或部分内容候选与 #Tips and tricks 合并。

注意:本节大部分内容应拆分到 #Tips and tricks,可能还有 #Troubleshooting(适用于相关部分)。(在 Talk:Chromium 中讨论)

默认应用程序

要将 Chromium 设置为默认浏览器,以及更改 Chromium 在打开下载文件时启动的应用程序,请参阅 默认应用程序

证书

Chromium 使用 Network Security Services 进行证书管理。可以在 chrome://certificate-manager 中管理证书。

“本地证书”选项卡管理服务器证书。在“自定义”部分添加的证书是每个配置文件的,并存储在配置文件目录下的 ServerCertificate SQLite 数据库中。“Linux”部分中的证书从 ~/.pki/nssdb 的 NSS 共享数据库读取,无法在此 UI 中修改。要添加到 NSS 共享数据库,请使用 certutil 等其他工具。有关用法示例,请参阅 #SSL certificates

“您的证书”选项卡管理客户端证书。此处添加的证书存储在 NSS 共享数据库中。

使命令行标志持久化

注意 chromium-flags.conf 文件和随附的自定义启动脚本特定于各种 Chromium 包。对于 Google Chrome,请改用 chrome-flags.conf(或 Dev 和 Beta 频道的 chrome-channel-flags.conf)。

您可以将标志放在 $HOME/.config/(如果已配置该环境变量,则放在 $XDG_CONFIG_HOME)下的 chromium-flags.conf 文件中,或者放在 /etc/ 中以供全局使用。

不使用特殊语法;标志定义的方式就像它们在终端中一样。

  • 参数按空格分割,并且 shell 引用规则适用,但不会执行进一步的解析。
  • 如果在文件中任何位置出现不当引用,将引发致命错误。
  • 为提高可读性,可以将标志放在不同的行上,但这并非必需。
  • 以哈希符号(#)开头的行将被跳过。(这仅受 Chromium 启动脚本支持,在使用 Google Chrome 时无效。)

下面是一个 chromium-flags.conf 文件的示例,该文件定义了 --start-maximized --incognito 标志

~/.config/chromium-flags.conf
# This line will be ignored.
--start-maximized
--incognito

强制 GPU 加速

至少从 Chromium 110 开始,大多数系统默认启用 GPU 加速。如果您的系统配置被 阻止列表 匹配,您可能需要将以下标志 附加持久化配置 中。

警告 禁用渲染阻止列表可能导致不稳定的行为,包括宿主崩溃。有关详细信息,请参阅 chrome://gpu 中的错误报告。
~/.config/chromium-flags.conf
--ignore-gpu-blocklist
--enable-zero-copy

硬件视频加速

  • 此功能没有 Chromium 或 Arch Linux 的官方支持 [2]。然而,官方仓库中的 chromium 已编译支持 VA-API,您可以在 专用论坛主题 中寻求帮助。
  • 自 Chromium 版本 122 起,不再需要额外的 VA-API 包。使用官方仓库中的 chromium 包和原生 Wayland 后端时,VA-API 可以工作。
  • Chromium 116 放弃了对使用 libva-intel-driver 的 Intel iGPU 的支持。为了获得有效的 h264 加速,需要 libva-intel-driver-irqlAUR
  • 在 AMD GPU 设备上,VA-API 无法开箱即用,需要 mesa >= 24.1 以及 启用 Vulkan。这可能会导致 X11/XWayland 下的 WebGL 出现问题。自版本 125.0.6422.141-1 起,与 #Native Wayland support 结合的 Vulkan 可以工作。
  • chromium-flags.conf 中尝试查找正确的标志组合时,请注意,此文件最多只能包含一行以 --enable-features--disable-features 开头。多个功能必须用逗号连接。

如果您已通过检查 vainfo 的输出来确认 VA-API 支持正常(参见 Hardware video acceleration#Verifying VA-API),您可以先尝试单独使用以下标志

~/.config/chromium-flags.conf
--enable-features=AcceleratedVideoDecodeLinuxGL
  • 在使用 EGL/Wayland 时,使用 --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL 而非上述标志可能会提高性能。
  • Chromium 版本 131 之前的版本应使用 --enable-features=VaapiVideoDecodeLinuxGL

否则,请继续阅读。

要启用 Chromium 中的加速编码

  • 附加 AcceleratedVideoEncoder 功能,例如 --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoEncoder。有关详细信息,请参阅 [3][4]

要启用 VA-API 支持

  • 安装适合您显卡的 VA-API 驱动程序,并验证 VA-API 已启用且正常工作,请参阅 Hardware video acceleration。对于专有的 NVIDIA 支持,您必须安装 libva-nvidia-driver,并将 VaapiOnNvidiaGPUs 功能附加到上述功能之外。
  • 设置选项 --enable-features=VaapiVideoDecoder。当使用 ANGLE GL 渲染器和 libva-intel-driver 时,这已足够。
  • 在使用 ANGLE 时,Chromium 会强制使用旧的 i965 驱动程序,并在使用 intel-media-driver 时失败。作为一种变通方法,请手动配置 VA-API。有关详细信息,请参阅 [5]
  • 要在 Xorg 或 Wayland 上使用系统 GL 渲染器,请使用 --use-gl=egl。当使用 AMD GPU 时,Chrome 112 可能不再需要设置此选项,并且可能会破坏 GPU 加速。
  • 如果 VA-API 仍无法工作,请尝试 --enable-features=VaapiIgnoreDriverChecks--disable-features=UseChromeOSDirectVideoDecoder 标志
  • 如果 VA-API 在 X11 和旧 GPU 上仍无法工作,请设置 LIBVA_DRI3_DISABLE=1 环境变量 [6]

Vulkan

使用 Vulkan 时,以下标志是必需的,并且在 Chromium 126 和 Mesa 24.1 上也可能足够

~/.config/chromium-flags.conf
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE

不包含上述任何附加标志。

技巧与提示

本文或本章节已过时。

原因
  • Chromium 在 Wayland + RADV 上使用 VaapiVideoDecoder 进行 AV1.
  • Chromium 在 Wayland + RADV 上使用 VaapiVideoDecoder 进行任何大小的视频.
(在 Talk:Chromium 中讨论)

要检查是否正常工作,请播放一个使用您的 VA-API 驱动程序支持的编解码器的视频(vainfo 会告诉您支持哪些编解码器,但 Chromium 只支持 VP9 和 h264)

  • 通过按 Ctrl+Shift+I 或右键菜单中的“检查”按钮打开开发者工具
  • 添加媒体检查选项卡:汉堡菜单 > 更多工具 > 媒体
  • 在新打开的媒体选项卡中,查看视频解码器的硬件解码器状态

测试足够大的视频。从 86 版本开始,桌面版 Chromium 只会加速大于 720p 的视频

要在观看 YouTube 时减少 CPU 使用率,而 VP8/VP9 硬件解码不可用时,请使用 h264ifyenhanced-h264ifyNot yet, AV1[7] 扩展。

在某些系统上(尤其是在 Xwayland 上),您可能需要#强制 GPU 加速。仅 --ignore-gpu-blocklist 对我们来说就足够了。

本文章或章节需要扩充。

原因: 提供指向某个 bug 报告的链接。(在 Talk:Chromium 中讨论)

您可能需要禁用 Skia 渲染器,因为它目前与视频解码加速不兼容:--disable-features=UseSkiaRenderer

KDE 集成

要集成到 Plasma 中,您可以

PDF 查看器插件

Chromium 和 Google Chrome 都内置了 Chromium PDF Viewer 插件。如果您不想使用此插件,请在 chrome://settings/content/pdfDocuments 中勾选“下载 PDF”。

在 Xwayland 上运行

如果您使用 NVIDIA 的专有驱动程序,在 Xwayland 上运行 Chromium 可能会导致 GPU 进程偶尔崩溃。为防止 GPU 进程崩溃,请添加以下标志

--use-angle=vulkan --use-cmd-decoder=passthrough
注意 这并不能防止所有与 Xwayland 相关的崩溃。

原生 Wayland 支持

Chromium 140 默认支持 Wayland。对于旧版本,您可以使用

--ozone-platform-hint=auto

或者

--ozone-platform=wayland

有关永久配置,请参阅 #Making flags persistent。该标志也可通过 浏览器标志菜单 访问。

这将在 Wayland 会话中选择 wayland Ozone 后端,因此如果您经常在 X11 和 Wayland 之间切换,可以使用单个桌面入口。

注意 当在浏览器标志菜单中更改“ozone-platform-hint”时,浏览器将提供一个重新启动按钮。不要使用它,因为浏览器仍然会在更改标志之前的平台中重新启动。您需要关闭浏览器,然后重新打开它。

此外,如果您在 输入法方面遇到问题,您可能还想强制使用较新的 GTK。

--gtk-version=4

如果 AltGr/Compose 键停止工作,添加此解决方法可能会解决问题。

--disable-gtk-ime

如果您使用的是 Fcitx5 且在使用上述标志时无法正常工作,请尝试使用 --enable-wayland-ime 标志而不是 --gtk-version=4[8]

--enable-wayland-ime --wayland-text-input-version=3
注意 启用 --enable-wayland-ime 标志的前提是 text_input_v1 协议默认实现。已知的实现此协议的组合器包括:Weston、KWin、Hyprland。

触摸板手势用于导航

要启用双指滑动以在历史记录中向前和向后导航,请使用以下标志

--ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation

强制设备缩放因子

本文档或部分内容候选与 HiDPI#Chromium / Google Chrome 合并。

注意:话题相同。(在 Talk:Chromium 中讨论)

要在原生 Wayland 上强制缩放因子,请使用以下标志 [9]

--force-device-scale-factor=1.33 --gtk-version=4 --enable-features=WaylandPerSurfaceScale,WaylandUiScale

技巧与提示

以下技巧与窍门应适用于 Chromium 和 Chrome,除非另有说明。

浏览体验

chrome:// URL

可以通过 Chrome URL 访问许多调整。有关完整列表,请参阅 chrome://chrome-urls

  • chrome://flags - 访问实验性功能,例如 WebGL 和 GPU 渲染网页等。
  • chrome://extensions - 查看、启用和禁用当前使用的 Chromium 扩展。
  • chrome://gpu - 各种 GPU 选项的状态。
  • chrome://sandbox - 指示沙盒状态。
  • chrome://version - 显示版本和用于调用活动的 /usr/bin/chromium 的开关。

Chromium 开关(命令行参数)的自动更新完整列表可在此处找到。

Chromium 任务管理器

可以使用 Shift+ESC 调出浏览器任务管理器,其中可以查看内存、CPU 和网络使用情况。

Chromium 覆盖/覆盖首选项文件

如果您启用了与 Google 帐户的同步,则 Chromium 将覆盖对 ~/.config/chromium/Default/Preferences 中的首选项文件的任何直接编辑。要解决此问题,请使用 --disable-sync-preferences 开关启动 Chromium。

$ chromium --disable-sync-preferences

如果 Chromium 在您登录桌面环境时在后台启动,请确保您的桌面环境使用的命令是

$ chromium --disable-sync-preferences --no-startup-window

搜索引擎

通过首先在这些页面上执行搜索,然后转到设置 > 搜索并单击管理搜索引擎...按钮,可以轻松搜索 wiki.archlinux.org 和 wikipedia.org 等网站。从那里,“编辑”维基百科条目并将其关键字更改为 w(或其他您喜欢的快捷方式)。现在,只需输入“w arch linux”即可从地址栏搜索维基百科上的“Arch Linux”。

注意 在 URL 栏中输入内容时会自动使用 Google 搜索。使用 ? 前缀也可以获得硬编码的关键字触发器。

Tmpfs

Tmpfs 中的缓存
注意 Chromium 将其缓存与浏览器配置文件目录分开存储。

要限制 Chromium 将其缓存写入物理磁盘,可以通过 --disk-cache-dir 标志定义一个备用位置。

$ chromium --disk-cache-dir="$XDG_RUNTIME_DIR/chromium-cache"

缓存应被视为临时性的,并且在重启或硬锁后不会保存。另一个选项是在 /etc/fstab 中设置空间。

/etc/fstab
tmpfs	/home/username/.cache	tmpfs	noatime,nodev,nosuid,size=400M	0	0

或者创建一个到 /tmp 的符号链接。在运行命令之前,请确保删除 Chromium 的缓存文件夹。

$ ln -s /tmp /home/username/.cache/chromium
Tmpfs 中的配置文件

将浏览器配置文件迁移到 tmpfs 文件系统,包括 /tmp,或 /dev/shm,以提高应用程序响应速度,因为整个配置文件现在都存储在 RAM 中。

使用主动的配置文件管理工具,例如 profile-sync-daemon,以获得最大的可靠性和易用性。它将浏览器配置文件目录符号链接或绑定挂载到 RAM 并进行同步。更多信息请参阅 Profile-sync-daemon

启动新的浏览器实例

当您启动浏览器时,它首先检查是否已有使用相同数据目录的实例正在运行。如果有,新窗口将与旧实例关联。如果您想启动一个独立的浏览器实例,必须使用 --user-data-dir 参数指定一个单独的目录。

$ chromium --user-data-dir=/path/to/some/directory
注意 用户数据的默认位置是 ~/.config/chromium/

默认情况下,Chromium 会直接下载 *.torrent 文件,您需要点击屏幕左下角的通知才能用默认的种子客户端打开文件。可以通过以下方法避免这种情况:

  • 下载一个 *.torrent 文件。
  • 右键单击屏幕左下角显示的通知。
  • 勾选“始终打开此类型的文件”复选框。

要更改默认关联,请参阅 xdg-open

触摸屏设备的触摸滚动

您可能需要指定要使用的触摸设备。使用 xinput list 查找您的触摸屏设备,然后使用 --touch-devices=x 参数启动 Chromium,其中“x”是您设备的 ID。

注意 如果该设备被指定为主指针的从属指针,使用此方法可能无效,请使用主指针的 ID。

减少内存使用

默认情况下,Chromium 为每个已访问网站的实例使用一个单独的操作系统进程。[10] 但是,您可以在启动 Chromium 时指定命令行开关来修改此行为。

例如,为网站的所有实例共享一个进程

$ chromium --process-per-site

使用单进程模型

$ chromium --single-process
警告 不推荐使用单进程模型,因为它不安全,并且可能存在其他模型中不存在的错误。[11]

此外,您可以使用 Tab Suspender 和 OneTab 等扩展来暂停或存储不活动的标签页,例如 Tab SuspenderOneTab

用户代理

用户代理可以在 Chromium 的基础实例启动时通过其 --user-agent="[string]" 参数任意修改。

DOM Distiller

本文或本节正考虑移除。

原因:该项目已被存档,并且标志不再有效。(在 Talk:Chromium 中讨论)

Chromium 具有类似 Firefox 的阅读模式。在这种情况下,它被称为 DOM Distiller,这是一个 开源项目。默认情况下它是禁用的,但可以通过 chrome://flags/#enable-reader-mode 标志启用,您也可以使其持久化。DOM Distiller 不仅通过提炼页面内容提供更好的阅读体验,还能简化页面以便打印。尽管打印对话框中已删除后者复选框选项,但您仍然可以打印提炼后的页面,这基本上效果相同。

启用该标志后,当 Chromium 认为您正在访问的网站可以进行提炼时,您将在地址栏中找到一个新的“进入阅读模式”菜单项和相应的图标。

强制使用特定 GPU

在多 GPU 系统中,Chromium 会自动检测应使用哪个 GPU 进行渲染(独立或集成)。这在 99% 的情况下有效,但有时也会失效 - 如果选择了不可用的 GPU(例如,在启用了 VFIO GPU 直通的系统上使用独立显卡),chrome://gpu 会抱怨无法初始化 GPU 进程。在同一页面的 驱动程序信息下方,会显示多个 GPU(GPU0、GPU1...)。没有用户友好的方法可以在它们之间切换,但您可以读取那里显示的设备/供应商 ID,并使用标志配置 Chromium 使用特定 GPU。

$ chromium --gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x1912

...其中 0x80860x1912 被您想要使用的 GPU 的 ID(如 chrome://gpu 页面上所示)替换。

从 Firefox 导入书签

为方便过渡,您可以将书签从 Firefox 导入到 Chromium。

导航到 Chromium 的 chrome://settings/importData

如果您的计算机上已安装 Firefox,您可以直接导入书签以及 Firefox 的许多其他内容。

确保选择了 Mozilla Firefox。您可以选择性地在此处取消选中一些不需要的项目。单击导入,然后单击完成。这样您就完成了。

注意 如果您尚未在 Chromium 中创建任何书签,则书签将显示在您的书签栏中。如果您已有书签,则书签将显示在一个标记为“从 Firefox 导入”的新文件夹中。

如果您从另一台 PC 导入书签,您必须先从 Firefox 导出书签。

在 Firefox 中按 Ctrl+Shift+o 导入和备份 > 导出书签到 HTML

过程几乎相同。您需要转到 chrome://settings/importData。但是,这次在 From 下拉菜单中,选择 Bookmarks HTML File,然后单击 Choose File 按钮并上传所需的书签文件。

启用原生通知

本文或本节正考虑移除。

原因:在较新版本的 Chromium 中,该标志已移除,此行为是默认的。(在 Talk:Chromium 中讨论)

转到 chrome://flags#enable-system-notifications 并选择已启用

启用鼠标中键自动滚动

自动滚动仍然是一项实验性功能 [12]。如果 Chromium 或基于 Chromium 的浏览器不是开发版本,并且运行在 Linux 环境中,它默认是禁用的。[13]

要启用此功能,请使用 --enable-features=MiddleClickAutoscroll 标志启动浏览器。如果您想使该选项持久化,请参阅 #Making flags persistent

  • 虽然设置 --enable-blink-features 的方式与仅输入 --enable-features 相同,但浏览器可能会显示警告,说明这是一个不受支持的标志,“稳定性和安全性将受到影响”。
  • 作为替代,您可以从 Chrome Web Store 添加一个具有类似功能的扩展,例如 WHEELY
提示 另一个选项是安装 chromium-extension-autoscrollAUR,但不推荐这样做,因为它是一个过时的包且非官方。请谨慎使用。

U2F 身份验证

安装 libfido2 库。它提供了启用用户访问 U2F 密钥所需的 udev 规则。默认情况下,U2F 密钥只能由 root 用户访问,没有这些规则,Chromium 会报错。

主题

您可以让 Chromium 使用您当前的 GTK 主题来显示浏览器菜单和控件。只需在 chrome://settings/appearance 中按下 使用 GTK 即可。

深色模式

自 Chromium 114 起,XDG Desktop Portal 用于自动确定用户偏好的外观(问题),从而将深色模式的启用与用户的 GTK 主题分离。此偏好设置将应用于 CSS、JavaScript、设置和开发者工具中的 prefers-color-scheme

更改首选外观的方式取决于您的 XDG Desktop Portal 后端。例如,许多桌面环境在其外观设置中都有一个开关。或者在使用 e.g. xdg-desktop-portal-gtk 时,可以使用以下命令将首选模式设置为 prefer-lightprefer-darkdefault

$ dconf write /org/gnome/desktop/interface/color-scheme \'prefer-dark\'

您可以使用 dbus-send 命令在 dbus 中查询当前首选的外观(文档)。

$ dbus-send --session --print-reply=literal --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:org.freedesktop.appearance string:color-scheme | tr -s ' ' | cut -d ' ' -f 5
  • 0:无偏好
  • 1:偏好深色外观
  • 2:偏好浅色外观
Chromium 114 之前

要启用深色模式并启用深色主题(通常用于隐身模式),请将以下标志 追加持久化配置中。

~/.config/chromium-flags.conf
--force-dark-mode
--enable-features=WebUIDarkMode

启用侧边栏

可以通过 chrome://flags 启用侧边栏。您可以启用或禁用 侧边栏,并更改 侧边栏边框侧边栏拖放 等选项。

配置文件维护

Chromium 使用 SQLite 数据库来管理历史记录等。SQLite 数据库会随着时间的推移而碎片化,并在各处出现空白。但是,由于没有管理进程来检查和优化数据库,这些因素最终会导致性能下降。一个改善启动速度以及其他一些与书签和历史记录相关的任务的好方法是碎片整理并从这些数据库中清除未使用的空间。

profile-cleanerbrowser-vacuumAUR 就能做到这一点。

安全

禁用 JIT

以牺牲性能为代价,您可以通过 --js-flags=--jitless 标志禁用 JavaScript 到原生代码的即时编译,该编译负责 JS 引擎中大约一半的安全漏洞

WebRTC

WebRTC 是一种依赖 JavaScript 的通信协议,它可能从 VPN 后面泄露用户的实际 IP 地址和硬件哈希。虽然某些软件可以阻止泄露脚本运行,但为了安全起见,最好直接阻止此协议。截至 2016 年 10 月,在桌面版 Chromium 上没有禁用 WebRTC 的方法。有可用的扩展程序可以禁用本地 IP 地址泄露,其中之一是此 扩展程序

您可以通过 https://browserleaks.com/webrtc 测试 WebRTC。

警告 即使可以防止 IP 泄露,Chromium 仍然会发送您的唯一哈希,并且无法阻止此行为。在此处了解更多信息:https://www.browserleaks.com/webrtc#webrtc-disable

SSL 证书

有关一般信息,请参见 #证书

为自签名证书添加 CAcert 证书

获取 CAcerts 并创建一个 nssdb,如果它尚不存在。要做到这一点,首先安装 nss 包,然后完成以下步骤:

$ mkdir -p $HOME/.pki/nssdb
$ cd $HOME/.pki/nssdb
$ certutil -N -d sql:.
$ curl -k -o "cacert-root.crt" "http://www.cacert.org/certs/root.crt"
$ curl -k -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt 
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt
注意 用户需要为数据库创建密码,如果它不存在的话。

现在用户可以手动导入自签名证书。

示例 1:使用 shell 脚本从 TomatoUSB 中隔离证书

下面是一个简单的脚本,它将提取证书并将其添加到用户的 nssdb 中。

#!/bin/sh
#
# usage:  import-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
exec 6>&1
exec > $REMHOST
echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n "$REMHOST" -i $REMHOST 
exec 1>&6 6>&-

语法在注释行中进行说明。

参考

示例 2:使用 Firefox 从 TomatoUSB 中隔离证书

可以使用 firefox 浏览器将证书保存到文件中,以便手动导入数据库。

使用 Firefox

  1. 浏览到目标 URL。
  2. 看到“此连接不安全”警告屏幕后,点击:我了解风险 > 添加例外...
  3. 点击:查看 > 详细信息 > 导出,并将证书保存到临时位置(本例中为 /tmp/easy.pem)。

现在导入证书供 Chromium 使用:

$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "easy" -i /tmp/easy.pem
注意 调整名称以匹配证书的名称。在上面的示例中,“easy”是证书的名称。

参考

Canvas 指纹识别

Canvas 指纹识别是一种通过检测渲染到 HTML5 Canvas 时的差异来识别用户的方法。通过使用 --disable-reading-from-canvas 标志,可以使此信息无法访问。

要确认此设置有效,请运行 此测试,并确保在完整结果中报告“canvas fingerprint hash”为“undetermined”。

  • 某些扩展程序需要读取 Canvas,并且可能会因设置 --disable-reading-from-canvas 而损坏。
  • YouTube 播放器或 Google 地图在没有 Canvas 读取的情况下无法正常工作(参见 Qutebrowser issue 5345BBS#255958BBS#276425)。

隐私扩展

请参见 浏览器扩展#隐私

提示 安装过多的扩展程序可能会占用工具栏上的大量空间。您可以通过右键单击不需要交互的扩展程序并选择 在 Chromium 菜单中隐藏 来隐藏它们。

“请勿跟踪”

要启用 “请勿跟踪”,请访问 chrome://settings,向下滚动到 高级,然后在 隐私和安全 下,勾选 浏览流量时发送“请勿跟踪”请求

强制密码存储

Chromium 使用密码存储来保存您的密码和 Chromium 安全存储 密钥,该密钥用于加密 cookie 值。[14]

默认情况下,Chromium 会自动检测使用哪个密码存储,这可能导致您在切换到另一个桌面环境或窗口管理器时,似乎会丢失密码和 cookie。

您可以通过使用以下值之一的 --password-store 标志启动 Chromium 来强制它使用特定的密码存储。[15]

  • gnome-libsecret:通过 libsecret 使用 Gnome Keyring
  • kwallet5:使用 KDE Wallet 5。
  • kwallet6:使用 KDE Wallet 6。
  • basic:将密码和 cookie 的加密密钥以明文形式保存在 Login Data 文件中。
  • detect:默认的自动检测行为。

例如,要强制 Chromium 在另一个桌面环境或 WM 中使用 Gnome Keyring,请使用 --password-store=gnome-libsecret。有关永久设置,请参见 #Making flags persistent

当使用其他桌面环境的密码存储时,您可能还希望自动解锁它。请参见 GNOME/Keyring#Using the keyringKDE Wallet#Unlock KDE Wallet automatically on login

启用混合后量子密钥交换

自版本 155 起,Chromium 支持用于 TLS 1.3 的混合后量子密钥交换 X25519Kyber768[16]。此功能默认禁用,但可以使用 chrome://flags/#enable-tls13-kyber 标志启用。

将任何网站打开为原生应用程序

您可以在无标签页的窗口中打开任何网站,该窗口专为 渐进式 Web 应用 设计。

$ chromium --app=https://archlinux.org.cn/

您需要使用正确的完整 URL。这可以与 --user-data-dir 结合使用以分割配置。本地 HTML 文件也可以与 --allow-file-access-from-files --app=file://* 一起用于原生应用程序。

强制离线

您可以使用 --proxy-server=dummy 强制离线状态,以确保在使用 Chromium 的本地 HTML 文件时的安全性。

更快的下载

Chromium 提供了 --enable-parallel-downloading 标志,可用于在不使用扩展程序的情况下进行并行下载。

故障排除

字体

注意 由于其沙箱机制,Chromium 与 fontconfig/GTK/Pango/X/etc. 集成不完全。有关更多信息,请参见 Linux 技术 FAQ

标签页字体大小过大

Chromium 将使用 GTK#Configuration 中描述的 GTK 设置。配置后,Chromium 将使用 gtk-font-name 设置来显示标签页(这可能与窗口字体大小不匹配)。要覆盖这些设置,请使用 --force-device-scale-factor=1.0

自 Chrome Refresh 2023 成为默认设置以来,使用 Cantarell 字体的 GNOME 用户可能会注意到标签页标题中的某些字符(如小写 g)被截断。请参见 chromium.org 上的问题

在问题解决之前,一种变通方法是使用基于 Font configuration#Set default or fallback fonts 的配置将 Cantarell 替换为其他字体,例如:

~/.config/fontconfig/conf.d/10-chromium-font.conf
<match target="pattern">
    <test name="prgname" compare="eq">
        <string>chromium</string>
    </test>
    <test qual="any" name="family">
         <string>Cantarell</string>
    </test>
    <edit name="family" mode="assign" binding="strong">
        <string>Ubuntu</string>
    </edit>
</match>

此配置仅在进程名称 chromium 匹配时才适用。您可以使用 chrome 来指代 Google Chrome。

WebGL

您的显卡有可能被 Chromium 列入黑名单。请参见 #Force GPU acceleration

如果您在使用 Bumblebee 的 Chromium 中,WebGL 可能会因 GPU 沙箱而崩溃。在这种情况下,您可以通过 optirun chromium --disable-gpu-sandbox 禁用 GPU 沙箱。

访问 chrome://gpu/ 以获取有关 WebGL 支持的调试信息。

Chromium 可能会在您的用户配置文件中保存错误的 GPU 数据(例如,如果您在支持 Optimus 的 Nvidia 卡和 Intel 卡之间切换,即使您没有使用它们或 primusrun/optirun,chrome://gpu 也会显示 Nvidia 卡)。使用不同的用户目录运行,例如 chromium --user-data-dir=$(mktemp -d),可能会解决此问题。为了获得持久性解决方案,可以通过删除 ~/.config/chromium/Local\ State 来重置 GPU 信息。

HiDPI 渲染不正确

Chromium 会自动为 HiDPI 显示器进行缩放,但这可能会导致 GUI 渲染不正确。

可以使用 --force-device-scale-factor=1 标志来覆盖自动缩放系数。

当启用 原生 Wayland 支持 时,Chromium 将根据每个监视器的配置缩放比例自动进行缩放。

每次启动时使用 GNOME Keyring 提示输入密码

请参见 GNOME/Keyring#Passwords are not remembered

除密码外所有内容都在同步

如果仅密码同步不起作用(您可以在 chrome://sync-internals/ 中检查),请删除配置文件登录数据。

$ rm ~/.config/chromium/Default/Login\ Data*

有关详细信息,请参见 Google Chrome 帮助论坛

在桌面环境之间切换时丢失 Cookie 和密码

如果您在终端中启动 Chromium 时看到消息 Failed to decrypt token for service AccountId-*,则它可能尝试使用错误的密码存储后端。切换桌面环境时可能会发生这种情况。

请参见 #Force a password store

启用 Google Sync 时启动时挂起

尝试使用 --password-store=basic 或其他合适的密码存储启动 Chrome。

请参见 #Force a password store

Chromium 每次启动时都要求设置为默认浏览器

如果您使用 KDE 并且曾经将 Firefox 设置为默认浏览器(通过点击 Firefox 中的按钮),您可能会发现 Chromium 每次启动时都要求设置为默认浏览器,即使您点击了“设置为默认”按钮。

Chromium 通过运行 xdg-settings check default-web-browser chromium.desktop 来检查此状态。如果输出为“no”,则它不将自己视为默认浏览器。xdg-settings 脚本会检查以下 MIME 关联,并期望所有这些都设置为 chromium.desktop

x-scheme-handler/http
x-scheme-handler/https
text/html

要修复此问题,请转到 系统设置 > 应用程序 > 默认应用程序 > Web 浏览器 并选择 Chromium。然后,设置 text/html 的 MIME 关联。

$ xdg-mime default chromium.desktop text/html

最后,更新 MIME 数据库

$ update-mime-database ~/.local/share/mime

登录 Google 时出现“此浏览器或应用可能不安全”错误

截至 2020.04.20,如果您使用 --remote-debugging-port=9222 标志运行 Chromium 进行 Web 开发,则无法登录您的 Google 帐户。暂时禁用此标志以登录,然后可以重新启用它。

Chromium 渲染为 60 FPS,尽管显示器刷新率更高

有关可能包含其他解决方法的一般性问题的上游 bug 报告可以在 此处找到,以及一个关于混合刷新率的姊妹问题可以在 此处找到。

混合刷新率

提示 此问题可能不存在于 Wayland 后端,需要测试。

当使用具有混合刷新率的显示器时(例如 60Hz 和 144Hz),Chromium 可能会为较低 Hz 的显示器进行渲染。

有一个适合此问题的解决方法,将以下标志 追加持久化配置中。

~/.config/chromium-flags.conf
--use-gl=egl
--ignore-gpu-blocklist
--enable-gpu-rasterization

这应该能让 Chromium 在 144Hz 显示器上以 144 FPS 运行,假设您的合成器也以 144 FPS 刷新。请记住,由于 FS#67035,它可能有点卡顿,但比卡在 60 FPS 要好得多。

在 Wayland 后端运行

似乎存在特定于 Wayland 合成器的问题会触发此问题。特别是,Plasma 5 似乎无论如何设置都只能在 60Hz 下渲染,但 Plasma 6(撰写时为 rc1)则让 Chromium 在高刷新率下完美运行。

万不得已时,一种解决方法可能是切换到 XWayland 后端。

Chromium 滚动速度慢

Chromium 和基于 Electron 的应用程序中的鼠标滚轮滚动速度可能太慢,不适合日常使用。以下是一些解决方案。

Libinput#Mouse wheel scrolling speed scaling 会在 libinput 中注入 libinput_event_pointer_get_axis_value 函数,并提供一个更改比例因子的接口。这不是应用程序级别的注入,因此需要一个额外的脚本来针对应用程序进行比例因子调优。请注意,当比例因子足够大时,Chromium 中小高度开发者工具的滚动速度可能过快。

IMWheel 通过多次重放 X 滚轮按钮事件来增加滚动距离。但是,Chromium 将真实滚动和重放的滚动视为两个事件。它们之间有一个细微但明显的延迟,因此一次鼠标滚轮滚动会导致页面跳转两次。此外,触摸板滚动也需要额外的注意。

Linux Scroll Speed FixSmoothScroll 是两个支持滚动距离修改的 Chromium 扩展程序。在网页中滚轮滚动时,将找到当前焦点节点的最近可滚动祖先,然后在其上调用具有给定像素距离的滚动方法,即使它已经滚动到底部。因此,一旦您滚动到文本编辑器或任何可滚动元素中,除非移动鼠标,否则您将无法滚动出它。此外,基于扩展程序的解决方案不能在 Chromium 外部使用。

视频加载但无法播放

本文或本章节已过时。

原因: 链接部分指出 Chromium 未受影响。(请在 Talk:Chromium 中讨论)

这可能是 PulseAudio 问题。请参阅 PulseAudio/Troubleshooting#Browsers (firefox) load videos but do no play 中的建议修复。

由于数据库损坏而未保存密码

存储的密码数据库可能会损坏,需要重建。这样做会销毁其中的所有数据/丢失已存储的密码。

从终端启动 chromium,并查找类似如下的输出:

[472531:472565:1207/055404.688559:ERROR:login_database.cc(1048)] Password decryption failed, encryption_result is 2

退出 chromium,然后删除这三个数据库文件:~/.config/chromium/Default/Login Data*

再次启动 chromium 应该会重新创建它们。

KDE Wayland 上光标不正确

请参见 KDE#Plasma cursor sometimes shown incorrectly

Wayland 下 Chromium 窗口透明

由于一个 bug,Chromium 124 必须使用显式命令行标志 --ozone-platform=wayland 启动。

Wayland 硬件加速缓冲区句柄为 null 错误

由于一个 bug,当从终端启动时,您可能会在日志中看到以下内容,尤其是在 Wayland 上启用硬件加速时:

[333310:333425:0919/121130.103852:ERROR:gpu_channel.cc(502)] Buffer Handle is null.
[333341:18:0919/121130.104000:ERROR:shared_image_interface_proxy.cc(134)] Buffer handle is null. Not creating a mailbox from it.
[333310:333425:0919/121130.137149:ERROR:gbm_pixmap_wayland.cc(82)] Cannot create bo with format= YUV_420_BIPLANAR and usage=SCANOUT_CPU_READ_WRITE

目前,解决方法是添加此标志:

~/.config/chromium-flags.conf
--disable-gpu-memory-buffer-video-frames

没有声音服务器时没有可用音频

Chromium 不支持 Advanced Linux Sound Architecture#Addressing hardware directly。如页面所示,设置输出设备 pcm.dmixerpcm.dsnooper,并使用 -alsa-output-device=pcm.dmixer -alsa-input-device=pcm.dsnooper 标志。

启动时出现 Gnome “全局快捷键”菜单

由于定义了全局快捷键的扩展程序(如 obsidian web clipper),Gnome “全局快捷键”会在启动时出现。这在 https://github.com/brave/brave-browser/issues/44886 中进行了描述,可以通过添加此标志来修复:

~/.config/chromium-flags.conf
--disable-features=GlobalShortcutsPortal

Compose 键无效:无法使用键盘输入特殊字符

由于一个 bug,Compose 键在近期版本的 Chromium 中不起作用。当用户尝试在浏览器中的任何地方输入特殊字符(如“@”或 umlauts)时,这个问题就会显现出来。使用 Compose 键的特殊键组合(例如 `ALT GR`)在所有应用程序中都有效,除了 Chromium。此问题最可能与 gtk 相关,无法通过在 Wayland 和 X11 之间切换来解决。它在 https://issues.chromium.org/issues/327158031 中进行了描述,可以通过添加此标志来修复:

~/.config/chromium-flags.conf
--disable-gtk-ime

Chromium 在 Wayland 上未完全最大化

您必须通过 chrome://settings/appearance 菜单启用 使用系统标题栏和边框

Chromium 没有声音,但存在声音输出设备

对于 WirePlumber 用户,重置 WirePlumber 状态可能会有帮助。

参见