MacOS Big Sur 上的 Firefox (11.4)
我在这个问题上生活了一个多月,希望新版本的 Firefox 能够出现并得到修复。至少在我目前使用的版本 89.0.2, July 2021 92.0 Sep 2021 之前,我没有。
为什么会这样?
正如其他答案所提到的,当您的机器崩溃并且 Firefox 将其 sqlite 存储文件留在磁盘上处于损坏状态时,就会发生这种情况。是的,Mozilla 应该更有弹性,但事实并非如此。 :(
我现在该怎么办?
我下载并重新安装了 Firefox 并清除了 ~/Library/Firefox 和 ~/Library/Mozilla,但它们也没有帮助。
我发现您可以尝试 3 种解决方案。根据损坏文件的严重程度,其中一个可能有效。
方案一:清除localStorage和sessionStorage
按 F12(工具 > 浏览器工具 > 浏览器控制台)并粘贴
localStorage.clear();sessionStorage.clear()
我有一个书签解决方案(如other answer 中所述。)我的书签是javascript:localStorage.clear();sessionStorage.clear();,每次遇到无响应的页面时我都会点击它,并且 Firefox 中的控制台 (F12) 是显示此NS_ERROR_FILE_CORRUPTED 错误。
但是,这很烦人,而且此解决方案不适用于某些网站(例如 AWS 或 Jira)。
解决方案 2:手动删除某些 sqlite 文件
基于 other answers(和来自 TheConstructor 的 the comment),您可以在终端中执行以下操作:
- 转到
~/Library/Application Support/Firefox/Profiles/
-
ls -al 然后cd 进入最近触及的文件夹。 (如果您有一个 Mozilla 帐户来与您的手机同步书签和密码,则您不是默认设置。)
- 运行
for i in $(find . -name '*.sqlite'); do echo "$i"; echo "PRAGMA integrity_check;" | sqlite3 -bail "$i" 2>&1; done | grep -v ok | grep -v locked 并查找不是./xxx/yyy.sqlite 的任何输出。 (例如Main freelist: size is 0 but should be 4。)错误上方的文件是损坏的文件。
- 移走损坏的文件。 (
rm 他们,或mv 其他地方。)
- 重新启动 Firefox。 (我有一个
about:restartrequired 的书签,很方便。)
它应该有望以最小的损害解决问题。
解决方案 3:清除配置文件文件夹(然后恢复您的配置文件)
如果解决方案 2 不起作用,则必须清除配置文件的整个本地数据。
不要丢失 Firefox 中的书签和密码对我来说至关重要。
这是最终对我有用的方法:
-
确保您在 Mozilla/Firefox 中创建一个帐户并打开同步。 (右上角按钮。)
可选:在您的手机上安装 Firefox 并进行同步会很有帮助,以确保您拥有数据的实时备份,并且在出现问题时不会丢失密码和书签。
-
打开查找器。转到~/Library/Application Support。将 Firefox 文件夹移至回收站。
-
重启火狐。 (我有一个方便的about:restartrequired 书签。)
-
在 Firefox 中重新登录您的个人资料并同步。
注意事项
- 您的书签在书签栏中将出现故障,并且在您第一次访问之前,它们的图标将是空白的。
- 您必须手动逐个登录每个帐户(例如 GMails)。如果您保存了密码,这应该很简单。