Firefox 编译为 WebAssembly,在浏览器里运行浏览器
Simon Willison8 小时前
Puter 将 Firefox 编译为 WebAssembly(WASM),让整个浏览器运行在另一个浏览器中。演示展示了这样的嵌套关系:在 Chrome 标签页中运行 Firefox,再用其中的 Firefox 打开网页。
为什么选择 Firefox?
团队选择 Firefox 及其 Gecko 引擎,是因为它们具备较强的单进程运行支持。
演示的网络面板显示,加载资源包括约 233 MB 的 gecko.wasm 和 18 MB 的 chrome-assets.tar.zst。这些文件的体积也说明,这并不是一个轻量级的网页组件。
网络访问如何实现?
浏览器中的代码不能任意建立网络连接,因此,演示通过 WebSocket 承载 Wisp 协议,将全部网络流量经由 Puter 的服务器转发。
这种设计也带来了服务器负担:项目在 Hacker News 引发讨论后,团队曾扩容服务器以应对访问流量。
加密需要区分 HTTPS 与 HTTP
Puter 表示,该方案支持端到端加密。已有的 WebSocket 消息检查结果显示:
- 访问被测试的 HTTPS 站点时,WebSocket 消息中的网站流量呈加密状态。
- 访问 HTTP 站点时,请求和响应则以明文出现。
因此,不能将“通过 WebSocket 代理访问”直接理解为所有网站请求都获得了端到端加密;上述观察需要区分 HTTPS 与 HTTP,也不等同于完整的安全审计。
AI 辅助开发与相关项目
项目开发使用了 Claude Opus 和 Fable。按 Token 用量估算,其价值约为 2.5 万美元;不过,团队使用了 Claude Max 订阅方案,实际支付金额远低于这一估算值,具体金额未披露。
项目代码仓库名为 HeyPuter/firefox-wasm。另一个类似项目 theogbob/WebkitWasm 则尝试将 WebKit 编译为 WASM,但在这次介绍时尚无可访问的在线演示。