Firefox插件SDK加载扩展仅在重启时重新加载

Firefox Add-on SDK reload extension only upon restart

本文关键字:加载 新加载 SDK 插件 扩展 Firefox 重启      更新时间:2023-09-26

我目前有一个问题,我正在使用Firefox插件SDK开发的扩展。对于一些基本上下文,扩展使用sdk中的page-mod api执行内容脚本。在每个内容脚本上,一些额外的javascript被注入到页面本身(我们称之为页面脚本)。为了完成一些复杂的任务,注入页面的javascript可以与内容脚本通信,然后内容脚本将反过来向扩展的后台进程发出请求。由于扩展的复杂性,当它自动更新时,可能会出现多个运行相同代码的页面脚本在给定的内容脚本上运行的情况。

我想知道的是,如果使用附加SDK构建的扩展可以在重新启动时强制更新自己。这意味着即使自动更新发生了,扩展也不会被重新加载,直到用户重新启动他们的Firefox浏览器。

如果这是不可能的,任何其他解决方案将是伟大的。

虽然我同意@Noitidart的评论,但您可以选择仅在重启时从main.js中注入内容脚本,如下所示:

const { loadReason } = require('sdk/self');
if (loadReason==='startup') {
  //Inject the scripts
}

你必须确保你的旧版本的内容脚本可以与新的背景脚本通信而不会中断,这将是一个痛苦的测试。