最新发布的 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
评论