我正在开发一个桌面应用程序,它可以通过附加组件与一些 Mozilla 应用程序¹集成。我想为用户提供通过我的应用程序安装插件的选项,但我无法找到满足我要求的官方方式:
- 加载项一旦安装,必须接收自动更新
- 不需要复杂的用户交互
- 该方法不得被 Mozilla 禁止(如,不得导致黑名单)
是否有安装满足这些要求的附加组件的方法?
我考虑过的不满足这些要求的选项:
- 附加组件的全局安装——但是,这不允许通过AMO的基础设施或
updateURL
install.rdf 中的自动更新(违反 1) - 将 XPI 复制到默认配置文件并启用它 - 不会导致显示“选择加入”对话框,这违反了附加指南,因此被列入黑名单²(违反 3)
- 使用 XPI 的 URL 执行应用程序 - 仅适用于具有浏览器组件的应用程序,例如 Firefox,但不适用于 Thunderbird
我在测试时遇到了一些与配置文件相关的错误,这个选项比我最初的测试建议的要好:
- 将 XPI 复制到默认配置文件中 - 导致加载项以禁用状态启动,
因此没有比告诉用户手动下载扩展更好(违反 2)并且将要求用户允许(或拒绝)在新选项卡中安装(遗憾的是,此选项卡有时会在后台打开,因此对于条件 2 不是最佳选择)
¹ 就我而言,那是 Thunderbird;但如果可能的话,我也想为 Firefox 保留这个问题。
² 我认为无法通过在我的应用程序中使用自定义选择加入对话框来解决该问题,因为众所周知,Mozilla 会盲目地执行 Mozilla 定义的“更大的好处”的策略(请参阅附加签名)。