Метод onUninstalled
вызывается после удаления расширения - поэтому ваше расширение не может получить собственное событие удаления, его больше нет рядом, чтобы его получить.Однако вы можете получить уведомление об удалении других надстроек, в этом и заключается смысл этого события.Глядя на исходный код, кажется, что есть дополнительный улов - это уведомление отправляется только для надстроек, которые не требуют перезапуска.Это имеет смысл, учитывая, что перезапуск может радикально изменить ситуацию, поскольку внешние приложения добавляют или удаляют надстройки в каталоге расширений.Так что Firefox даже не пытается сообщать об изменениях, которые произошли, когда он не работал, любые слушатели должны просто перечитывать список дополнений при каждом запуске браузера.
Подводя итог, как "«классическое» расширение, вы должны пойти с onUninstalling
, даже если это событие не гарантирует, что расширение будет удалено (пользователь все еще может отменить свой выбор).Загрузочные расширения (те, которые не требуют перезапуска, см. https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions), это проще, метод uninstall()
в их bootstrap.js будет вызываться, даже если расширение отключено. Однако, превращение вашего расширения вНачальная загрузка не всегда проста, к ней прикреплено несколько уловов: http://adblockplus.org/blog/how-many-hacks-does-it-take-to-make-your-extension-install-without-a-restart