[webkit-changes] [WebKit/WebKit] 2421ae: [IndexedDB] Generate index keys for newly created ...
Sihui
noreply at github.com
Tue Feb 25 13:36:07 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2421aec95337294207e263a9e0cfa61003c28016
https://github.com/WebKit/WebKit/commit/2421aec95337294207e263a9e0cfa61003c28016
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2025-02-25 (Tue, 25 Feb 2025)
Changed paths:
M Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
M Source/WebCore/Modules/indexeddb/IDBDatabase.h
M Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
M Source/WebCore/Modules/indexeddb/IDBTransaction.h
M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp
M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h
M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp
M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h
M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h
M Source/WebCore/Modules/indexeddb/client/TransactionOperation.cpp
M Source/WebCore/Modules/indexeddb/client/TransactionOperation.h
M Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h
M Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.cpp
M Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h
M Source/WebCore/Modules/indexeddb/server/IDBConnectionToClientDelegate.h
M Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
M Source/WebCore/Modules/indexeddb/server/IDBServer.h
M Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp
M Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h
M Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp
M Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h
M Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp
M Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp
M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h
M Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.cpp
M Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h
M Source/WebCore/loader/EmptyClients.cpp
M Source/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.cpp
M Source/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in
M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp
M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h
M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in
M Source/WebKitLegacy/Storage/InProcessIDBServer.cpp
M Source/WebKitLegacy/Storage/InProcessIDBServer.h
Log Message:
-----------
[IndexedDB] Generate index keys for newly created index on client side
https://bugs.webkit.org/show_bug.cgi?id=288167
rdar://145258114
Reviewed by Brady Eidson.
When handling a index creation request, server now iterates all existing records of object store and asks requested
client to generate index keys. Server will wait until all index keys to be generated before replying client with the
result of the index creation request.
No new test as there should be no user-visible behavior change.
* Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::scriptExecutionContextIdentifier const):
* Source/WebCore/Modules/indexeddb/IDBDatabase.h:
* Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::protectedDatabase const):
(WebCore::IDBTransaction::generateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/IDBTransaction.h:
* Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::generateIndexKeyForRecord):
(WebCore::IDBClient::IDBConnectionProxy::didGenerateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:
* Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::generateIndexKeyForRecord):
(WebCore::IDBClient::IDBConnectionToServer::didGenerateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:
* Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
* Source/WebCore/Modules/indexeddb/client/TransactionOperation.cpp:
(WebCore::IDBClient::TransactionOperation::TransactionOperation):
* Source/WebCore/Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::transaction const):
(WebCore::IDBClient::TransactionOperation::scriptExecutionContextIdentifier const):
(WebCore::IDBClient::TransactionOperation::cursorIdentifier const):
(WebCore::IDBClient::TransactionOperation::TransactionOperation): Deleted.
(WebCore::IDBClient::TransactionOperation::transaction): Deleted.
* Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h:
* Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::generateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h:
* Source/WebCore/Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
* Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didGenerateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/server/IDBServer.h:
* Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::removeNewIndex):
* Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
* Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::addIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::revertAddIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::updateIndexRecordsWithIndexKey):
(WebCore::IDBServer::MemoryIDBBackingStore::forEachObjectStoreRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::createIndex): Deleted.
* Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h:
* Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::addIndex):
(WebCore::IDBServer::MemoryObjectStore::revertAddIndex):
(WebCore::IDBServer::MemoryObjectStore::updateIndexRecordsWithIndexKey):
(WebCore::IDBServer::MemoryObjectStore::forEachRecord):
(WebCore::IDBServer::MemoryObjectStore::createIndex): Deleted.
* Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.h:
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::addIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertAddIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateIndexRecordsWithIndexKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::forEachObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord): Deleted.
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h:
* Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::createIndexAsync):
(WebCore::IDBServer::UniqueIDBDatabase::createIndexAsyncAfterQuotaCheck):
(WebCore::IDBServer::UniqueIDBDatabase::didGenerateIndexKeyForRecord):
(WebCore::IDBServer::UniqueIDBDatabase::didCreateIndexAsyncForTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex): Deleted.
* Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h:
* Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didCreateIndexAsync):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::generateIndexKeyForRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didGenerateIndexKeyForRecord):
* Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::pendingGenerateIndexKeyRequests const):
* Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
* Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.cpp:
(WebKit::IDBStorageConnectionToClient::generateIndexKeyForRecord):
* Source/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::didGenerateIndexKeyForRecord):
(WebKit::NetworkStorageManager::createIndex):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:
* Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didGenerateIndexKeyForRecord):
(WebKit::WebIDBConnectionToServer::generateIndexKeyForRecord):
* Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
* Source/WebKitLegacy/Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::generateIndexKeyForRecord):
(InProcessIDBServer::didGenerateIndexKeyForRecord):
* Source/WebKitLegacy/Storage/InProcessIDBServer.h:
Canonical link: https://commits.webkit.org/291051@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list