从Firefox附加组件转换到WebExtensions:旧版Firefox上的附加版本更新

时间:2016-11-08 13:59:10

标签: firefox-addon firefox-webextensions

我们有一个Firefox扩展,最近从Firefox附加组件架构移植到“新”WebExtensions架构,但是,我们有几个问题:

  1. 有一个错误阻止我们的扩展使用WebExtensions在FF49中工作。
  2. 我们希望继续支持https://addons.mozilla.org上的旧附加组件版本,以支持使用旧版Firefox(包括Firefox ESR)的客户,但也希望将WebExtensions版本提供给那些喜欢最新版本的用户最好的浏览器版本。
  3. 我的问题是:我可以在http://addons.mozilla.org/上为特定版本的Firefox支持多个版本的扩展程序吗?即,我们的扩展版本1支持FF< = 49;版本2支持FF> = 50。

1 个答案:

答案 0 :(得分:3)

是的,您可以拥有多个版本的附加组件,这些版本与指定范围的Firefox版本兼容。这种能力已存在多年。

manifest.json 文件中,您可以指定strict_min_version

"applications": {
  "gecko": {
    "id": "addon@example.com",
    "strict_min_version": "42.0",
    "strict_max_version": "50.*",
    "update_url": "https://example.com/updates.json"
  }
}

但是, manifest.json 键需要Firefox 45(适用于WebExtensions)。多年来,为其他类型的附加组件指定了应用程序的最小和最大版本。您还需要从AMO Developer Hub为每个版本的加载项手动管理最大兼容的Firefox版本。

在AMO Developer Hub上,在您的插件的控制面板中,选择" Manage Status&版本" (左侧菜单列表顶部的底部选项):
AMO Menu selection

在您选择"管理状态&中显示的页面上版本",选择您关注的版本。

在每个加载项版本的页面上,您可以更改所选版本的加载项兼容的Firefox版本:
AMO Firefox version compatibility

注意:虽然根据我的经验,版本兼容性选择会影响自动安装的加载项版本,但设置最高版本不会阻止用户安装和安装最新版本Firefox版本中的加载项的版本,它们晚于为最新版本的加载项指定的最大版本。此外,即使您手动设置了最大版本,AMO也会根据自动测试自动增加最新版本加载项的Firefox版本。

但是,在其他类型的附加组件中,应该可以通过strictCompatibility entry in install.rdf来控制。在我的情况下,我不知道在上传附加版本时(在Firefox不兼容的版本存在之前)与未来版本的Firefox不兼容。因此,我没有在 install.rdf 中设置该选项。对于WebExtension,应该可以使用 manifest.json 中的strict_max_version键来控制它。

如果您将新版本的插件上传到AMO,则无需担心此问题。您的插件版本与用户运行的Firefox版本兼容,具体取决于附加组件 .xpi 中包含的信息和/或由您应该在每个版本的AMO Developer Hub控制面板中自动选择下载和安装。声明与旧版Firefox不兼容的新版本的附加组件不应用于自动升级。

有关转换数据的附注:
您应该考虑发布至少一个版本的加载项,该版本使用Embedded WebExtension能够将您在旧加载项版本中存储的任何数据转换为WebExtensions。