Где Firefox хранит контент sessionStorage - PullRequest
5 голосов
/ 28 сентября 2011

Я пытаюсь выяснить, где 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 Ответ

3 голосов
/ 28 сентября 2011

localStorage данные сохраняются в файле webappsstore.sqlite в профиле Firefox . Есть забавный твик: имена хостов возвращаются (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. Я не уверен, что эти данные полны, однако, учитывая, что его основная цель - восстановление после сбоев.

...