如何在未来开发传统的Firefox附加组件?

时间:2017-03-02 17:50:15

标签: firefox firefox-addon firefox-addon-sdk firefox-addon-restartless firefox-addon-overlay

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

不幸的是,WebExtension API的功能远不如传统的附加组件,相比之下,传统附加组件可以完全控制浏览器。我完全理解切换的动机,但我的插件提供的功能只能用于WebExtension的有限功能。

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

(我知道我无法向AMO提交我的附加组件或者让Mozilla签名,并且支持完全扩展是一个潜在的安全风险。但是,因为我的附加组件我的目标是精通技术的受众群体,我并不太关心中等复杂的变通方法。)

3 个答案:

答案 0 :(得分:2)

正如magic 8 ball所说:“现在无法预测”。

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

  
      
  • Firefox只会运行WebExtensions。
  •   
  • AMO将在57版本发布后继续支持列出和更新旧版附加组件,以便更轻松地进行转换。此支持的确切截止时间尚未确定。
  •   

之前曾说过,对WebExtensions的限制仅适用于Release和Beta频道,因此:

可以继续在以下位置运行基于非WebExtension的加载项:

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

其他选项包括:

  • Firefox ESR 52 release。模式是,这将通过Firefox 60的正常版本支持。就个人而言,我觉得Mozilla应该计划在功能发生重大变化之前发布ESR(即拥有Firefox 56 ESR),但这似乎并不是Mozilla的工作方式。
  • 由Firefox制作的various forks。必须检查每个分支以查看他们对此更改的计划。
  • 专门用于继续支持非WebExtension附加组件的任何新fork。
  • 可能会确定黑客重新启用非WebExtension支持,类似于disable checking for add-on signing存在的支持。

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

就个人而言,我是一艘类似的船。我发布的附加组件都不可能移动到WebExtensions。我使用的许多其他附加组件显然无法转移到WebExtensions。坦率地说,我并不期待在没有其中一些附加软件提供的功能的情况下使用Firefox。因此,随着我们接近Firefox 57,我将继续研究可用的选项。

然而,即使我发现在Firefox 52 ESR被EOL之后没有选择使用更强大的附加组件,我可能会继续使用Firefox。我这样做而不是切换到Chrome的主要原因是Firefox扩展程序会经过审核流程,而从Chrome商店发布的Chrome扩展程序从安全性和隐私性的角度来看可能非常糟糕。

答案 1 :(得分:2)

关于你的问题:

  

是否有任何利基项目致力于维护某种遗产>扩展" hack",或者我是否必须自己大量修改Firefox以便将来安装任何>旧版附加组件?

除了之前提到的FF52ESR,至少有两个基于Firefox代码的活动项目,专注于保持与传统扩展的兼容性。

  • Waterfox 56(更新并与旧版插件和webextensions兼容)

  • Basilisk 201804(更新并位于FF52,定位为v55)

另一方面,你有 Palemoon 27.x,它仍然处于支持状态,但它基于pre Australis FF接口,因此它将与旧版的插件兼容。

答案 2 :(得分:1)

下载并安装最新的夜间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(粘贴到地址栏并按Enter键)中查找extensions.legacy.enabled并右键单击并将其切换为true。

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

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