Ocavue's Blog
下载并测试旧版本的 Chromium 2022-12-15

最近发现我的 Web 项目似乎在不同版本的 Chrome 浏览器中行为不同,于是就想找一下不同版本的 Chrome 进行测试。不过因为下面的两个原因,似乎安装老版本的 Chromium 是更好的选择:

  1. 出于安全原因,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 (opens new window)

  2. Chrome 默认会自动升级,但是 Chromium 不会自动升级。

下面我将简单介绍一下下载、安装以及运行旧版本的 Chromium 时可能会遇到的问题,以及对应的解决办法。我使用的平台 M2 芯片的 macOS 12.6,其他平台应该大同小异。

# 如何下载老版本的 Chromium

我推荐 GitHub 用户 vikyd 的这个开源项目 Chromium History Versions Download (opens new window)

在下拉框中选择对应的平台,并输入想要下载的版本,按回车后就可以找到对应版本的链接,并跳转到 Google 官方网站下载对应的安装包。

download-chromium.png

# 如何运行老版本的 Chromium

下载并解压 chrome-mac.zip 后,如果直接双击打开 Chromium,会看到下面的报错 "Chromium" is damaged and can't be opened.

chromium-opening-error.png

这个问题可以通过在 Terminal 中运行如下的命令解决:

xattr -cr "/YOUR_DIR/Chromium.app"

其中的 YOUR_DIR 需要替换为你自己的 Chromium 目录。在运行上述命令后,双击打开 Chromium 就可以正常运行了。

# 如何同时运行多个不同版本的 Chromium

我发现如果我尝试同时运行多个版本不同的 Chromium,它们实际上运行的都是同一个实例。在 Chromium 中打开链接 chrome://settings/help 就能看到当前运行的 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/

two-chromium-instances.png

# 如何找到两个不同版本的 Chromium 之间的代码差异

我想要知道两个不同的 Chromium 版本之间有哪些变更,可以打开 https://omahaproxy.appspot.com 并在下面的 Change Log 中分别输入新老版本号,然后点击 Show Change Log 就能看到 Chrome 的变更记录链接了

find-chromium-change-log.png

# 如何下载 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

chromium-google-source-png.png chromium-github-png.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/

知识共享协议

本文采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议 (opens new window)进行许可。