如果您有使用旧版技术(例如XUL/XPCOM或者Add-on SDK)开发的Firefox附加组件,请参阅这里的快速更新指南。使用 WebExtensions API 编写附加组件是 Firefox 的标准,随着2017年11月底 Firefox 57 的发布,这将是 Firefox 支持的唯一类型的扩展。

快速上手

  1. 了解您附加组件中必须更改的一些主要内容:
  2. 重写您的附加组件代码。您可以在 Mozilla Wiki 查到更多资源与支持信息。从 Firefox 51 开始,您可以嵌入一个 WebExtension 到一个自举型扩展或 SDK 附加组件中,并可以借此无缝移植一个旧版的附加组件。参见嵌入式 WebExtension
  3. 在您准备好已更新的旧附加组件时,提交新的附加组件到到 AMO 作为旧附加组件的一个更新...稍等一下...你真的准备这样做?由于扩展权限,你不能将WebExtension恢复成传统的插件格式,所以彻底检查一下,因为这是一个不可逆的过程。当然,也可以参见下面的混合示例。如果你还没有准备好,你可以在你过去的老旧插件中嵌入WebExtension,它允许您测试您的扩展迁移,但如果出现紧急状况需要撤回。
  4. 当你准备好向AMO提交你的WebExtension版的附加组件使,首先在新的WebExtension mainfest.json文件接口里以前版本的附加组件ID。你的扩展必须和之前版本的有相同的ID。从你的package.json中复制id的值到WebExtension的application section的id,这样您就可以向AMO提交您的插件更新了。

请注意,这是一个单向的转换,你不能将一个 WebExtension 反向更新为一个使用旧技术的附加组件。这就意味着,您必须完全确定已经准备好更新到 WebExtension,然后再提交更新的附加组件到 AMO。

迁移路径

SDK 扩展

这里是 SDK API 与 WebExtensions 的格式对比。如果你不知道如何使用你需要的 WebExtensions APIs 接口,看看下面学习如何请求的API以及如何实现它们。

XUL / XPCOM扩展

这里是XUL / XPCOM和 WebExtensions 的格式对比。如果你不知道如何使用你需要的webextensions APIs接口,看看下面学习如何请求的API以及如何实现它们。

部分迁移

嵌入式webextension是两类扩展扩展相结合,通过将webextension包含到引导或SDK扩展。如果你有一个将数据写入到文件系统的传统附加组件,并且你打算把它移植到WebExtensions,嵌入式webextensions可以帮助你过渡。嵌入式WebExtensions可以将你的附加组件存储的数据转换为WebExtensions可用的格式。这是至关重要的,因为它允许您移植您的用户上,而不需要他们重新安装插件。
嵌入式WebExtensions是一个过渡工具,因为Firefox57将不再支持。它们不应该被用于不需要过渡到WebExtensions的附加组件。

没有找到您所需的 WebExtensions APIs

为 Firefox 开发 WebExtension APIs - 如果你有 Mozilla 基础开发经验,想为 Firefox 直接开发 WebExtension API Firefox,这里有一个你可以开始贡献的 核准的 APIs 清单。

体验新的WebExtension API - 如果你想要原生的和修补的WebExtensions APIs ,WebExtensions Experiments 是为你准备的!

请求新的WebExtension API - 如果你需要一个新的WeExtension API,请阅读这篇

工具

  • web-ext is a command line tool designed to speed up various parts of the extension development process, making development faster and easier.
  • Lookup tool to check your add-on type and get porting resource recommendations
  • WebExtensions Helper speeds up browser extension development by providing utilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
  • Chrome Extension generator creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
  • Extensionizr is a wizard that helps you create a basic extension
  • Chrome Boilerplate is boilerplate code for Chrome WebExtension.
  • Skeleton Chrome Extension is an extension bootstrap and template

文档

联系方式

  • 您可以使用此 链接 获取帮助,了解关于拓展的新闻,或给我们发送反馈。

文档标签和贡献者

此页面的贡献者: RainSlide, Dhakkan, yfdyh000
最后编辑者: RainSlide,