我们发布了 Mozilla 开发者预览版系列的新版本,作为测试我们正在添加到 Mozilla 平台的新特性的一种方式。这些特性可能或可能不会在未来 Firefox 桌面版或手机版的版本中发布。但这正是我们发布这些版本的原因 - 尽早进行测试并获得反馈,以便我们知道如何处理它们。
请注意,此版本不包含最近有新闻报道的两个内容:D2D 或我们一直在进行的新 JavaScript VM 工作。
由于这是一个专注于 Web 开发者的博客,我认为谈论对你们所有人来说有什么新功能很重要。所以我们将直接进入主题。
进程外插件
大约三周前,我们发布了一个 a1 版本,以对一些新的 Web 开发者功能进行测试(我们将在下面再次列出)。该版本与这个版本之间最大的区别是包含了 Windows 和 Linux 的进程外插件。(Mac 需要更多工作,我们正在尽快努力完成。)
网络上有很多插件,它们的质量参差不齐。因此,我们将插件推向进程外,这样当 其中一个插件崩溃 时,它不会带走整个浏览器。(它还有很多其他好处 - 我们可以更好地控制内存使用、CPU 使用率,并且也有助于改善整体 UI 延迟。)
如果你想了解更多信息,请查看 Ben Smedberg 的这篇文章,文章介绍了它的工作原理、可以设置的偏好设置以及如何帮助进行测试。如果你能帮助我们,将对我们有很大帮助。
(如果你真的想加入测试队伍,我们强烈建议你开始运行我们的 夜间构建版本,它们是最前沿的,但通常足够稳定,可以用于日常使用。)
无论如何,让我们来看一下来自 发布公告 的功能列表和性能改进。
Web 开发者功能
- 支持 内容安全策略。这基本上已经完成,只是缺少禁用
eval()
的功能。 - 现在支持
<input/>
和<textarea>
的占位符属性。 - 支持 SVG 中的 SMIL 动画。对某些 SVG 属性进行动画的支持仍在开发中,
animateMotion
元素尚不支持。 - 支持 CSS 过渡。这种支持还不完全:对转换和渐变的动画支持尚未实现。
- 支持 WebGL,默认情况下禁用,但可以通过更改偏好设置来启用。有关更多详细信息,请参见 这篇博文 和 这篇博文。
- 支持 Range 对象上的
getClientRects
和getBoundingClientRect
方法。有关详细信息,请参见 错误 396392。 - 支持 DOM 元素上的
setCapture
和releaseCapture
方法。有关详细信息,请参见 错误 503943。 - 支持 HTML5
History.pushState()
和History.replaceState()
方法以及popstate
事件。有关详细信息,请参见 错误 500328。 - 支持
<a href="https://mdn.org.cn/en/CSS/background-image">-moz-image-rect()</a>
的 background-image 值。有关更多详细信息,请参见 错误 113577。
有关新的 Web 开发者功能的完整列表,请访问我们关于 Web 开发者即将推出的功能 的页面。
性能改进
- 我们已从主线程中删除链接历史记录查找,并将其更改为异步。这会导致 页面加载期间 I/O 减少,并改善整体浏览器响应速度。
- 加载 HTML5 规范 不会再导致浏览器长时间暂停。
- 对布局性能进行了大量改进,包括处理 DOM 访问时间、颜色管理性能、文本区域改进以及布局引擎中的许多其他热点问题。
- JavaScript 引擎进行了许多改进:字符串处理得到改进,闭包速度更快,TraceMonkey 中对递归的某些支持等等。
- 对在
<foreignObject>
中重绘 HTML 的性能进行了改进。 - 字符串不会在主 DOM 代码和 Web Workers 之间复制,这提高了在将大型数据块在线程之间移动的线程化 JavaScript 的性能。
14 条评论