Firefox 50 优化 Electrolysis

  • James Chesters
  • 刘嘉洋

2016 年 11 月 24 日

话题:JavaScriptMozilla语言 & 开发

Mozilla 正式发布 Firefox 50。最新的版本中提升了来自多个内容进程用户的用户体验,并修复了十几个高影响的安全漏洞。

在 Firefox 最新版本的变更中,我们注意到了它对于Electrolysis的进一步改进。Electrolysis 是 Mozilla 实现在后台进程中呈现和执行 web 相关内容的功能,旨在提升浏览器的响应速度和稳定性。

Firefox 最新版本还改进了 SDK 扩展的性能,使用 SDK 模块加载器的扩展的性能,以及对多平台无插件视频的支持,这其中包括 WebM EME Support for Widevine。

Firefox 的产品副总裁 Nick Nguyen 告诉 InfoQ,虽然 Firefox 50“并没有为 JavaScript 引擎做出重大改变”,但还是提供了好几个重要功能。

值得 JavaScript 开发者关注的更新包括 sourcemap 连接、对 XHR 的堆栈跟踪以及 Web Console 中的 fetch() 请求。

根据 MDN 发表的文章,如果开发人员的 JavaScript 源代码被压缩,就会提供 source map。任何源代码中产生的消息和错误都将显示在 Web Console 中,并连接回到原始来源。

Firefox 50 为 JavaScript 开发者实现了 ES2015 Symbol.hasInstance 属性,用来“确定构造函数对象是否将对象识别为构造函数的实例之一”。

除此之外,Object.getOwnPropertyDescriptors() 方法可以“为一个给定对象的自有属性(即直接出现在对象上,而不是出现在对象的原型链中)返回一个属性描述符”。

Mozilla Foundation Security Advisory 2016-89中指出,十二个具有高影响的安全漏洞,以及一个关键的漏洞CVE-2016-5296在 Firefox 50 中修复。这个关键漏洞是由于“编译器优化处理 SVG 内容而导致 Cairo 中的堆缓冲区溢出,从而引起的潜在的崩溃”。

根据 RedHat 安全问题解决更新所示,“在处理异常的 web 内容的时候发现了多个缺陷。包含恶意内容的网页可能会导致 Firefox 的崩溃,或潜在地以运行 Firefox 的用户的权限执行任意代码”。

修复的一个高影响漏洞CVE-2016-9064中的扩展更新无法验证是否包内的扩展 ID 与正在更新的扩展 ID 相匹配,因此用户在连接时会受到“中间人攻击”。CVE-2016-9075高影响漏洞修复了恶意 web 扩展通过 mozAddonManager API 未经允许安装其他扩展的问题。

Nguyen 告诉 InfoQ,所有漏洞“都在内部发现或是有选择的披露”,“并没有已知的漏洞利用”。

发布说明中提供了 Firefox 50 变更的完整列表。

Mozilla 非常欢迎人们加入 Firefox 项目,InfoQ 的读者可以通过多种方式加入到 Firefox 中来。Mozilla Developer Network上提供了完整的说明,指导开发者的操作指南

查看英文原文Firefox 50 Extends Benefits of Electrolysis

JavaScriptMozilla语言 & 开发