-
beidson@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=124385 Reviewed by Tim Horton. Source/WebCore: Each IDBOperation has it’s ::perform() moved to a method on IDBServerConnection. This almost removes all knowledge of the backing stores from the front end. * Modules/indexeddb/IDBDatabaseBackend.cpp: (WebCore::IDBDatabaseBackend::clearObjectStore): (WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction): * Modules/indexeddb/IDBDatabaseBackend.h: * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::clear): Add methods to reflect each transaction backend operation: * Modules/indexeddb/IDBServerConnection.h: Schedule certain operations with callbacks: * Modules/indexeddb/IDBTransactionBackend.cpp: (WebCore::IDBTransactionBackend::scheduleVersionChangeOperation): (WebCore::IDBTransactionBackend::schedulePutOperation): (WebCore::IDBTransactionBackend::scheduleOpenCursorOperation): (WebCore::IDBTransactionBackend::scheduleCountOperation): (WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation): (WebCore::IDBTransactionBackend::scheduleClearObjectStoreOperation): * Modules/indexeddb/IDBTransactionBackend.h: Make each operation’s perform() method defer to the IDBServerConnection (with a callback): * Modules/indexeddb/IDBTransactionBackendOperations.cpp: (WebCore::CreateObjectStoreOperation::perform): (WebCore::CreateIndexOperation::perform): (WebCore::CreateIndexAbortOperation::perform): (WebCore::DeleteIndexOperation::perform): (WebCore::DeleteIndexAbortOperation::perform): (WebCore::GetOperation::perform): (WebCore::PutOperation::perform): (WebCore::SetIndexesReadyOperation::perform): (WebCore::OpenCursorOperation::perform): (WebCore::CountOperation::perform): (WebCore::DeleteRangeOperation::perform): (WebCore::ClearObjectStoreOperation::perform): (WebCore::DeleteObjectStoreOperation::perform): (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): (WebCore::CreateObjectStoreAbortOperation::perform): Add accessors to each operation’s data members so the IDBServerConnection has everything it needs: * Modules/indexeddb/IDBTransactionBackendOperations.h: (WebCore::CreateObjectStoreOperation::objectStoreMetadata): (WebCore::DeleteObjectStoreOperation::objectStoreMetadata): (WebCore::IDBDatabaseBackend::VersionChangeOperation::create): (WebCore::IDBDatabaseBackend::VersionChangeOperation::version): (WebCore::IDBDatabaseBackend::VersionChangeOperation::callbacks): (WebCore::IDBDatabaseBackend::VersionChangeOperation::databaseCallbacks): (WebCore::IDBDatabaseBackend::VersionChangeOperation::VersionChangeOperation): (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation): (WebCore::CreateIndexOperation::objectStoreID): (WebCore::CreateIndexOperation::idbIndexMetadata): (WebCore::CreateIndexOperation::CreateIndexOperation): (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation): (WebCore::DeleteIndexOperation::objectStoreID): (WebCore::DeleteIndexOperation::idbIndexMetadata): (WebCore::DeleteIndexOperation::DeleteIndexOperation): (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation): (WebCore::GetOperation::objectStoreID): (WebCore::GetOperation::indexID): (WebCore::GetOperation::cursorType): (WebCore::GetOperation::keyRange): (WebCore::GetOperation::callbacks): (WebCore::GetOperation::autoIncrement): (WebCore::GetOperation::keyPath): (WebCore::GetOperation::GetOperation): (WebCore::PutOperation::create): (WebCore::PutOperation::putMode): (WebCore::PutOperation::objectStore): (WebCore::PutOperation::key): (WebCore::PutOperation::indexIDs): (WebCore::PutOperation::indexKeys): (WebCore::PutOperation::callbacks): (WebCore::PutOperation::value): (WebCore::PutOperation::PutOperation): (WebCore::OpenCursorOperation::create): (WebCore::OpenCursorOperation::objectStoreID): (WebCore::OpenCursorOperation::indexID): (WebCore::OpenCursorOperation::direction): (WebCore::OpenCursorOperation::cursorType): (WebCore::OpenCursorOperation::taskType): (WebCore::OpenCursorOperation::keyRange): (WebCore::OpenCursorOperation::cursorDirection): (WebCore::OpenCursorOperation::callbacks): (WebCore::OpenCursorOperation::OpenCursorOperation): (WebCore::CountOperation::create): (WebCore::CountOperation::objectStoreID): (WebCore::CountOperation::indexID): (WebCore::CountOperation::keyRange): (WebCore::CountOperation::callbacks): (WebCore::CountOperation::CountOperation): (WebCore::DeleteRangeOperation::create): (WebCore::DeleteRangeOperation::objectStoreID): (WebCore::DeleteRangeOperation::callbacks): (WebCore::DeleteRangeOperation::keyRange): (WebCore::DeleteRangeOperation::DeleteRangeOperation): (WebCore::ClearObjectStoreOperation::create): (WebCore::ClearObjectStoreOperation::objectStoreID): (WebCore::ClearObjectStoreOperation::callbacks): (WebCore::ClearObjectStoreOperation::ClearObjectStoreOperation): Implement each operation in terms of the appropriate backing store, then perform the callback: * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: (WebCore::IDBServerConnectionLevelDB::createObjectStore): (WebCore::IDBServerConnectionLevelDB::createIndex): (WebCore::IDBServerConnectionLevelDB::deleteIndex): (WebCore::IDBServerConnectionLevelDB::get): (WebCore::IDBServerConnectionLevelDB::put): (WebCore::IDBServerConnectionLevelDB::openCursor): (WebCore::IDBServerConnectionLevelDB::count): (WebCore::IDBServerConnectionLevelDB::deleteRange): (WebCore::IDBServerConnectionLevelDB::clearObjectStore): (WebCore::IDBServerConnectionLevelDB::deleteObjectStore): (WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: * WebCore.xcodeproj/project.pbxproj: Source/WebKit2: * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
beidson@apple.com authoredhttps://bugs.webkit.org/show_bug.cgi?id=124385 Reviewed by Tim Horton. Source/WebCore: Each IDBOperation has it’s ::perform() moved to a method on IDBServerConnection. This almost removes all knowledge of the backing stores from the front end. * Modules/indexeddb/IDBDatabaseBackend.cpp: (WebCore::IDBDatabaseBackend::clearObjectStore): (WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction): * Modules/indexeddb/IDBDatabaseBackend.h: * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::clear): Add methods to reflect each transaction backend operation: * Modules/indexeddb/IDBServerConnection.h: Schedule certain operations with callbacks: * Modules/indexeddb/IDBTransactionBackend.cpp: (WebCore::IDBTransactionBackend::scheduleVersionChangeOperation): (WebCore::IDBTransactionBackend::schedulePutOperation): (WebCore::IDBTransactionBackend::scheduleOpenCursorOperation): (WebCore::IDBTransactionBackend::scheduleCountOperation): (WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation): (WebCore::IDBTransactionBackend::scheduleClearObjectStoreOperation): * Modules/indexeddb/IDBTransactionBackend.h: Make each operation’s perform() method defer to the IDBServerConnection (with a callback): * Modules/indexeddb/IDBTransactionBackendOperations.cpp: (WebCore::CreateObjectStoreOperation::perform): (WebCore::CreateIndexOperation::perform): (WebCore::CreateIndexAbortOperation::perform): (WebCore::DeleteIndexOperation::perform): (WebCore::DeleteIndexAbortOperation::perform): (WebCore::GetOperation::perform): (WebCore::PutOperation::perform): (WebCore::SetIndexesReadyOperation::perform): (WebCore::OpenCursorOperation::perform): (WebCore::CountOperation::perform): (WebCore::DeleteRangeOperation::perform): (WebCore::ClearObjectStoreOperation::perform): (WebCore::DeleteObjectStoreOperation::perform): (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): (WebCore::CreateObjectStoreAbortOperation::perform): Add accessors to each operation’s data members so the IDBServerConnection has everything it needs: * Modules/indexeddb/IDBTransactionBackendOperations.h: (WebCore::CreateObjectStoreOperation::objectStoreMetadata): (WebCore::DeleteObjectStoreOperation::objectStoreMetadata): (WebCore::IDBDatabaseBackend::VersionChangeOperation::create): (WebCore::IDBDatabaseBackend::VersionChangeOperation::version): (WebCore::IDBDatabaseBackend::VersionChangeOperation::callbacks): (WebCore::IDBDatabaseBackend::VersionChangeOperation::databaseCallbacks): (WebCore::IDBDatabaseBackend::VersionChangeOperation::VersionChangeOperation): (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation): (WebCore::CreateIndexOperation::objectStoreID): (WebCore::CreateIndexOperation::idbIndexMetadata): (WebCore::CreateIndexOperation::CreateIndexOperation): (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation): (WebCore::DeleteIndexOperation::objectStoreID): (WebCore::DeleteIndexOperation::idbIndexMetadata): (WebCore::DeleteIndexOperation::DeleteIndexOperation): (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation): (WebCore::GetOperation::objectStoreID): (WebCore::GetOperation::indexID): (WebCore::GetOperation::cursorType): (WebCore::GetOperation::keyRange): (WebCore::GetOperation::callbacks): (WebCore::GetOperation::autoIncrement): (WebCore::GetOperation::keyPath): (WebCore::GetOperation::GetOperation): (WebCore::PutOperation::create): (WebCore::PutOperation::putMode): (WebCore::PutOperation::objectStore): (WebCore::PutOperation::key): (WebCore::PutOperation::indexIDs): (WebCore::PutOperation::indexKeys): (WebCore::PutOperation::callbacks): (WebCore::PutOperation::value): (WebCore::PutOperation::PutOperation): (WebCore::OpenCursorOperation::create): (WebCore::OpenCursorOperation::objectStoreID): (WebCore::OpenCursorOperation::indexID): (WebCore::OpenCursorOperation::direction): (WebCore::OpenCursorOperation::cursorType): (WebCore::OpenCursorOperation::taskType): (WebCore::OpenCursorOperation::keyRange): (WebCore::OpenCursorOperation::cursorDirection): (WebCore::OpenCursorOperation::callbacks): (WebCore::OpenCursorOperation::OpenCursorOperation): (WebCore::CountOperation::create): (WebCore::CountOperation::objectStoreID): (WebCore::CountOperation::indexID): (WebCore::CountOperation::keyRange): (WebCore::CountOperation::callbacks): (WebCore::CountOperation::CountOperation): (WebCore::DeleteRangeOperation::create): (WebCore::DeleteRangeOperation::objectStoreID): (WebCore::DeleteRangeOperation::callbacks): (WebCore::DeleteRangeOperation::keyRange): (WebCore::DeleteRangeOperation::DeleteRangeOperation): (WebCore::ClearObjectStoreOperation::create): (WebCore::ClearObjectStoreOperation::objectStoreID): (WebCore::ClearObjectStoreOperation::callbacks): (WebCore::ClearObjectStoreOperation::ClearObjectStoreOperation): Implement each operation in terms of the appropriate backing store, then perform the callback: * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: (WebCore::IDBServerConnectionLevelDB::createObjectStore): (WebCore::IDBServerConnectionLevelDB::createIndex): (WebCore::IDBServerConnectionLevelDB::deleteIndex): (WebCore::IDBServerConnectionLevelDB::get): (WebCore::IDBServerConnectionLevelDB::put): (WebCore::IDBServerConnectionLevelDB::openCursor): (WebCore::IDBServerConnectionLevelDB::count): (WebCore::IDBServerConnectionLevelDB::deleteRange): (WebCore::IDBServerConnectionLevelDB::clearObjectStore): (WebCore::IDBServerConnectionLevelDB::deleteObjectStore): (WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: * WebCore.xcodeproj/project.pbxproj: Source/WebKit2: * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Loading