Skip to content
  • hans@chromium.org's avatar
    2011-05-05 Hans Wennborg <hans@chromium.org> · f9c19cc4
    hans@chromium.org authored
            Reviewed by Steve Block.
    
            IndexedDB: Transaction rollback prevented by open SQLite statement
            https://bugs.webkit.org/show_bug.cgi?id=60032
    
            Add test for veryfing that transaction roll-back works, even with a
            previously opened cursor still around.
    
            * storage/indexeddb/transaction-rollback-expected.txt: Added.
            * storage/indexeddb/transaction-rollback.html: Added.
    2011-05-05  Hans Wennborg  <hans@chromium.org>
    
            Reviewed by Steve Block.
    
            IndexedDB: Transaction rollback prevented by open SQLite statement
            https://bugs.webkit.org/show_bug.cgi?id=60032
    
            Let the IDBTransactionbackendImpl keep track of all open cursors, and
            "close" them (i.e. finalizing the underlying SQLiteStatement) before
            committing or rolling back the transaction. This fixes the problem
            with opened cursors preventing transaction rollback.
    
            Test: storage/indexeddb/transaction-rollback.html
    
            * storage/IDBBackingStore.h:
            * storage/IDBCursorBackendImpl.cpp:
            (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
            (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl):
            (WebCore::IDBCursorBackendImpl::close):
            * storage/IDBCursorBackendImpl.h:
            * storage/IDBLevelDBBackingStore.cpp:
            * storage/IDBSQLiteBackingStore.cpp:
            * storage/IDBTransactionBackendImpl.cpp:
            (WebCore::IDBTransactionBackendImpl::abort):
            (WebCore::IDBTransactionBackendImpl::registerOpenCursor):
            (WebCore::IDBTransactionBackendImpl::unregisterOpenCursor):
            (WebCore::IDBTransactionBackendImpl::commit):
            (WebCore::IDBTransactionBackendImpl::closeOpenCursors):
            * storage/IDBTransactionBackendImpl.h:
            * storage/IDBTransactionBackendInterface.h:
            (WebCore::IDBTransactionBackendInterface::registerOpenCursor):
            (WebCore::IDBTransactionBackendInterface::unregisterOpenCursor):
    2011-05-05  Hans Wennborg  <hans@chromium.org>
    
            Reviewed by Steve Block.
    
            IndexedDB: Transaction rollback prevented by open SQLite statement
            https://bugs.webkit.org/show_bug.cgi?id=60032
    
            Implement two new methods in IDBTransactionBackendInterface.
    
            * src/IDBTransactionBackendProxy.cpp:
            (WebKit::IDBTransactionBackendProxy::registerOpenCursor):
            (WebKit::IDBTransactionBackendProxy::unregisterOpenCursor):
            * src/IDBTransactionBackendProxy.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    f9c19cc4