Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止Firefox删除我的扩展名';当我删除调试版本时,是否删除数据?_Firefox_Pouchdb_Browser Extension - Fatal编程技术网

如何防止Firefox删除我的扩展名';当我删除调试版本时,是否删除数据?

如何防止Firefox删除我的扩展名';当我删除调试版本时,是否删除数据?,firefox,pouchdb,browser-extension,Firefox,Pouchdb,Browser Extension,我在清单中有一个id设置为的扩展,如下所示: "browser_specific_settings": { "gecko": { "id": "{e3ec45ef-43ba-499d-8469-6d0e2f06921f}", "strict_min_version": "42.0" } }, 它使用indexedDB(数据库)。我从addons.mozilla.org安装了该扩展,禁用了,临时安装了用于开发的版本,Firefox每次删除临时版本时都会

我在清单中有一个id设置为的扩展,如下所示:

"browser_specific_settings": {
    "gecko": {
      "id": "{e3ec45ef-43ba-499d-8469-6d0e2f06921f}",
      "strict_min_version": "42.0"
    }
  },
它使用indexedDB(数据库)。我从addons.mozilla.org安装了该扩展,禁用了,临时安装了用于开发的版本,Firefox每次删除临时版本时都会删除这两个扩展的数据(因为它们的id相同)

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

如何防止Firefox在临时删除正常扩展数据时删除正常扩展数据

以防有人想重现这个问题:

  • 安装此扩展
  • 转到分机页面(浏览器面板上有眼睛的按钮)
  • 转到“标签”页面,创建任何标签(写一些东西,然后按Enter键)
  • 在“关于:加载项”页面上禁用此扩展
  • 克隆其存储库并签出以提交id位于清单
    git Clone中的位置https://github.com/DevAlone/tagit.git; git签出8e0d04201865fd7b7543b167279a045c89408d5c
  • 安装依赖项并构建
    npm安装;npm运行构建
  • 在“关于:调试”页面上临时安装该扩展(
    build
    dir)
  • 删除“关于:调试”页面上的临时扩展名
  • 在“关于:加载项”页面上启用普通扩展
  • 再次转到“标记”页面以查看数据库已消失
  • 这是解决办法

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

    这是解决办法

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