Расширение Firefox SDK для перезагрузки только при перезапуске

В настоящее время у меня возникла проблема с расширением, которое я разрабатываю с использованием дополнения Firefox SDK. Для некоторого базового контекста расширение выполняет скрипты содержимого, используя page-modAPI в SDK. В каждом из скриптов содержимого добавляется дополнительный javascript в саму страницу (мы будем называть их скриптами страницы). Чтобы выполнить некоторые сложные задачи, javascript, внедренный в страницу, может взаимодействовать со сценарием содержимого, который затем, в свою очередь, будет отправлять запросы в фоновый процесс расширения. Из-за сложности расширения, когда оно автоматически обновляется, можно войти в состояние, в котором несколько скриптов страницы, выполняющих один и тот же код, выполняются на данном скрипте контента.

Что мне интересно, так это то, возможно ли принудительное обновление расширений, созданных с использованием Add-on SDK, только после перезапуска. Это будет означать, что расширение не будет перезагружено, даже если автообновление происходит до тех пор, пока пользователь не перезапустит свой браузер Firefox.

Если это невозможно, любые другие решения будут великолепны.

1 ответ

Хотя я согласен с комментарием @Noitidart, вы можете добавить свои скрипты контента из main.js только при перезапуске, вот так:

const { loadReason } = require('sdk/self');
if (loadReason==='startup') {
  //Inject the scripts
}

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

Другие вопросы по тегам