FireFox Android: как долго длится фоновый скрипт webextensions?

В частности, если я создаю переменную в моем background.js, и я закрываю firefox (до такой степени, что все вкладки должны быть перезагружены, но все еще сохранены), будет ли переменная все еще существовать в состоянии, в котором я ее оставил?

В моем конкретном случае я хочу хранить некоторые данные о вкладках, когда они обновляются. Я не могу полагаться на данные, находящиеся там, всякий раз, когда я запрашиваю вкладки, поэтому я должен получить их, как только они будут обновлены. Если у меня есть глобальный объект, будет ли он сохранять информацию о вкладках, которые были обновлены до закрытия и повторного открытия FF Android, или же он будет сброшен до пустого и снова начнет заполняться при обновлении новых вкладок. Упрощенная:

var count = 0;

browser.tabs.onUpdate.adListener(function()
{
    count = count + 1;
});

//----------------------
// user updates a 3 tabs
//----------------------

console.log(count); // this prints 3

//===========================
// FF android is killed here!
//===========================
// FF android is re-opened
//===========================

//-------------------------
// user updates 3 more tabs
//-------------------------

console.log(count); // does this print 3 or 6?

1 ответ

Решение

Фоновый скрипт WebExtension - это просто еще одна (невидимая) вкладка.

Если вы перезапустите Firefox до такой степени, что все вкладки будут перезагружены, эта невидимая вкладка будет перезагружена; там не должно быть никакого особого подхода к сохранению - ваш код по сути снова запускается из пустого состояния.

Если вам нужно настойчивость самостоятельно, вам нужно использовать что-то вроде browser.storage API.

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