IndexedDB: Use LevelDB also for in-memory databases
authorhans@chromium.org <hans@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 29 Sep 2011 12:29:13 +0000 (12:29 +0000)
committerhans@chromium.org <hans@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 29 Sep 2011 12:29:13 +0000 (12:29 +0000)
commite5187c36c657e2ac682c1cec57227510ef890c8b
treeb754927fc9f44898a6d783148efa1895e3d4a62c
parentb32aec0af2efe103254351fba7ac14e1e75fb3d3
IndexedDB: Use LevelDB also for in-memory databases
https://bugs.webkit.org/show_bug.cgi?id=68903

Reviewed by Steve Block.

Source/WebCore:

Add LevelDBDatabase::openInMemory() which uses leveldb::NewMemEnv()
to create in-memory LevelDB databases.

Use this in IDBLeveLDBBackingStore::open() when the caller passes in
an empty file path.
This happens in Chromium's incognito mode, and when running layout
tests.

Fix IDBSQLiteBackingStore::backingStoreExists() so it doesn't create
files when passed in an empty file path, but uses the in-memory mode
instead.

Existing layout tests will all be run in-memory.

* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::~LevelDBDatabase):
(WebCore::openDB):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
* platform/leveldb/LevelDBDatabase.h:
* storage/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):
* storage/IDBSQLiteBackingStore.cpp:
(WebCore::IDBSQLiteBackingStore::backingStoreExists):

Source/WebKit/chromium:

Don't fall back to SQLite or use a temporary dir for in-memory
databases (Incognito and layout tests); LevelDB supports in-memory
databases now.

* public/WebIDBFactory.h:
* src/WebIDBFactoryImpl.cpp:
(WebKit::WebIDBFactoryImpl::getDatabaseNames):
(WebKit::WebIDBFactoryImpl::open):

Tools:

Remove the temporary dir that was necessary before LevelDB supported
in-memory databases.

* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::TestShell):
* DumpRenderTree/chromium/TestShell.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
Source/WebCore/platform/leveldb/LevelDBDatabase.h
Source/WebCore/storage/IDBLevelDBBackingStore.cpp
Source/WebCore/storage/IDBSQLiteBackingStore.cpp
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebIDBFactory.h
Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
Tools/ChangeLog
Tools/DumpRenderTree/chromium/TestShell.cpp
Tools/DumpRenderTree/chromium/TestShell.h