0

我正在开发一个桌面应用程序,它可以通过附加组件与一些 Mozilla 应用程序¹集成。我想为用户提供通过我的应用程序安装插件的选项,但我无法找到满足我要求的官方方式:

  1. 加载项一旦安装,必须接收自动更新
  2. 不需要复杂的用户交互
  3. 该方法不得被 Mozilla 禁止(如,不得导致黑名单)

是否有安装满足这些要求的附加组件的方法?


我考虑过的不满足这些要求的选项:

  • 附加组件的全局安装——但是,这不允许通过AMO的基础设施或updateURLinstall.rdf 中的自动更新(违反 1)
  • 将 XPI 复制到默认配置文件并启用它 - 不会导致显示“选择加入”对话框,这违反了附加指南,因此被列入黑名单²(违反 3)
  • 使用 XPI 的 URL 执行应用程序 - 仅适用于具有浏览器组件的应用程序,例如 Firefox,但不适用于 Thunderbird

我在测试时遇到了一些与配置文件相关的错误,这个选项比我最初的测试建议的要好:

  • 将 XPI 复制到默认配置文件中 - 导致加载项以禁用状态启动,因此没有比告诉用户手动下载扩展更好(违反 2)并且将要求用户允许(或拒绝)在新选项卡中安装(遗憾的是,此选项卡有时会在后台打开,因此对于条件 2 不是最佳选择)

¹ 就我而言,那是 Thunderbird;但如果可能的话,我也想为 Firefox 保留这个问题。

² 我认为无法通过在我的应用程序中使用自定义选择加入对话框来解决该问题,因为众所周知,Mozilla 会盲目地执行 Mozilla 定义的“更大的好处”的策略(请参阅附加签名)。

4

1 回答 1

0

虽然不是最佳解决方案,但附加测试表明问题中提到的初始方法之一比我最初的测试建议的效果更好:

将 XPI 复制到extension所有将受到影响的配置文件的文件夹中,使用作为ID.xpi插件IDID 的文件名(如果插件需要解包,则将其解包到ID文件夹中)。

这将在禁用状态下安装附加组件,但在下一次应用程序启动时将询问用户他/她是否希望允许安装。用户确认后,插件将被启用。


我欢迎解决此解决方案问题的其他答案:

  • 在某些情况下,要求用户确认的选项卡会显示在后台(例如在 Thunderbird 中,如果在重新启动前关闭时附加选项卡是前台选项卡)
  • 因此,安装程序需要解析逻辑profiles.ini以确定配置文件文件夹位置
  • 只有安装时的配置文件可能会受到影响
于 2016-07-22T21:48:43.137 回答