我目前在使用Firefox Add-on SDK开发扩展程序时遇到问题。对于某些基本上下文,扩展使用sdk中的page-mod
api执行内容脚本。在每个内容脚本上,一些额外的javascript被注入页面本身(我们将它们称为页面脚本)。为了完成一些复杂的任务,注入页面的javascript可以与内容脚本进行通信,然后依次向扩展的后台进程发出请求。由于扩展的复杂性,当它自动更新时,可能会进入一种状态,在给定内容脚本上运行相同代码的多个页面脚本正在运行。
我想知道的是,使用附加SDK构建的扩展是否可以强制仅在重新启动时自行更新。这意味着即使在用户重新启动Firefox浏览器之前发生自动更新,扩展也不会重新加载。
如果无法做到这一点,那么任何其他解决方案都会很棒。
答案 0 :(得分:2)
虽然我同意@ Noitidart的评论,但您可以选择仅在重启时从main.js注入您的内容脚本:
const { loadReason } = require('sdk/self');
if (loadReason==='startup') {
//Inject the scripts
}
您必须确保旧版本的内容脚本可以与新的后台脚本进行通信而不会中断,这将是一个难以测试的问题。有关其他加载原因,请参阅here。