-
alecflett@chromium.org authored
https://bugs.webkit.org/show_bug.cgi?id=101415 Reviewed by Tony Chang. Source/WebCore: Combine abstract interface IDBBackingStore with its only implementation, IDBLevelDBBackingStore, to reduce code complexity. The legacy structure existed to support a SQLLite IDBBackingStore, but it is no longer worth the complexity to support this abstraction. Changes include: 1) Merging IDBLevelDBBackingStore into IDBBackingStore. 2) Merge together IDBBackingStore's inner classes: Cursor, Transaction, and ObjectStoreRecordIdentfier with their respective subclasses in IDBLevelDBBackingStore. 3) Simplifying the inner Transaction class to not be refcounted or virtualized, to allow it to be a simple concrete member of its owner, IDBTransactionBackendImpl. No new tests as this is purely a refactor. * Modules/indexeddb/IDBBackingStore.cpp: (WebCore::recordInternalError): (WebCore::setUpMetadata): (WebCore::IDBBackingStore::IDBBackingStore): (WebCore): (WebCore::IDBBackingStore::~IDBBackingStore): (WebCore::IDBBackingStore::open): (WebCore::IDBBackingStore::getDatabaseNames): (WebCore::IDBBackingStore::getIDBDatabaseMetaData): (WebCore::IDBBackingStore::createIDBDatabaseMetaData): (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion): (WebCore::IDBBackingStore::updateIDBDatabaseMetaData): (WebCore::deleteRange): (WebCore::IDBBackingStore::deleteDatabase): (WebCore::IDBBackingStore::getObjectStores): (WebCore::setMaxObjectStoreId): (WebCore::IDBBackingStore::createObjectStore): (WebCore::IDBBackingStore::deleteObjectStore): (WebCore::IDBBackingStore::getRecord): (WebCore::IDBBackingStore::putRecord): (WebCore::IDBBackingStore::clearObjectStore): (WebCore::IDBBackingStore::deleteRecord): (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber): (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): (WebCore::IDBBackingStore::keyExistsInObjectStore): (WebCore::IDBBackingStore::getIndexes): (WebCore::setMaxIndexId): (WebCore::IDBBackingStore::createIndex): (WebCore::IDBBackingStore::deleteIndex): (WebCore::IDBBackingStore::putIndexDataForRecord): (WebCore::IDBBackingStore::deleteIndexDataForRecord): (WebCore::IDBBackingStore::findKeyInIndex): (WebCore::IDBBackingStore::getPrimaryKeyViaIndex): (WebCore::IDBBackingStore::keyExistsInIndex): (WebCore::IDBBackingStore::Cursor::Cursor): (WebCore::IDBBackingStore::Cursor::firstSeek): (WebCore::IDBBackingStore::Cursor::advance): (WebCore::IDBBackingStore::Cursor::continueFunction): (WebCore::IDBBackingStore::Cursor::haveEnteredRange): (WebCore::IDBBackingStore::Cursor::isPastBounds): (WebCore::ObjectStoreKeyCursorImpl::create): (ObjectStoreKeyCursorImpl): (WebCore::ObjectStoreKeyCursorImpl::value): (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl): (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow): (WebCore::ObjectStoreCursorImpl::create): (ObjectStoreCursorImpl): (WebCore::ObjectStoreCursorImpl::value): (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl): (WebCore::ObjectStoreCursorImpl::loadCurrentRow): (WebCore::IndexKeyCursorImpl::create): (IndexKeyCursorImpl): (WebCore::IndexKeyCursorImpl::value): (WebCore::IndexKeyCursorImpl::primaryKey): (WebCore::IndexKeyCursorImpl::recordIdentifier): (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl): (WebCore::IndexKeyCursorImpl::loadCurrentRow): (WebCore::IndexCursorImpl::create): (IndexCursorImpl): (WebCore::IndexCursorImpl::value): (WebCore::IndexCursorImpl::primaryKey): (WebCore::IndexCursorImpl::recordIdentifier): (WebCore::IndexCursorImpl::IndexCursorImpl): (WebCore::IndexCursorImpl::loadCurrentRow): (WebCore::objectStoreCursorOptions): (WebCore::indexCursorOptions): (WebCore::IDBBackingStore::openObjectStoreCursor): (WebCore::IDBBackingStore::openObjectStoreKeyCursor): (WebCore::IDBBackingStore::openIndexKeyCursor): (WebCore::IDBBackingStore::openIndexCursor): (WebCore::IDBBackingStore::Transaction::Transaction): (WebCore::IDBBackingStore::Transaction::begin): (WebCore::IDBBackingStore::Transaction::commit): (WebCore::IDBBackingStore::Transaction::rollback): * Modules/indexeddb/IDBBackingStore.h: (WebCore): (IDBBackingStore): (RecordIdentifier): (WebCore::IDBBackingStore::RecordIdentifier::create): (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier): (WebCore::IDBBackingStore::RecordIdentifier::isValid): (WebCore::IDBBackingStore::RecordIdentifier::primaryKey): (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey): (WebCore::IDBBackingStore::RecordIdentifier::version): (WebCore::IDBBackingStore::RecordIdentifier::setVersion): (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier): (Transaction): (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom): (CursorOptions): (Cursor): (WebCore::IDBBackingStore::Cursor::Cursor): (WebCore::IDBBackingStore::Cursor::key): (WebCore::IDBBackingStore::Cursor::primaryKey): (WebCore::IDBBackingStore::Cursor::~Cursor): * Modules/indexeddb/IDBFactoryBackendImpl.cpp: (WebCore::IDBFactoryBackendImpl::openBackingStore): * Modules/indexeddb/IDBIndexBackendImpl.cpp: (WebCore::IDBIndexBackendImpl::countInternal): * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed. * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::setIndexKeys): (WebCore::IDBObjectStoreBackendImpl::putInternal): (WebCore::IDBObjectStoreBackendImpl::deleteInternal): * Modules/indexeddb/IDBTransactionBackendImpl.cpp: (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): (WebCore::IDBTransactionBackendImpl::abort): (WebCore::IDBTransactionBackendImpl::commit): (WebCore::IDBTransactionBackendImpl::taskTimerFired): * Modules/indexeddb/IDBTransactionBackendImpl.h: (WebCore::IDBTransactionBackendImpl::backingStoreTransaction): * WebCore.xcodeproj/project.pbxproj: Source/WebKit/chromium: Remove method that is no longer in the base class. * tests/IDBFakeBackingStore.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
623ffce4