Как запретить Firefox удалять данные моего расширения при удалении отладочной версии?

У меня есть расширение с настройкой идентификатора в манифесте следующим образом:

"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 удалять данные обычного расширения, когда я временно удаляю их?

На всякий случай, если кто-то захочет воспроизвести проблему:

  1. Установите это расширение https://addons.mozilla.org/en-US/firefox/addon/tagit/?src=search
  2. Перейти на страницу расширения (кнопка с глазами на панели браузера)
  3. Перейдите на страницу «Теги» и создайте любой тег (напишите что-нибудь и нажмите Enter)
  4. Отключите это расширение на странице about:addons
  5. Клонируйте его репозиторий и оформите заказ, чтобы зафиксировать, где идентификатор находится в манифесте git clone https://github.com/DevAlone/tagit.git; git checkout 8e0d04201865fd7b7543b167279a045c89408d5c
  6. Установите зависимости и соберите npm install; npm run build
  7. Установите это временное расширение (build dir) на странице about:debugging.
  8. Удалите это временное расширение на странице about:debugging.
  9. Включить обычное расширение на странице about:addons
  10. Перейдите на страницу тегов еще раз, чтобы увидеть, что база данных исчезла.

person devalone    schedule 08.10.2019    source источник


Ответы (1)


Вот решение https://support.mozilla.org/en-US/questions/1270250#answer-1257518

вы можете запретить браузеру очищать локальное хранилище при удалении, посетив «about:config» и установив для следующих двух параметров браузера значение true: «keepUuidOnUninstall» и «keepStorageOnUninstall». Эта функция предназначена для того, чтобы помочь разработчикам тестировать свои расширения. Сами расширения не могут изменить эти настройки.

person devalone    schedule 08.10.2019