Firefox Quantum 支持跨浏览器插件架构

  • Kevin Ball
  • 薛命灯

2017 年 12 月 21 日

话题:JavaScriptChrome语言 & 开发

最新发布的 Firefox 57 “Quantum”加入到 Chrome 和 Edge 的行列,现在只支持基于 WebExtensions API 的扩展插件,也就是基于跨浏览器的扩展架构,使用纯 HTML、CSS 和 JavaScript 来开发。基于旧架构的 Firefox 插件不能在 Quantum 上使用。

WebExtensions API 是由 Mozilla 根据 W3C 浏览器插件社区工作组提出的建议而开发的,现在 Chrome、Firefox 和 Edge 使用了相同的架构,Web 开发者开发的插件只需要做少量修改就可以跨浏览器运行。开发者可以在 MDM 上查看更多相关文档

Firefox 从1.0 版本开始就支持扩展插件,它们使用 Mozilla 的 XML 用户界面语言(XUL)进行开发,可以自由访问 Firefox 的内部细节。来自 How-to Geek 的 Justin Pot 解释了这种方式的优点和不足:

Firefox 插件可以在一定程度上改变浏览器的行为,这也就是它们强大的地方:没有什么东西是它们一定能做或一定不能做的。不过这也是新版 Firefox 要与它们断绝关系的原因。

谷歌在 2009 年发布了Chrome 的插件特性,带来了一种新的插件开发模型,可以使用纯 HTML、CSS 和 JavaScript 开发插件,并提供了一组完善的 JavaScript API 让插件可以与浏览器发生交互。

不久之后,Mozilla 于 2011 年 7 月发布了新的插件 SDK,并声称“新 SDK 让使用 JavaScript、HTML 和 CSS 开发 Firefox 插件变得更容易”。SDK 一直朝着这个方向发展,不过仍然允许插件访问 Firefox 底层的细节

这种状态持续了好几年,每个浏览器都有自己的插件架构。2015 年 5 月,W3C 成立了浏览器插件社区工作组,他们的使命是“尝试对插件的包结构、API 和可移植性(如跨浏览器)进行标准化”。

2015 年 8 月,工作组提出的建议很快就变成了新版的 Firefox WebExtensions API。2015 年 11 月 3 日,该 API 的初始版本出现在了 Firefox 42 中。微软 Edge 在 2016 年 8 月 2 日的 Windows 10 年度更新版本上发布了基于相同架构的插件 API。随着 Firefox Quantum 的发布,旧版的插件 API 完全被禁用,现在只支持 WebExtensions API。

查看英文原文Firefox Quantum Commits to Cross-Browser Extension Architecture

JavaScriptChrome语言 & 开发