У меня есть расширение с настройкой идентификатора в манифесте следующим образом:
"browser_specific_settings": {
"gecko": {
"id": "{e3ec45ef-43ba-499d-8469-6d0e2f06921f}",
"strict_min_version": "42.0"
}
},
который использует indexedDB (PouchDB). Я установил это расширение с addons.mozilla.org, отключил, временно установил версию для разработки, и Firefox удаляет данные обоих расширений (потому что они имеют одинаковый идентификатор) каждый раз, когда я удаляю только временную версию.
Этого не происходит, когда я не устанавливаю идентификатор в манифесте (в данном случае временная версия имеет случайный идентификатор), но это не решение, потому что некоторые API и версия Firefox для Android требуют, чтобы идентификатор был установлен вручную
Как запретить Firefox удалять данные обычного расширения, когда я временно удаляю их?
На всякий случай, если кто-то захочет воспроизвести проблему:
- Установите это расширение https://addons.mozilla.org/en-US/firefox/addon/tagit/?src=search
- Перейти на страницу расширения (кнопка с глазами на панели браузера)
- Перейдите на страницу «Теги» и создайте любой тег (напишите что-нибудь и нажмите Enter)
- Отключите это расширение на странице about:addons
- Клонируйте его репозиторий и оформите заказ, чтобы зафиксировать, где идентификатор находится в манифесте
git clone https://github.com/DevAlone/tagit.git; git checkout 8e0d04201865fd7b7543b167279a045c89408d5c
- Установите зависимости и соберите
npm install; npm run build
- Установите это временное расширение (
build
dir) на странице about:debugging. - Удалите это временное расширение на странице about:debugging.
- Включить обычное расширение на странице about:addons
- Перейдите на страницу тегов еще раз, чтобы увидеть, что база данных исчезла.