在目前版本的桌面版 Firefox 中,整个浏览器运行在单个操作系统进程中。尤其是 JavaScript 在同一进程中运行着用户界面(UI,也称 "chrome 代码"),它还搭载着所有网页(也称“内容”,即“标签页”)。

未来版本的 Firefox 将在单独的进程中运行浏览器界面,与网页内容的进程分离。这种架构的第一次迭代是所有浏览器标签页在同一个进程中运行,浏览器界面运行在另一个进程中。在未来的迭代中,我们期望有一个以上的内容进程。提供多进程 Firefox 的项目名为 Electrolysis,有时被简称为 e10s。

普通的网页不会受到多进程 Firefox 的影响。Firefox 本身和 Firefox 附加组件的开发者将受到影响,如果他们的代码依赖于能直接访问 Web 内容。

不同于此前的直接访问内容,chrome JavaScript 将使用消息管理器来访问内容。为了帮助缓解过渡期,我们实现了跨进程对象包装器(CPOW)和一些面向附加组件开发者的兼容性垫片。如果你是一名附加组件开发者并且想知道自己是否受到影响,参见多进程 Firefox 工作指南

多进程 Firefox 目前在 开发者版本 默认启用。


技术概述
高等层面看待多进程 Firefox 如何被实现。
术语表
多进程 Firefox 领域相关的术语参考。
消息管理器
完整的指南,在 chrome 与内容之间通信的对象。
基于 SDK 的附加组件
如何迁移使用 Add-on SDK 开发的附加组件。
各类 URI 在哪里加载
各类 URI 的快速指南:chrome:, about:, file:, resource: - 在哪个进程被加载。
动机
为什么我们要实现多进程的 Firefox:性能、安全和稳定性。
附加组件迁移指南
如果你是一名附加组件开发者,看看你的影响,以及如何更新你的代码。
跨进程对象包装器(CPOW)
Cross Process Object Wrappers 是一个迁移辅助,使 chrome 代码能够访问内容。
调试内容进程
如何调试运行在内容进程中的代码,包括框架和进程脚本。
多进程 Firefox 中的标签选择
多进程 Firefox 中如何切换标签页。

chrome 脚本的限制
哪些 chrome 代码的做法将不再有效,以及如何解决。
框架脚本的限制
哪些框架脚本的做法将不再有效,以及如何代替。

联系我们

有关此项目的更多信息、参与或提问。

文档标签和贡献者

 此页面的贡献者: slanterns, yfdyh000, wbamberg
 最后编辑者: slanterns,