未来如何开发遗留的 Firefox 附加组件?

How to develop legacy Firefox add-ons in the future?

Firefox 正在朝着 WebExtensions 标准发展,该标准承诺改进稳定性、跨浏览器兼容性和更高的安全性。同时,他们逐渐放弃对遗留附加组件(引导扩展、附加 SDK 等)的支持。

不幸的是,WebExtension API 的功能远不如传统的附加组件,相比之下,后者可以完全控制浏览器。我完全理解转换的动机,但我的附加组件提供的功能可能无法与 WebExtension 的有限功能一起使用。

我有哪些选择可以继续开发遗留插件并尽可能减少削减?其他不能作为纯 WebExtension 工作的附加组件如何解决这个问题?是否有任何专用于维护某种遗留扩展的利基项目 "hack",或者我是否必须自己大量修改 Firefox 才能在将来安装任何遗留附加组件?

(我知道我无法将我的附加组件提交给 AMO 或获得 Mozilla 的签名,并且支持完整扩展是一个潜在的安全风险。但由于我的附加组件是针对作为精通技术的观众,我不太关心适度复杂的解决方法。)

正如 magic 8 ball 所说:"Cannot predict now".

现实情况是,我们还不知道需要什么才能在 Firefox 57 发布后继续 运行 基于非 WebExtensions 的附加组件。我们所知道的是 Mozilla has stated 对于 Firefox 57:

  • Firefox will only run WebExtensions.
  • AMO will continue to support listing and updating legacy add-ons after the release of 57 in order to have an easier transition. The exact cut-off time for this support hasn’t been determined yet.

之前已经声明对 WebExtensions-only 的限制仅适用于 Release 和 Beta 渠道,因此:

可能会继续 运行 非基于 WebExtension 的附加组件:

目前尚不清楚这些是否真的有可能。如果它们是可能的,目前还不清楚旧的附加组件可以运行多长时间(两者都是由于 Firefox and/or 非 WebExtensions 的更改被故意禁用)。 AMO 将继续支持非 WebExtension 附加组件的列表和更新这一事实是一个令人鼓舞的迹象,表明我们仍然可以在非主要发布和 Beta 渠道的 Firefox 版本中使用它们。

其他选项包括:

  • Firefox ESR 52 release。模式是,这将通过 Firefox 60 左右的正常版本得到支持。就个人而言,我认为 Mozilla 应该计划在功能发生任何重大变化之前发布 ESR(即拥有 Firefox 56 ESR),但这似乎不是 Mozilla 做事的方式。
  • 火狐做出来的various forks。必须检查每个分叉以查看他们对此更改的计划。
  • 专门为继续支持非 WebExtension 附加组件而制作的任何新分支。
  • 黑客可能会被确定为重新启用非 WebExtension 支持,类似于 中存在的支持。

您应该记住,Firefox 的计划是在未来从根本上改变。放弃功能更强大的附加组件类型(非基于 WebExtensions 的扩展以及完整主题)的一个重要原因是允许更改 Firefox 而无需考虑保持与更多功能附加组件的兼容性,这些附加组件依赖于Firefox 的内部操作。具体何时推出这些重大更改尚不清楚。

就我个人而言,我处于类似的境地。 None 我发布的附加组件可以转移到 WebExtensions。我使用的许多其他附加组件显然不可能移动到 WebExtensions。坦率地说,如果没有这些附加组件提供的功能,我不希望使用 Firefox。因此,随着 Firefox 57 的临近,我将继续关注可用的选项。

但是,即使在 Firefox 52 ESR 停产后我找不到使用功能更强大的附加组件的选项,我也可能会继续使用 Firefox。我这样做而不是切换到 Chrome 的主要原因是 Firefox 扩展要经过审查过程,而通过 Chrome 商店发布的 Chrome 扩展可能非常糟糕从安全和隐私的角度来看。

下载并安装最新的 Nightly Firefox (https://www.mozilla.org/en-US/firefox/58.0a1/releasenotes)(您可以右键单击该图标,点击属性,然后将 -no-remote -p 添加到目标地址,如 "C:\Program Files\Nightly\firefox.exe" -no-remote -p 这将使您能够使用多个配置文件)

在 about:config 中(粘贴到地址栏并按回车键)查找 extensions.legacy.enabled 并右键单击并将其切换为真。

下载 "anyway" 最新开发版本的 TMP,(https://addons.mozilla.org/en-US/firefox/addon/tab-mix-plus/versions/0.5.0.5pre.171027a1) 到您的下载文件夹(因为 Nighlty 不会正常安装它),然后在文件下转到打开文件并导航到那个下载文件夹中的文件(扩展名为 /xpi),然后安装它,然后重新启动 Nightly。

这不太可能适用于标准的 Firefox 57+ 版本,但 TMP 开发人员正在处理要求重写。愿上帝帮助他。

关于您的问题:

Are there any niche projects dedicated to maintaining some sort of legacy >extension "hack", or will I have to heavily modify Firefox myself to get any >legacy add-ons installed in the future?

除了前面提到的 FF52ESR,至少还有 2 个基于 Firefox 代码的活跃项目专注于保持与遗留扩展的兼容性。

  • Waterfox 56(已更新并与旧插件和网络扩展兼容)

  • Basilisk 201804(更新并基于 FF52,目标 v55)

另一方面,您有 Palemoon 27.x 也仍在支持中,但它基于 Australis FF 之前的界面,因此它将与旧版本兼容-旧版插件。