防止卸载Firefox sdk插件

Prevent uninstall of Firefox sdk add-on

本文关键字:sdk 插件 Firefox 卸载      更新时间:2023-09-26

我可以通过使用以下代码知道用户何时卸载或禁用附加组件。

exports.onUnload = function (reason) {
    if(reason==="disable"||reason==="uninstall"){
        //stuff here  
}};

我需要停止禁用/卸载附加组件。我的附加组件是一个安全相关的附加组件。当用户试图卸载插件时,我需要使用主密码身份验证与用户确认。如果他输入了主密码,那么卸载该附加组件。如果他没有输入主密码,那么插件应该继续工作。

我认为有一些方法可以使一个插件成为"系统插件",这样它就不会出现卸载。我不知道该怎么做,不过我们得问问周围的人。如果你发现了,请四处询问并分享。

使用上述方法,您唯一可以做的就是,在卸载/禁用时,您可以使用插件管理器重新启用插件。这是一个如何使用插件管理器修改插件属性的示例-

Cu.import('resource://gre/modules/AddonManager.jsm');
AddonManager.getAddonByID('Profilist@jetpack', function(addon) {
  console.info('addon:', addon);
  console.info('addon.applyBackgroundUpdates:', addon.applyBackgroundUpdates);
  addon.applyBackgroundUpdates = 0; //off
  //addon.applyBackgroundUpdates = 1; //default
  //addon.applyBackgroundUpdates = 2; //on
});

应该有与插件启用状态相关的属性。当它们改变时,将它们恢复为true。

用户仍然可以卸载你的插件,但他们必须有点技术悟性,他们只需要到文件系统的扩展文件夹中删除插件文件。浏览器重启后,它就不存在了