firefox - 当我删除调试版本时,如何防止 Firefox 删除我的扩展数据?
问题描述
我在清单中有一个带有 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 和 Android 版本的 Firefox 需要手动设置 id
当我临时删除一个时,如何防止Firefox删除正常扩展的数据?
以防万一有人想重现该问题:
- 安装这个扩展https://addons.mozilla.org/en-US/firefox/addon/tagit/?src=search
- 转到扩展程序的页面(浏览器面板上带有眼睛的按钮)
- 转到“标签”页面并创建任何标签(写一些东西并按 Enter)
- 在 about:addons 页面上禁用此扩展
- 克隆其存储库并签出以提交 id 在清单中的位置
git clone https://github.com/DevAlone/tagit.git; git checkout 8e0d04201865fd7b7543b167279a045c89408d5c
- 安装依赖项并构建
npm install; npm run build
build
在 about:debugging 页面上安装该临时扩展(目录)- 删除 about:debugging 页面上的临时扩展
- 在 about:addons 页面上启用普通扩展
- 再次进入标签页面,查看数据库已消失
解决方案
这是解决方案https://support.mozilla.org/en-US/questions/1270250#answer-1257518
您可以通过访问“about:config”并将以下两个浏览器首选项设置为 true 来防止浏览器在卸载时清除本地存储:“keepUuidOnUninstall”和“keepStorageOnUninstall”。提供此功能是为了帮助开发人员测试他们的扩展。扩展程序本身无法更改这些首选项。
推荐阅读
- amazon-web-services - peerOwnerId 的值“无效”。创建 VPC 对等互连时
- php - 我如何在 php 中制作带有客户个人资料照片和签名的证书?
- javascript - 反应水平滚动卡片,顶部有箭头
- vue.js - Nuxtjs 指令不能在 v-btn 上运行 v-can
- c# - 如何在 API 中接收 MultipartFormDataContent?
- angular - 如果我不想将任何值传递给 subscribe(result =>{},我该如何使用 dialogRef.afterClosed()
- winapi - FindFirstFile/FindNextFile dwFileAttributes 意外值(或不是)?
- redis - 如何解决redis中的周期性CPU跳跃问题
- amazon-web-services - AWS EC2 按需定价
- php - 为什么在php中创建图像时自动换行功能不起作用?