防止卸载Firefox sdk加载项

时间:2016-10-23 17:20:25

标签: javascript firefox firefox-addon firefox-addon-sdk

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

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

我需要停止禁用/卸载加载项。我的附加组件是一个与安全相关的附加组件。当用户尝试卸载加载项时,我需要使用主密码验证与用户确认。如果他输入主密码,则卸载该加载项。如果他未能输入主密码,则附加组件应继续工作。

1 个答案:

答案 0 :(得分:0)

我认为有一些方法可以使插件成为“系统插件”,以便它不会显示为卸载。虽然我们不得不四处询问,但我不知道该怎么做。如果你发现,请四处询问并分享。

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

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
});

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

用户仍然可以卸载您的插件,但他们必须精通技术,他们只需要转到文件系统中的extensions文件夹并删除插件文件即可。在浏览器重启时,它不再存在。