2016-10-23 6 views
0

Я могу узнать, когда пользователь удаляет или отключает надстройку, используя следующий код.Предотвращение удаления дополнения Firefox sdk

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

Мне нужно прекратить отключение/удаление дополнения. Мое дополнение - это надстройка, связанная с безопасностью. Когда пользователь пытается удалить надстройку, мне нужно подтвердить, используя аутентификацию мастер-пароля. Если он вводит главный пароль, удалите надстройку. Если он не может ввести главный пароль, добавление должно продолжить работу.

ответ

0

Я думаю, что есть способы сделать аддон «системным аддоном», чтобы он не отображался для удаления. Я не знаю, как это сделать, хотя мы должны будем спросить. Пожалуйста, спросите об этом и поделитесь, если узнаете.

С помощью вышеуказанного метода единственное, что вы можете сделать, это удалить или отключить, вы можете повторно включить аддон с менеджером аддона. Это пример того, как использовать аддон Magner для изменения свойств аддонов -

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

Там должен быть свойство, относящееся к статусу аддона включено. Просто верните их к истине, когда они меняются.

Пользователь все еще может удалить ваш аддон, но он должен быть немного сообразительным, они просто перейдут в папку расширений в файловой системе и удаляют файл-аддон. В перезапуске браузера его больше не будет.

+0

Спасибо за ответ. Я хочу, чтобы пользователь мог отключить/удалить надстройку. Когда пользователь пытается удалить/отключить, я буду всплывать для главного пароля. Если пользователь вводит правильно, то аддон следует удалить. Если добавление не должно быть повторно включено. –

+0

Я попробую с менеджером надстройки и отвечу, получив то, что я хочу. –

+1

Прежде всего, это одно повторное включение с отключением и второе повторное включение с удалением –