目录:网上冲浪指南

2022 年,给我来一份 Chromium 38

2022/03/17

最近在做一个劝用户远离老旧浏览器的功能,大概就是在用户使用非常老旧的浏览器访问时,一旦脚本出错了,就提示他升级到最新版本的浏览器。在进行功能自测的时候,我发现想要在 2022 年的 Linux 桌面上运行老旧浏览器并不是一件容易的事情。

失败案例

我做了很多尝试,大多以失败告终,要么是方向错了,要么就是开发体验太差。但我还是要把这些失败经历写下来,或许对下一个看到这篇的博文的人有所启发。

方案 失败原因

在 Windows10 虚拟机中安装旧版本浏览器

开发体验差,卡顿且笔记本发热严重 ,估计是我没有调教好 VM Player

Palemoon 浏览器

被他复古外观欺骗了,虽然 UI 很老,但是内核非常先进,支持 ES2021,不满足我的需求

Electron

最早的 Electron@1.3.1 在如今的 Arch Linux 上已经跑不起来了 😢

使用 Wine 自带的 IE

太懒了,没有搞

nw.js

node-webkit,后改名 nw.js,是一个用来编写浏览器套壳 App 的工具,大概在 2014 年就发布了第一个版本。它基于 Chromium 开发,并且打通了 Chromium 与 node.js 的壁垒,使得我们可以在浏览器中调用 node.js 模块。但对于我来说,这不是重点,重点是我们可以从 nw.js 的官网上下载非常旧的免安装 Chromium。

经过尝试后,我选择了 0.11.6 版本的 nw.js 作为老旧浏览器测试环境。只需几行代码,就可以让我们的网站在旧版本的 Chromium 中运行。

package.json
{
  "name": "legacy-browser",
  "main": "index.html"
}
index.html
<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <style type="text/css">
  html, body, iframe {
    width: 100%;
    height: 100%;
  }
  </style>
<script>
  var win = nw.Window.get();
  win.showDevTools();
  </script>
  <body>
    <iframe src="http://example.com"></iframe>
  </body>
</html>

可能会缺失的共享库

在 Arch Linux 上使用旧版本的 nw.js 时可能会因为缺少过时的共享库而报错,这些库一般是 libgconf 跟 libudev.0。只需要安装对应的 package 即可:

$ yay -S libudev0-shim archlinuxcn/gconf

内容导航

本网站所展示的文章由 Zeeko Zhu 采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可

Zeeko's blog, Powered by ASP.NET Core 🐳