“E10S-Multi”:Firefox 的新多进程模型
今天的版本完成了 Firefox 向完全多进程浏览器的转变,除了 UI 进程之外,它还会运行许多并发的内容进程,并且在 Windows 上还会运行一个特殊的 GPU 进程。这种设计使利用现代处理器上的所有可用内核变得更加容易,并且将来可以安全地隔离网页内容。它还提高了稳定性,确保单个内容进程崩溃不会导致所有其他标签或浏览器剩余部分崩溃。
多进程 Firefox 的初始版本(代号为“Electrolysis”,简称“e10s”)于去年 8 月与 Firefox 48 一起发布。这个第一个版本将 Firefox 的 UI 移动到它自己的进程中,以便即使在负载下,浏览器界面也能保持流畅。Firefox 54 进一步将此提升到了一个新的水平,它并行运行许多内容进程:每个进程都有自己的 RAM 和 CPU 资源,由主机操作系统进行管理。
无论优化程度如何,额外的进程确实会带来少量的内存开销,但我们已经付出了极大的努力,将开销降到了最低。即使有了这些优化,我们仍然希望做更多的事情来确保 Firefox 能尊重你的 RAM。这就是为什么,Firefox 不会为每个标签都生成一个新进程,而是设置了一个上限:默认情况下是四个,但 用户可以配置(about:config
中的 dom.ipc.processCount
)。这样可以让你掌控一切,同时仍然让 Firefox 能够充分利用多核 CPU。
要详细了解 Firefox 的多进程体系结构,请查看这篇文章 关于寻找“金发姑娘”浏览器的 Medium 帖子。
新的 WebExtension API
Firefox 继续快速实现新的 WebExtension API。这些 API 旨在跨浏览器工作,并且将在今年 11 月 Firefox 57 发布时成为唯一可用于添加加载项的 API。
最值得注意的是,现在可以使用 WebExtensions 创建 自定义 DevTools 面板。例如,下面的屏幕截图显示了 Vue.js DevTools 的 Chrome 版本在 Firefox 中运行,无需任何修改。这极大地减少了 DevTools 加载项作者的维护负担,确保无论你偏好哪个框架,其工具都可以在 Firefox 中运行。
此外
- 可以通过
sidebar_action
清单属性 创建侧边栏。结合其他 API,侧边栏可以用来实现 垂直 或 树形 标签等。 - WebExtensions 现在可以 替换或自定义新标签页。(示例)。
- WebExtensions 还可以注册对 自定义协议的支持。例如,加载项可以将
irc://
链接重定向到 IRCCloud。
在 加载项博客上阅读有关新的和更改的 API 的完整集合,或查看 MDN 上的完整 WebExtensions 文档。
CSS clip-path 中的形状
CSS clip-path 属性允许作者定义元素的哪些部分可见。以前,Firefox 仅支持定义为 SVG 文件的裁剪路径。在 Firefox 54 中,作者还可以使用 CSS 形状函数 来创建圆形、椭圆形、矩形或任意多边形。(演示)。
与许多 CSS 值一样,裁剪形状也可以进行动画。有一些 规则控制值之间插值的执行方式,但简而言之:只要你是在相同形状之间进行插值,或者是在具有相同顶点数的多边形之间进行插值,你应该没问题。以下是如何对圆形裁剪进行动画演示
你还可以根据用户输入动态更改裁剪,例如,在这个示例中,一个“潜望镜”效果由鼠标控制
要了解更多信息,请查看上周的 关于 clip-path 的文章。
Project Dawn
最后,Firefox 54 的发布标志着 Project Dawn 过渡的完成,消除了 Firefox 的预发布版本通道(代号为“Aurora”)。Firefox 版本现在每六周直接从 Nightly 转移到 Beta。Firefox Developer Edition 以前基于 Aurora,现在基于 Beta。
对于早期采用者,我们还将 Firefox Nightly for Android 在 Google Play 上提供。
关于 Dan Callahan
Mozilla 开发者关系工程师,前 Mozilla Persona 开发者。
关于 Belén Albeza
Belén 是 Mozilla 开发者关系的工程师和游戏开发者。她关心网页标准、高质量代码、可访问性和游戏开发。
22 条评论