Skip to content
  • jsbell@chromium.org's avatar
    IndexedDB: Remove "current transaction" concept from backing store · a2fcc60d
    jsbell@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=96663
    
    Reviewed by Tony Chang.
    
    Source/WebCore:
    
    IndexedDB should allow multiple transactions to run in parallel within and
    across databases within an origin. As an initial step to enabling this, the
    backing store should not hold a "current transaction" - instead, operations
    should be done relative to a transaction managed by the database.
    
    No new tests - no functional changes.
    
    * Modules/indexeddb/IDBBackingStore.h:
    (IDBBackingStore):
    * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
    (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
    (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
    (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
    (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
    * Modules/indexeddb/IDBDatabaseBackendImpl.h:
    (IDBDatabaseBackendImpl):
    * Modules/indexeddb/IDBIndexBackendImpl.cpp:
    (WebCore::IDBIndexBackendImpl::openCursorInternal):
    (WebCore::IDBIndexBackendImpl::countInternal):
    (WebCore::IDBIndexBackendImpl::count):
    (WebCore::IDBIndexBackendImpl::getInternal):
    (WebCore::IDBIndexBackendImpl::getKeyInternal):
    (WebCore::IDBIndexBackendImpl::get):
    (WebCore::IDBIndexBackendImpl::getKey):
    * Modules/indexeddb/IDBIndexBackendImpl.h:
    (IDBIndexBackendImpl):
    * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
    (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
    (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
    (WebCore::IDBLevelDBBackingStore::createObjectStore):
    (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
    (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
    (WebCore):
    (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
    (WebCore::IDBLevelDBBackingStore::clearObjectStore):
    (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
    (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
    (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
    (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
    (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
    (WebCore::IDBLevelDBBackingStore::createIndex):
    (WebCore::IDBLevelDBBackingStore::deleteIndex):
    (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
    (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
    (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
    (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
    (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
    (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
    (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
    (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
    (WebCore::IDBLevelDBBackingStore::openIndexCursor):
    (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
    (WebCore::IDBLevelDBBackingStore::Transaction::begin):
    (WebCore::IDBLevelDBBackingStore::Transaction::commit):
    (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
    * Modules/indexeddb/IDBLevelDBBackingStore.h:
    (IDBLevelDBBackingStore):
    (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransaction):
    (Transaction):
    (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
    * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
    (WebCore::IDBObjectStoreBackendImpl::get):
    (WebCore::IDBObjectStoreBackendImpl::getInternal):
    (WebCore):
    (WebCore::makeIndexWriters):
    (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
    (WebCore::IDBObjectStoreBackendImpl::putInternal):
    (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
    (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
    (WebCore::IDBObjectStoreBackendImpl::clear):
    (WebCore::IDBObjectStoreBackendImpl::clearInternal):
    (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
    (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
    (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
    (WebCore::IDBObjectStoreBackendImpl::count):
    (WebCore::IDBObjectStoreBackendImpl::countInternal):
    (WebCore::IDBObjectStoreBackendImpl::generateKey):
    (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
    * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
    (IDBObjectStoreBackendImpl):
    
    Source/WebKit/chromium:
    
    Update fake class with new method signatures.
    
    * tests/IDBFakeBackingStore.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a2fcc60d