下载并测试旧版本的 Chromium
最近发现我的 Web 项目似乎在不同版本的 Chrome 浏览器中行为不同,于是就想找一下不同版本的 Chrome 进行测试。不过因为下面的两个原因,似乎安装老版本的 Chromium 是更好的选择:
-
出于安全原因,Google 不提供老版本的 Chrome 下载。
Let’s say you want a build of Chrome 44 for debugging purposes. Google does not offer old builds as they do not have up-to-date security fixes.
Source: Download Chromium
-
Chrome 默认会自动升级,但是 Chromium 不会自动升级。
下面我将简单介绍一下下载、安装以及运行旧版本的 Chromium 时可能会遇到的问题,以及对应的解决办法。我使用的平台 M2 芯片的 macOS 12.6,其他平台应该大同小异。
如何下载老版本的 Chromium
我推荐 GitHub 用户 vikyd 的这个开源项目 Chromium History Versions Download
在下拉框中选择对应的平台,并输入想要下载的版本,按回车后就可以找到对应版本的链接,并跳转到 Google 官方网站下载对应的安装包。
如何运行老版本的 Chromium
下载并解压 chrome-mac.zip
后,如果直接双击打开 Chromium,会看到下面的报错 "Chromium" is damaged and can't be opened
.
这个问题可以通过在 Terminal 中运行如下的命令解决:
xattr -cr "/YOUR_DIR/Chromium.app"
其中的 YOUR_DIR
需要替换为你自己的 Chromium 目录。在运行上述命令后,双击打开 Chromium 就可以正常运行了。
如何同时运行多个不同版本的 Chromium
我发现如果我尝试同时运行多个版本不同的 Chromium,它们实际上运行的都是同一个实例。在 Chromium 中打开链接 chrome://settings/help
或者在 console 中执行 navigator.appVersion
就能看到当前运行的 Chromium 版本。
这个问题可以通过在命令行中使用 --user-data-dir
参数解决。给不同版本的 Chromium 指定不同的用户数据目录。下面是一个同时运行两个不同版本的 Chromium 的例子:
$ mkdir /tmp/1
$ mkdir /tmp/2
$ open ~/Downloads/Mac_Arm_905459_chrome-mac/Chromium.app --args --user-data-dir=/tmp/1/
$ open ~/Downloads/Mac_Arm_910031_chrome-mac/Chromium.app --args --user-data-dir=/tmp/2/
如何找到两个不同版本的 Chromium 之间的代码差异
我想要知道两个不同的 Chromium 版本之间有哪些变更,可以打开 https://omahaproxy.appspot.com 并在下面的 Change Log 中分别输入新老版本号,然后点击 Show Change Log 就能看到 Chrome 的变更记录链接了
如何下载 Chromium 源码中的二进制文件
点击上面步骤显示的 Chrome: View Change Low 链接可以跳转到 https://chromium.googlesource.com。在这里你可以找到更详细的 Git commit message 和 diff 信息。
但是,Google Source 似乎不像 GitHub 一样可以方便地直接在网页中查看或者下载二进制文件。比如我想要某个 commit 中的某张 PNG 图片,但是 Google Source 只显示了文件大小 90015-byte binary file
,这对我没什么帮助。
我不想把完整的 Chromium 下载到本地,因为它太大了。我发现 Chromium 在 GitHub 有一个镜像仓库,所以我可以直接使用 GitHub 查看我想要的二进制文件。
具体来说,只需要把链接前面的 https://chromium.googlesource.com/chromium/src/+/
替换为 https://github.com/chromium/chromium/tree/
就可以了。
https://chromium.googlesource.com/chromium/src/+/c75b98b895ea1d7c8c06d655704156f80e9c4ebd/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/text/text-selection-path-01-b-expected.png
|
V
https://github.com/chromium/chromium/tree/c75b98b895ea1d7c8c06d655704156f80e9c4ebd/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/text/text-selection-path-01-b-expected.png
参考链接
- https://www.chromium.org/getting-involved/download-chromium/
- https://support.google.com/chrome/a/answer/7125792
- https://vikyd.github.io/download-chromium-history-version/
- https://www.reddit.com/r/MacOS/comments/q9d772/homebrew_chromium_is_damaged_and_cant_be_openend/
- https://stackoverflow.com/questions/3785991/can-i-run-multiple-versions-of-google-chrome-on-the-same-machine-mac-or-window
- https://omahaproxy.appspot.com/