删除调试版本时如何防止Firefox删除扩展程序的数据?

问题描述 投票:0回答:1

我在清单中有一个带有ID设置的扩展程序,如下所示:

"browser_specific_settings": {
    "gecko": {
      "id": "{e3ec45ef-43ba-499d-8469-6d0e2f06921f}",
      "strict_min_version": "42.0"
    }
  },

使用indexedDB(PouchDB)。我从addons.mozilla.org安装了该扩展程序,已禁用,已临时安装了用于开发的版本,并且每次我仅临时删除版本时,Firefox都会删除这两个扩展程序的数据(因为它们具有相同的ID)。

当我未在清单中设置ID(在这种情况下临时版本具有随机ID)时,不会发生这种情况,但这不是解决方案,因为某些API和Firefox的Android版本要求手动设置ID)>

当我临时删除一个扩展名时如何防止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中id的位置>
  6. 安装依赖关系并构建npm install; npm run build
  7. 在about:debugging页面上安装该临时扩展名(build dir]
  8. 删除关于about:debugging页面上的临时扩展名
  9. 在about:addons页面上启用常规扩展名
  10. 再次进入标签页面以查看数据库已消失
  11. 我在清单中有一个带有ID设置的扩展程序:“ browser_specific_settings”:{“ gecko”:{“ id”:“ {e3ec45ef-43ba-499d-8469-6d0e2f06921f}”,“ strict_min_version”:“ 42.0”} ...

firefox indexeddb pouchdb browser-extension
1个回答
0
投票

这里是解决方案https://support.mozilla.org/en-US/questions/1270250#answer-1257518

您可以通过访问“ about:config”并将以下两个浏览器首选项设置为true来防止浏览器在卸载时清除本地存储:“ keepUuidOnUninstall”和“ keepStorageOnUninstall”。提供此功能可帮助开发人员测试其扩展。扩展程序本身无法更改这些首选项。

© www.soinside.com 2019 - 2024. All rights reserved.