Firefox存储sessionStorage内容的位置

时间:2011-09-27 22:03:51

标签: html5 firefox local-storage session-storage

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

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

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

感谢任何帮助

谢谢,

1 个答案:

答案 0 :(得分:3)

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

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

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

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