阅读:2245回复:5
[Nightly] Firefox 63.0a 降级安装旧版本可能会导致扩展数据丢失
Firefox 的 WE 扩展的 storage.local API 在 Firefox 63.0 Nightly 中已使用新的后端,即从 JSON 迁移到性能更好的 indexedDB 存储格式。这样就造成了一个问题,由于使用新的存储格式,一旦用户使用相同的配置覆盖安装 Firefox 62.0 和更低的版本,则旧版本无法识别新的 WE 扩展存储格式,造成 WE 扩展存储的设置等数据无法恢复,用户感受上就是可能会遇到扩展设置等数据丢失的问题。
这个迁移是默默运行的,一般用户不会感受到有什么变化。是否迁移可以在 about:config 里面查看以下参数: extensions.webextensions.ExtensionStorageIDB.enabled,这个为 true,则已经开启迁移。 extensions.webextensions.ExtensionStorageIDB.migrated,里面会有一些扩展显示,后面附带扩展的 ID,如果为 true,则这个扩展存储已迁移为新的 indexedDB。有些扩展 ID 比较晦涩,可以在 about:support 的扩展版块里面查看名称和 ID 的对应关系。 如果想用同一配置文件并安装旧版本,又要恢复到迁移前的数据,Mozilla 也给出了恢复的方法: 1、在配置文件夹里面找到 browser-extension-data 文件夹,所有扩展的存储数据都在这里。 2、在对应的扩展的文件夹(扩展的 ID 可通过上面方法查看)里面可以看到 storage.js.migrated 或 storage.js.migrate.N(这个 N 表示迁移了几次),这个文件就是迁移后的扩展数据存储文件。 3、备份好,然后将该文件改名为 storage.js 4、打开开发工具里面的浏览器控制台(Ctrl-Shift-J)。 5、重新安装一遍扩展。 6、等待控制台里面出现 “Migrating storage.local data for <扩展 debug 名>”以及“storage.local data successfully migrated to IDB Backend for <扩展 debug 名>”出现,则恢复成功。 扩展的数据已经又存储在配置文件夹的 storage\default\moz-extension+++扩展 ID 目录下面,idx 文件夹里面,sqlite 文件。 https://blog.mozilla.org/addons/2018/08/03/new-backend-for-storage-local-api/ |
|
最新喜欢:yfdyh0...
|
1楼#
发布于:2018-08-07 09:43
恢复方法有点问题和含糊。
总的来说是:关闭浏览器,将有数据的storage.js.migrated改回storage.js,用Firefox 63以前的版本正常使用。Firefox 63及以后的版本默认 extensions.webextensions.ExtensionStorageIDB.enabled=true,会将数据自动迁移到idb(配置文件\storage\default\moz-extension+++扩展ID... 目录下)并更名storage.js文件。 “打开开发工具里面的浏览器控制台”只是看迁移日志(英文),非必要。 “重新安装一遍扩展”含糊、可能不正确。博客原文是卸载扩展、复制、打开浏览器控制台、重新 安装扩展、看迁移日志。 |
|
2楼#
发布于:2018-08-07 09:46
yfdyh000:恢复方法有点问题和含糊。应该改名,重装一遍扩展就可以了,改名是改成原格式,然后重装目的是让扩展重新检测并应用这个原格式。查看迁移日志非必要,但最好也看看,有可能迁移失败,日志就会显示。 上面方法是针对已经覆盖安装了旧版本再操作,如果是打算先改再安装旧版本的话,除了上面步骤,还要将about:config 里面的参数,改成 false,关闭自动迁移,然后再覆盖安装,防止期间又迁移了。 |
|
|
3楼#
发布于:2018-08-07 11:29
fang5566:应该改名,重装一遍扩展就可以了,改名是改成原格式,然后重装目的是让扩展重新检测并应用这个原格式。查看迁移日志非必要,但最好也看看,有可能迁移失败,日志就会显示。还要“改成 false”没想到。我的理解是同一个扩展不会二次迁移,因为有 extensions.webextensions.ExtensionStorageIDB.migrated 系列。 extensions.webextensions.ExtensionStorageIDB.enabled 换到旧版是否会自动改还没试过,感觉应该会随着默认值自动变。 |
|
4楼#
发布于:2018-08-07 11:40
yfdyh000:还要“改成 false”没想到。我的理解是同一个扩展不会二次迁移,因为有 extensions.webextensions.ExtensionStorageIDB.migrated 系列。嗯,我想也不会迁移了。毕竟 extensions.webextensions.ExtensionStorageIDB.migrated 系列 true 表示已经迁移,然后 63 又已经去读取 idx 数据库,那 storage.js 只是遗留下来为了能实现回退而已。extensions.webextensions.ExtensionStorageIDB.enabled 在 63 等旧版肯定不会生效的。 |
|
|
5楼#
发布于:2018-08-07 17:18
还是别用night版了,有个别扩展会滞后,给自己找麻烦
|
|