Where does Firefox store javascript/HTML localStorage?
Asked Answered
A

3

27

I have made an advanced functional prototype of a simple web application, and delays have pushed this into the position of going "live".

At the moment, it just uses JavaScript's localStorage facility to keep track of what's happening, but due to paranoia, we don't want it to be corrupted causing loss of data (it certainly feels a bit sketchy never talking to a server).

Where does Firefox keep its localStorage database (I think it's SQLite, but I just can't find it)?

Arella answered 16/8, 2011 at 13:39 Comment(2)
this Q&A may be helpful, though not about firefox specifically #23587574Savadove
For a live web app, I'm guessing you have end users, not programmers, inputting data. So rather than have them find and backup a specific file on their machine, why not add JavaScipt to the app that periodically syncs their localStorage contents to the server?Nernst
E
30

The DOM storage data is stored in the webappsstore.sqlite file in the profile folder.

§ localStorage

Equate answered 16/8, 2011 at 13:45 Comment(2)
The profile folder is located in %APPDATA%\Mozilla\Firefox\Profiles\​, named something like 321edcba.default, and within it, there’s the webappsstore.sqlite.Derzon
Check out @Ethan's answer to see the up to date location in storage/default.Hoicks
D
14

On Mac OS X, the webappsstore.sqlite is located under ~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/ (where xxxxxxxx is random according to Firefox Profile Tutorial ).

I used the Command Line Shell For SQLite to look around. Assuming www.example.com was a real site and the only site using localstorage, you can run these commands:

$ sqlite3 webappsstore.sqlite
sqlite> .tables
webappsstore2
sqlite> .schema
CREATE TABLE webappsstore2 (scope TEXT, key TEXT, value TEXT, secure INTEGER, owner TEXT);
CREATE UNIQUE INDEX scope_key_index ON webappsstore2(scope, key);
sqlite> select * from webappsstore2;
moc.elpmaxe.www.:http:80|stringkey|value|0|
moc.elpmaxe.www.:http:80|jsonkey|{"key","value"}|0|
sqlite> .exit

See How is HTML5 WebStorage data physically stored? for the Chrome storage location. Chrome uses individual sqlite files per hostname and protocol, where Firefox uses the reversed hostname and protocol in the scope column.

See Where the sessionStorage and localStorage stored? for the Opera storage location. Opera uses an XML index file and individual XML files for the Base64 encoded data.

Determinate answered 15/2, 2013 at 18:46 Comment(1)
Check out @Ethan's answer to see the up to date location on macOS.Hoicks
P
1

As of LSNG, local storage is also found in the profile directory under storage/default/.

Pharmaceutics answered 11/6, 2022 at 0:24 Comment(1)
Thanks! The full path on macOS is /Users/user/Library/Application Support/Firefox/Profiles/….default-release/storage/default/ls/data.sqlite and the permissions don't allow opening it from there so make a copy to read it (it has no password).Hoicks

© 2022 - 2024 — McMap. All rights reserved.