2011-09-27 97 views
3

我想知道Firefox存儲sessionStorage內容的位置,但一直無法找到。我期待它在SqLite數據庫中存儲localStorage內容,但我一直無法找到它。Firefox在哪裏存儲sessionStorage內容

到目前爲止,我已經搜索了配置文件夾中的所有典型「.sqlite」文件,如cookies.sqlite和content-prefs.sqlite等,但它們似乎沒有sessionStorage數據。

我也嘗試打開Firefox想要創建的特殊內存數據庫 - https://developer.mozilla.org/en/XPCOM_Interface_Reference/mozIStorageService#openSpecialDatabase%28%29,但我找不到枚舉數據庫中存在的表的方法。我能得到內存數據庫的連接,但我不知道是如何計算出表等,它們存在於內存中數據庫...

任何幫助表示讚賞

謝謝,

回答

2

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,它的值是從URL到其對應的sessionStorage數據的映射。我不確定這些數據是否完整,但考慮到它的主要目的是從崩潰中恢復。

+0

該表(webappsstore.sqlite中的webappsstore2)存儲localStorage數據。它似乎沒有包含sessionStorage數據。您是否確定它包含sessionStorage數據以及我正在查看該表並僅包含localStorage數據。我正在使用Firefox 6. – user967973

+0

@ user967973:對不起,我的壞 - 我誤解了你的問題,這個數據庫當然是'localStorage'數據。爲什麼你認爲'sessionStorage'存儲在磁盤的任何地方?它僅適用於一個瀏覽器會話,所以我非常確定它只存儲在內存中。將改變我的答案。 –

+0

@ user967973:完成後,查看我答案的更新。 –