我可以通过使用以下代码知道用户何时卸载或禁用加载项。
exports.onUnload = function (reason) {
if(reason==="disable"||reason==="uninstall"){
//stuff here
}};
我需要停止禁用/卸载加载项。我的附加组件是一个与安全相关的附加组件。当用户尝试卸载加载项时,我需要使用主密码验证与用户确认。如果他输入主密码,则卸载该加载项。如果他未能输入主密码,则附加组件应继续工作。
答案 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文件夹并删除插件文件即可。在浏览器重启时,它不再存在。