6

我试图找出 Firefox 存储 sessionStorage 内容的位置,但一直找不到。我希望它像存储 localStorage 内容一样位于 SqlLite 数据库中,但我无法找到它。

到目前为止,我已经搜索了配置文件文件夹中的所有典型“.sqlite”文件,例如 cookies.sqlite 和 content-prefs.sqlite 等,但它们似乎没有 sessionStorage 数据。

我还尝试打开 Firefox 应该创建的特殊内存数据库 - https://developer.mozilla.org/en/XPCOM_Interface_Reference/mozIStorageService#openSpecialDatabase%28%29但我找不到枚举表的方法数据库。我可以连接到内存数据库,但我不知道如何找出内存数据库中存在的表等......

任何帮助表示赞赏

谢谢,

4

1 回答 1

4

localStorage数据保存在Firefox 配置文件webappsstore.sqlite中的文件中。有一个有趣的调整是主机名被还原(gro.allizom而不是mozilla.org),但除此之外,它几乎是您所期望的。只有一张表:

CREATE TABLE webappsstore2 (
  scope TEXT,
  key TEXT,
  value TEXT,
  secure INTEGER,
  owner TEXT
)

请注意,这种结构可能会在未来的 Firefox 版本中发生变化。

至于sessionStorage,它只需要持续一个浏览器会话。重新启动浏览器通常会清除它,因此它不需要存储在数据库中。Firefox 仍将其写入磁盘以允许恢复当前浏览会话,即sessionstore.js文件(JSON 格式)。有一个 key storage,它的值是从 URL 到其对应sessionStorage数据的映射。我不确定这些数据是否完整,但考虑到它的主要目的是从崩溃中恢复。

于 2011-09-28T09:34:01.320 回答