Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fe93cad5c7fc5a0494b02be9a0d1572a17ba396b
https://github.com/WebKit/WebKit/commit/fe93cad5c7fc5a0494b02be9a0d1572a17ba396b
Author: Brandon Stewart <[email protected]>
Date: 2026-02-14 (Sat, 14 Feb 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp
A Source/WebCore/Modules/indexeddb/server/SQLiteMemoryIDBBackingStore.cpp
A Source/WebCore/Modules/indexeddb/server/SQLiteMemoryIDBBackingStore.h
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/IDBStorageManager.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.h
Log Message:
-----------
Port IndexedDB Memory Backing Store to SQLite In-Memory Database
https://bugs.webkit.org/show_bug.cgi?id=245764
rdar://100182155
Reviewed by NOBODY (OOPS\!).
Add SQLiteMemoryIDBBackingStore, which uses SQLite's in-memory database
(":memory:")
for private browsing instead of the custom MemoryIDBBackingStore. This gives
ephemeral
IndexedDB the same ACID guarantees and SQL query engine as persistent storage.
This feature is controlled by the 'IndexedDBSQLiteMemoryBackingStoreEnabled'
preference.
Note: Blob support in ephemeral sessions is not enabled by this change and will
be
addressed separately (webkit.org/b/156347).
Key changes:
- New SQLiteMemoryIDBBackingStore subclasses SQLiteIDBBackingStore, opens
":memory:" DB.
- SQLiteIDBBackingStore is no longer final; helper methods and data members are
protected.
- SQLiteIDBTransaction uses deferred (non-exclusive) transactions.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
Added IndexedDBSQLiteMemoryBackingStoreEnabled preference.
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::setSqliteDB):
(WebCore::IDBServer::SQLiteIDBBackingStore::setDatabaseInfo):
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h:
(WebCore::IDBServer::SQLiteIDBBackingStore::identifier const):
(WebCore::IDBServer::SQLiteIDBBackingStore::sqliteDB const):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseInfo const):
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
(WebCore::IDBServer::SQLiteIDBTransaction::begin):
* Source/WebCore/Modules/indexeddb/server/SQLiteMemoryIDBBackingStore.cpp:
Added.
(WebCore::IDBServer::SQLiteMemoryIDBBackingStore::SQLiteMemoryIDBBackingStore):
(WebCore::IDBServer::SQLiteMemoryIDBBackingStore::getOrEstablishDatabaseInfo):
* Source/WebCore/Modules/indexeddb/server/SQLiteMemoryIDBBackingStore.h: Added.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebKit/NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::IDBStorageManager::IDBStorageManager):
(WebKit::IDBStorageManager::createBackingStore):
* Source/WebKit/NetworkProcess/storage/IDBStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::openDatabase):
(WebKit::NetworkStorageManager::openDBRequestCancelled):
(WebKit::NetworkStorageManager::deleteDatabase):
(WebKit::NetworkStorageManager::databaseConnectionClosed):
(WebKit::NetworkStorageManager::getAllDatabaseNamesAndVersions):
(WebKit::NetworkStorageManager::useSQLiteMemoryBackingStore const):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::idbStorageManager):
(WebKit::OriginStorageManager::idbStorageManager):
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.h:
Canonical link: https://commits.webkit.org/307572@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications