关于 Firefox 多进程(e10s)的一些改变

关于 Firefox 多进程(e10s)的一些改变

Electrolysis 直译为电解,是电流通过电解质溶液引起氧化还原反应的过程,在 Mozilla 看来则是努力将火狐拆分成多个进程,提高响应速度,稳定性和安全性的项目名称,由于首字母 E 和最后的 s 之间有 10 个字母,又简称为 e10s 。这个项目最终会解决诸如「火狐卡死」「flash 导致火狐崩溃」「启动慢」等一系列问题。

这项工作的第一阶段是把火狐的 UI 界面和网页内容分离

第一阶段在一些 Firefox 48 用户上实现。对于不使用任何 Add-ons 的用户逐渐推进,从开始的1%逐步到50%,并在 49 版本实现对所有不安装任何 Add-ons 的用户开启 e10s,这样 Mozilla 可以检查的 e10s 的稳定性和参与数据以确保没有新的 bug。

然后是附加组件

如果 Beta 测试顺利的话,在 Firefox 50,e10s 将对安装了「经测试兼容 e10s 的扩展」用户开启,支持的扩展列表更新可以参考这里:arewee10syet.com/。而新 WebExtensions 内置多进程架构插件 API,它是被设计兼容多进程的。最后,Firefox 会为所有用户启用了多进程架构,附加软件不兼容的问题可能不再单独考虑。所以当务之急是附加组件的作者更新他们的附加组件与多进程架构兼容。

关于辅助功能和触摸屏

下一个重要的多进程更新定于 Firefox 51 时,目前对于带有增强功能和触摸屏的设备使用 e10s 还需要测试,而最终在 51 版本时实现。这意味着 Firefox 已经将页面加载和火狐界面相分离。

多个内容的过程

第二阶段是,支持多个内容处理。首先 Firefox 从 UI 界面拆分内容,以使加载的页面不会减慢 UI 界面。接下来要开始拆分内容进程,使一个加载缓慢的页面不会影响其他标签页的加载。目前这项工作正在进行,会在 2017 年上半年实现。

与多内容模块处理同步的,Mozilla 也在构建一个沙盒化内容模块的进程。沙箱的目的是限制 web 页面对浏览器的调用和对操作系统的访问。这将有助于 Firefox 处理一系列潜在的安全漏洞。如果顺利的话,这项工作今年就可以完成。

将扩展独立为进程

多进程的最后一部分是将扩展隔离到自己的沙箱中运行。类似于上面所说的沙箱化网页内容,并有助于提高性能,防止安全漏洞。将扩展放到自己的进程中可以确保 扩展不会拖慢浏览器启动或网页加载,也有助于防止一些恶意扩展对 Firefox 的攻击行为。目前仍处在这项工作的初步阶段。

————

正如 Mozilla 博客中所说:

这是一个庞大的工程,将采取几个版本来完成,但我们已经迈出了第一步。

多进程的开展虽然缓慢但也在持续变化,对广大用户而言最终会反映在使用体验上的提升。未来几个月 Firefox 将会有更多的多进程和安全性的变化,并保持与其他浏览器竞争对手在内存占用上的优势,Firefox 的历史上最大的架构变化即将开启。
发布于 2016-08-05

文章被以下专栏收录