-
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