Мне любопытно узнать о внутренней работе процедуры установки дополнения Firefox. Я заметил, что следующие шаги имеют место, когда пользователь устанавливает надстройку с addons.mozilla.org:
- Надстройка загружена (возможно, во временную папку).
- Появляется диалоговое окно подтверждения установки («устанавливайте дополнения от авторов, которым вы доверяете»).
- После нажатия кнопки «Установить» надстройка сохраняется в папке / extensions / staged. Наряду с надстройкой существует также файл JSON, подобный этому: addon_id.json.
- Firefox предлагает пользователю перезапустить браузер.
- После перезапуска содержимое папки / extensions / staged / перемещается в папку / extensions /.
Я хотел бы знать следующее:
- Какая часть кода в исходном коде Firefox отвечает за шаг 5? Я предполагаю, что некоторый код на c ++ или js или модуль xpcom отвечает за выяснение того, что надстройка ожидает установки в папке staged /, и выполняет необходимые действия (перемещение файлов, регистрация надстройки и т. Д. ). Может кто-нибудь указать мне этот модуль / код?
- Где временно хранится надстройка, когда она загружается (шаг 1)?
Как правило, я хотел бы изменить некоторые файлы после загрузки надстройки на шаге 1, но до того, как она станет частью браузера (шаг 5). Я хочу добавить эту функциональность в исходный код Firefox.