Chromium
Chromium 是一款来自 "The Chromium Project" 的开源图形网络浏览器,基于 Blink 渲染引擎。它也是商业软件 Google Chrome 浏览器得以组成的基础。
在这里你可以看到 Google Chrome 与 Chromium 浏览器的区别。此外,还有一点重要的不同:
- 2021年3月2日发布的 Chromium 89 及其以后版本不再支持 Google 账户同步功能。
长期来讲,最好考虑使用 xbrowsersync 来同步书签数据。
在这里 List of applications/Internet#Blink-based 你可以看到基于 Chromium 的其它浏览器。
安装[编辑 | 编辑源代码]
想要安装Chromium的话,有以下几种安装包可选:
- chromium包——稳定版本;
- chromium-devAUR——Dev 开发版本;
- chromium-snapshot-binAUR——Nightly 每日构建版本.
Google Chrome 软件包:
- google-chromeAUR——稳定版本;
- google-chrome-betaAUR——Beta 测试版本;
- google-chrome-devAUR——Dev 开发版本.
配置[编辑 | 编辑源代码]
设置成默认浏览器[编辑 | 编辑源代码]
要讲 Chromium 设置成默认浏览器或设置下载文件的打开方式,请参阅 Default applications。
证书[编辑 | 编辑源代码]
Chromium 使用Network Security Services进行证书管理。可以在 chrome://settings/certificates
中管理证书。
使flags持久化[编辑 | 编辑源代码]
chromium-flags.conf
和附带的自定义启动脚本是特定于 Arch Linux 软件仓库所打的chromium包包的。对于 google-chromeAUR和google-chrome-devAUR,请用 chrome-flags.conf
和chrome-dev-flags.conf
来代替。你可以把你的flag 写入chromium-flags.conf
文件,放置到$HOME/.config/
(或$XDG_CONFIG_HOME
,需要配置环境变量)或全局的/etc/
目录下。
无需使用特殊语法,这些flag就能像终端参数一样被 Chromium 识别和使用。
- 参数按空格分割,并遵循shell引用规则,但不会做进一步的解析。
- 假如文件中有不正确的引用,则会引发Fatal Error。
- 为了便于阅读,可以将flag置于单独的行中。
- 以井号 (#) 开头的行不会被读取. (这条规则只被 chromium包 启动脚本所支持 ,所以你在使用google-chromeAUR软件包时其实是没有这条规则的)
下面是 chromium-flags.conf
文件的一个例子,它定义了一个 --start-maximized --incognito
的flag:
~/.config/chromium-flags.conf
# This line will be ignored. --start-maximized --incognito
强制使用 GPU 加速[编辑 | 编辑源代码]
至少从 Chromium 110 开始,大多数系统默认启用 GPU 加速。如果您的系统配置与阻止列表匹配,则可能必须将以下标志附加到持久配置 :
chrome://gpu
可以看到对应的bug report的细节。
~/.config/chromium-flags.conf
--ignore-gpu-blocklist --enable-zero-copy
视频硬件解码[编辑 | 编辑源代码]
- Arch 和Chromium 都不对这个特性作官方的支持, [2]. 但是,官方软件仓库中的 chromium包 已经编译有 VA-API 支持,如果遇到问题你可以在 这个论坛帖子中寻求帮助.
- 从Chromium 122版本开始不再需要额外的VA-API包。在原生Wayland后端下使用官方存储库中的 chromium包时VA-API就已经工作。
- 在AMD GPU设备上,VA-API不能开箱即用,需要mesa>= 24.1并启用 Vulkan。这可能会导致 X11/XWayland 下的 WebGL 出现问题。从版本 125.0.6422.141-1起,Vulkan和 #原生 Wayland 上运行可一起使用。
如果要为 Chromium 启用 VA-API 支持:
如果你已经通过检查vainfo
的输出(参考硬件视频加速#检验 VA-API)确认了有效的 VA-API 支持,则可以先单独尝试以下标志:
~/.config/chromium-flags.conf
--enable-features=VaapiVideoDecodeLinuxGL
否则请继续尝试以下步骤:
- 为你的显卡安装正确的 VA-API 驱动,并且确认 VA-API 已经被启用并且正常工作,详见 硬件视频加速.对于 NVIDIA 专有驱动的支持,请安装libva-vdpau-driver-vp9-gitAUR。
- 设置
--enable-features=VaapiVideoDecoder
这个参数,对于ANGLE GL渲染 + libva-intel-driver包生效。 - 当使用 ANGLE 时, Chromium 会强制使用旧的 i965 驱动,不支持 intel-media-driver包。一个解决方案是手动配置VA-API. 详见[3] 。
- 如果想在 Xorg 上使用系统提供的 GL 渲染器,使用
--use-gl=egl
。使用Chrome 112时可能不再需要这么参数,使用AMD GPU时这个参数可能会破坏 GPU 加速 - 如果VA-API仍不生效,请尝试
--enable-features=VaapiIgnoreDriverChecks
或--disable-features=UseChromeOSDirectVideoDecoder
标志。 - 如果在X11和旧显卡上VA-API仍不生效,可以设置环境变量
LIBVA_DRI3_DISABLE=1
[4]。
Vulkan[编辑 | 编辑源代码]
使用 Vulkan 时,以下标志是必需的,并且在 Chromium 126和Mesa 24.1 上可能也足够了:
~/.config/chromium-flags.conf
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE
没有上面提到的任何其他标志。
小提示[编辑 | 编辑源代码]
去检查使用VA-API驱动程序支持的编解码器是否可播放视频( vainfo 会告诉您支持哪些编解码器,但 Chromium 仅支持 VP9 和 h264):
- 通过按下
Ctrl+Shift+I
或在右击菜单中选择检查按钮打开开发工具 - 添加媒体选项卡:汉堡菜单>更多工具>媒体
- 在新打开的媒体选项卡中,查看视频解码器的硬件解码器状态
请测试足够大的视频。从版本86开始,桌面版 Chromium 将仅加速大于720p的视频。
VP8/VP9 硬件解码不可用时,想要减少观看YouTube时的CPU占用,请使用 h264ify, enhanced-h264ify或者Not yet, AV1[5] 扩展。
在某些系统上 (尤其是在 Xwayland 上),您可能需要#强制使用 GPU 加速。仅需--ignore-gpu-blocklist
一个参数就达到目的。
您可能需要禁用 Skia 渲染器, 因为它目前不兼容视频解码加速--disable-features=UseSkiaRenderer
。
KDE integration[编辑 | 编辑源代码]
要集成到Plasma中,请安装plasma-browser-integration包。有关更多详细信息,请参阅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
原生 Wayland 上运行[编辑 | 编辑源代码]
从97版本开始,可以使用以下标志启用chromium中的原生 Wayland 支持[6]:
--ozone-platform-hint=auto
如果这不起作用,例如在Weston下的使用106版本,请使用:
--ozone-platform=wayland
请参阅#使flags持久化进行配置。也可通过browser flags menu设置。
这将在 wayland 会话中选择自动 wayland Ozone 后端,因此,即使你在 X11 和 Wayland 之间频繁切换,也可以使用单个.desktop
文件。
此外,如果您在使用输入法时遇到问题,您可能还想强制使用更新的 GTK:
--gtk-version=4
在采用上述标志时,fcitx5可能也无法正常使用。尝试使用--enable-wayland-ime
标识代替--gtk-version=4
。
--enable-wayland-ime --wayland-text-input-version=3
text_input_v1
协议的情况下,启用--enable-wayland-ime
标志才有效。已知实现该协议的合成器有:Weston,Kwin、Wayfire、Hyprland。用于导航的触摸板手势[编辑 | 编辑源代码]
要启用双指滑动来回浏览历史记录,请使用以下标志:
--ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation
提示和技巧[编辑 | 编辑源代码]
除非明确说明,否则以下提示和技巧应该适用于 Chromium 和 Chrome。
浏览体验[编辑 | 编辑源代码]
chrome:// URLs[编辑 | 编辑源代码]
可以通过 Chrome URLs访问到许多调整。请参阅 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 覆盖/重写Preferences 文件[编辑 | 编辑源代码]
如果你启用了与 Google 帐户同步,Chromium 将覆盖对~/.config/chromium/Default/Preferences
目录下 Preferences 文件的任何直接编辑 。解决方法,使用--disable-sync-preferences
参数启动 Chromium。
$ chromium --disable-sync-preferences
如果你是在登录桌面环境时后台启动 Chromium,请确保你的桌面环境使用的命令是:
$ chromium --disable-sync-preferences --no-startup-window
搜索引擎[编辑 | 编辑源代码]
要使 wiki.archlinux.org和 wikipedia.org等网站的首次搜索更方便,在设置 > 搜索下,点击管理搜索引擎。 在那里,编辑 Wikipedia条目并将其关键字更改为w(或你喜欢的其他关键字)。现在,从地址栏在 Wikipedia搜索“Arch Linux”,只需输入“w arch linux” 即可。
临时文件系统[编辑 | 编辑源代码]
临时文件系统中的缓存[编辑 | 编辑源代码]
限制 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
临时文件系统中的配置文件[编辑 | 编辑源代码]
将浏览器配置文件挪到 临时文件系统,包括/tmp
,或者/dev/shm
,可以改进应用程序响应,因为整个配置文件都存储在内存中。
使用主动配置文件管理工具(如 profile-sync-daemon包)以获得最大的可靠性和易用性。它可以通过符号链接或绑定挂载的形式,同步 浏览器配置文件目录
到内存中。参考 Profile-sync-daemon。
启动新的浏览器实例[编辑 | 编辑源代码]
当你启动浏览器时,它首先检查使用相同数据目录的另一个实例是否已经在运行。如果有,则新窗口与旧实例关联。如果要启动浏览器的独立实例,则必须使用 --user-data-dir
参数指定单独的目录:
$ chromium --user-data-dir=/path/to/some/directory
~/.config/chromium/
。使用 torrent 客户端直接打开 *.torrent 文件和磁力链接[编辑 | 编辑源代码]
默认情况下,Chromium 会直接下载 *.torrent
文件,你需要单击屏幕左下角的通知,使用默认的 torrent 客户端打开文件。这可以通过以下方法避免:
- 下载一个
*.torrent
文件。 - 右键单击屏幕左下角显示的通知。
- 勾选"始终打开此类型的文件" 选择框。
请参阅 xdg-open更改默认关联。
触摸滚动触摸屏设备[编辑 | 编辑源代码]
你可能需要指定要使用的触摸设备。 xinput list
找到你的触摸屏设备,然后使用参数 --touch-devices=x
启动 Chromium,其中“x”是你设备的 ID。
减少内存使用[编辑 | 编辑源代码]
默认情况下,Chromium 对访问过的每个网站实例都使用单独的操作系统进程 [7] 但是,你可以在启动 Chromium 时指定命令行开关来修改此行为。
例如,要为所有网站的实例共享一个进程,请执行以下操作:
$ chromium --process-per-site
要使用单个进程模式:
$ chromium --single-process
此外,你可以使用扩展(例如 Tab Suspender和OneTab)暂停或存储非活动选项卡。
用户代理[编辑 | 编辑源代码]
可以在 Chromium 的基本实例开始时通过 --user-agent="[string]"
参数来任意修改 User Agent
DOM Distiller[编辑 | 编辑源代码]
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
其中 0x8086
和 0x1912
替换为你要使用的 GPU 的 ID(如 chrome://gpu
页面上所示)。
从 Firefox 导入书签[编辑 | 编辑源代码]
为了简化过渡,你可以将书签从 Firefox导入到 Chromium 中。
将 Chromium 导航到 chrome://settings/importData
。
如果你的计算机上已经安装了 Firefox,你可以直接从 Firefox 导入书签以及许多其他内容。
确保已选择Mozilla Firefox。可选,你可以在此处取消选中一些不需要的项目。点击 导入 然后点击完成就可以了。
如果您从另一台 PC 导入书签,则必须先从 Firefox 导出书签。
在火狐中:Ctrl+Shift+o
>导入和备份 > 导出书签到 HTML文件。
程序几乎相同。您需要前往 chrome://settings/importData
。但这一次,在下拉菜单中,选择 HTML 书签文件 并单击 选择文件 按钮上传所需的书签文件。
启用系统通知[编辑 | 编辑源代码]
进入 chrome://flags#enable-system-notifications
并选择启用。
启用鼠标中键自动滚动[编辑 | 编辑源代码]
自动滚动仍然是一个实验性功能[9]。如果 Chromium 或基于 Chromium 的浏览器不是开发版本,并且正在 Linux 环境中运行,则默认情况下会禁用它。[10]
要启用此功能,请使用 --enable-features=MiddleClickAutoscroll
标志启动浏览器。如果您想使选项持久化,参考 #使flags持久化。
- 虽然设置
--enable-blink-features
与--enable-features
的工作方式相同 ,但使用前者浏览器可能会显示警告(稳定性和安全性将受到影响),说明这是一个不受支持的标记。 - 作为替代方案,您可以从 Chrome Web Store 添加具有类似行为的扩展(如 WHEELY)。
U2F 身份验证[编辑 | 编辑源代码]
安装 libfido2包 库。这提供了启用以用户身份对U2F 密钥访问所需的 udev 规则。默认情况下,U2F 密钥只能由 root 访问,如果没有这些规则,Chromium 将报错。
主题[编辑 | 编辑源代码]
你可以让 Chromium 使用你当前的 GTK 主题来做浏览器菜单和控件。在chrome://settings/appearance
使用GTK。
深色模式[编辑 | 编辑源代码]
从 Chromium 114 开始,XDG桌面门户 用于自动确定用户的首选外观(issue), 从而将暗模式启用与用户的 GTK 主题分离。这个偏好将应用于CSS中的首选配色方案
, JavaScript
,设置
和开发者工具
。
更改首选外观的方法取决于您的 XDG 桌面门户后端。例如, 许多桌面环境在其外观设置中都有一个开关。或者例如当用xdg-desktop-portal-gtk包时, 用以下命令将 Preferred Mode 设置为prefer-light
, prefer-dark
或default
:
$ dconf write /org/gnome/desktop/interface/color-scheme \'prefer-dark\'
您可以用dbus包 包中的dbus-send
命令查询当前首选外观(文档):
$ 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-cleaner包 和 browser-vacuumAUR 就是做这个的。
安全[编辑 | 编辑源代码]
禁用 JIT[编辑 | 编辑源代码]
以降低性能为代价,您可以禁用 JavaScript 到机器码的即时编译。它负责JS 引擎中大约一半的安全漏洞。使用标志--js-flags=--jitless
.
WebRTC[编辑 | 编辑源代码]
WebRTC是一个通信协议,依赖于JavaScript,可能会从VPN背后泄露一个人的真实IP地址和硬件哈希值。虽然某些软件可能会阻止泄漏脚本运行,但为了安全起见,直接阻止此协议也可能是一个好办法。截至 2016 年 10 月,无法在桌面版 Chromium 上禁用 WebRTC,有一些扩展可用于禁用本地 IP 地址泄漏,其中一个就是这个扩展。
可以通过 https://browserleaks.com/webrtc 测试 WebRTC。
SSL 证书[编辑 | 编辑源代码]
Chromium 没有 SSL 证书管理器。它依赖于 NSS 共享数据库~/.pki/nssdb
。为了将 SSL 证书添加到数据库,用户必须使用 shell。
为自签名证书添加 CAcert 证书[编辑 | 编辑源代码]
获取CAcert并创建一个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>&-
用法在注释行中公布。
引用:
- https://web.archive.org/web/20180718193807/https://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu
- https://chromium.googlesource.com/chromium/src/+/master/docs/linux/cert_management.md
示例 2:使用Firefox将证书与TomatoUSB隔离[编辑 | 编辑源代码]
firefox包浏览器可用于将证书保存到文件中,以便手动导入到数据库中。
使用 Firefox:
- 浏览到目标 URL。
- 在看到“此连接不受信任”警告屏幕时,点击:我了解风险> 添加异常
- 点击:视图>详情 > 导出,将证书保存到临时位置(本例中是
/tmp/easy.pem
)。
现在导入证书以在 Chromium 中使用:
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "easy" -i /tmp/easy.pem
引用:
Canvas 指纹识别[编辑 | 编辑源代码]
Canvas 指纹识别是一种技术,它允许网站通过在渲染到 HTML5 Canvas 时检测差异来识别用户。此信息可以通过--disable-reading-from-canvas
标志设置为无法访问。
要确认此操作有效,请运行此测试,并确保在完整结果中将 “hash of canvas fingerprint” 报告为待定。
- 某些扩展需要从 canvas 中读取,通过设置
--disable-reading-from-canvas
来破坏。 - 如果没有canvas 读取,YouTube 播放器或 Google 地图无法正常工作。Qutebrowser issue 5345BBS#255958BBS#276425
隐私扩展[编辑 | 编辑源代码]
请勿跟踪[编辑 | 编辑源代码]
要启用请勿跟踪, 访问设置,滚动到高级
选项,并在 隐私和安全
下勾选发送包含你浏览流量的"请勿跟踪" 请求
。
强制用某一个密码存储[编辑 | 编辑源代码]
Chromium 使用一个密码库存储来存储你的密码,并使用 Chromium安全存储密钥加密 Cookie 值。[11]
默认情况下,Chromium 会自动发现要使用那个密码库,这可能会导致您在切换到其他桌面环境或窗口管理器时显然丢失密码和 cookie。
您可以强制 Chromium 使用特定的密码库,方法是使用标志--password-store
(值为下列之一)启动它
[12]:
gnome-libsecret
,通过libsecret使用 GNOME/Keyring。kwallet5
,使用KDE Wallet 5kwallet6
,使用 KDE Wallet 6basic
, 将密码和 Cookie 的加密密钥以纯文本形式保存在文件Login Data
中。detect
,默认的自动发现行为。
例如,要强制 Chromium 在另一个桌面或 WM 中使用 Gnome Keyring, 使用--password-store=gnome-libsecret
标志,参考 #flags持久化 使其持久化。
使用其他桌面环境的密码库时,你可能还希望自动解锁它。参考 GNOME/Keyring#Using the keyring and KDE Wallet#Unlock KDE Wallet automatically on login.
启用混合的后量子密钥交换[编辑 | 编辑源代码]
Chromium 从 155 版开始支持 TLS 1.3 的混合后量子密钥交换X25519Kyber768。[13]。默认情况下,此功能处于禁用状态,但可以使用标志chrome://flags/#enable-tls13-kyber
启用。
疑难解答[编辑 | 编辑源代码]
字体[编辑 | 编辑源代码]
标签字体过大[编辑 | 编辑源代码]
Chromium 将按照GTK#配置描述进行GTK设置。配置后,Chromium 将使用gtk-font-name
设置选项卡(这可能与窗口字体大小不匹配)。 要覆盖这些设置,请使用--force-device-scale-factor=1.0
。
自 Chrome Refresh 2023 成为默认字体以来,使用 Cantarell 字体的 GNOME 用户可能会注意到选项卡标题中的一些字符(如小写 g)被截断了 参考issue on chromium.org.
在这个问题修复之前,一个解决方法是配置另外一种字体代替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
时,此配置才适用,你可以用为 Google Chrome用chrome
。
WebGL[编辑 | 编辑源代码]
您的显卡可能已被 Chromium 列入黑名单。参考#强制使用 GPU 加速。
如果你将 Chromium 与Bumblebee一起使用,WebGL 可能会因 GPU 沙箱而崩溃。在这种情况下,您可以使用optirun chromium --disable-gpu-sandbox
禁用 GPU 沙箱。
有关WebGL支持的调试信息,请访问chrome://gpu/
。
Chromium 可能会在您的用户个人资料中保存有关 GPU 的错误数据(例如:如果你在使用Optimus的Nvidia卡
和 Intel卡
之间使用切换时,即使你没使用 Nvidia卡
或 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 启动时都会提示密码[编辑 | 编辑源代码]
除密码外,所有内容都能同步[编辑 | 编辑源代码]
如果仅密码不能同步 (你可以在chrome://sync-internals/
检查一下)删除配置文件中的登录数据:
$ rm ~/.config/chromium/Default/Login\ Data*
在桌面环境之间切换时丢失 Cookie 和密码[编辑 | 编辑源代码]
如果启动 Chromium时,在终端中看到该消息Failed to decrypt token for service AccountId-*
,它可能会尝试使用错误的密码存储后端。当您在桌面环境之间切换时,可能会发生这种情况。
参考#强制用某一个密码存储。
启用Google同步后挂起启动[编辑 | 编辑源代码]
尝试使用--password-store=basic
或其他合适的密码存储启动 Chrome。
参考#强制用某一个密码存储。
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
想要修复它,在 系统设置 > 应用 >默认应用 >网络浏览器 中选择 Chromium. Then, 设置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[编辑 | 编辑源代码]
这里是关于一般问题的上游错误报告,其中可能包含一些额外的解决方法,这里是一个关于混合刷新率的姊妹问题。
混合刷新率[编辑 | 编辑源代码]
当使用具有混合刷新率(例如 60Hz 和 144Hz)的显示器时,Chromium 可能会针对较低的 Hz 显示器进行渲染。 此问题有合适的解决方法,添加下面的标志到持久化配置:
~/.config/chromium-flags.conf
--use-gl=egl --ignore-gpu-blocklist --enable-gpu-rasterization
假设您的合成器也以144 FPS刷新,这配置应该可使Chromium在144Hz显示器上使用时以144 FPS运行。 请记住,由于FS#67035,它可能会有点不稳定,但它比卡在 60 FPS 要好得多。
在 Wayland 后端运行[编辑 | 编辑源代码]
似乎有特定的Wayland合成器的问题触发了这个问题。无论设置如何,Plasma 5 似乎都只在 60Hz 上渲染,但 Plasma 6(rc1,在撰写本文时)使 Chromium 在高刷新率下完美运行。
解决方法可能是在所有其他方法都失败时切换到 XWayland 后端
Chromium 滚动速度慢[编辑 | 编辑源代码]
在基于chromium 和 electron 的应用程序中,在日常使用中鼠标滚动可能太慢了。以下是一些解决方案。
给Libinput#调节滚轮滚动速度 注入 libinput_event_pointer_get_axis_value
函数会提供改变缩放因子的接口。这不是应用程序级别的注入,因此需要一个额外的脚本来调整特定的应用程序的缩放因子。请注意,当比例因子足够大时,在 chromium 的小高度开发人员工具上滚动可能会太快。
IMWheel通过多次重复 X 滚轮按钮事件来增加滚动距离。但是,chromium 将真实滚动和重复滚动假定为两个事件。它们之间有一个很小但明显的延迟,因此鼠标滚轮滚动一次会导致两次页面跳转。此外,触摸板滚动需要格外小心。
Linux Scroll Speed Fix和 SmoothScroll是两个支持滚动距离修改的 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 上不正确[编辑 | 编辑源代码]
Wayland 下的 Chromium 窗口是透明的[编辑 | 编辑源代码]
因为一个bug,Chromium 124 必须显式的以--ozone-platform=wayland
标志启动。
Wayland 硬件加速缓冲区句柄为空错误[编辑 | 编辑源代码]
因为一个 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主页
- Google Chrome版本笔记
- Chrome web store
- Chromium和Google Chrome的不同
- Chromium命令行开关的列表
- Profile-sync-daemon - 将 Chromium 配置文件保存在 tmpfs 中和同步到硬盘的一个系统服务
- Tmpfs -
/etc/fstab
中的临时文件系统 - 关于tmpfs的内核官方文档中的