Skip to content
  • hans@chromium.org's avatar
    2011-05-27 Hans Wennborg <hans@chromium.org> · 84895b03
    hans@chromium.org authored
            Reviewed by Tony Gentilcore.
    
            IndexedDB: Support mutating cursors on top of LevelDB
            https://bugs.webkit.org/show_bug.cgi?id=61615
    
            New test for adding new entries to an objecet store while running a
            cursor over it.
    
            * storage/indexeddb/mutating-cursor-expected.txt: Added.
            * storage/indexeddb/mutating-cursor.html: Added.
    2011-05-27  Hans Wennborg  <hans@chromium.org>
    
            Reviewed by Tony Gentilcore.
    
            IndexedDB: Support mutating cursors on top of LevelDB
            https://bugs.webkit.org/show_bug.cgi?id=61615
    
            We need to support the case where a new node is added to the tree in a
            transaction after the TreeIterator has covered the whole tree.
    
            Since this is done lazily, i.e. we set a flag that the tree might have
            changed, and act upon it later, some members need to be mutable,
            because we might need to re-seek the tree iterator in a const function.
    
            Test: storage/indexeddb/mutating-cursor.html
                  storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html (existing)
    
            * platform/leveldb/LevelDBTransaction.cpp:
            (WebCore::LevelDBTransaction::set):
            (WebCore::LevelDBTransaction::TreeIterator::reset):
            (WebCore::LevelDBTransaction::TreeIterator::~TreeIterator):
            (WebCore::LevelDBTransaction::TreeIterator::TreeIterator):
            (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
            (WebCore::LevelDBTransaction::TransactionIterator::~TransactionIterator):
            (WebCore::LevelDBTransaction::TransactionIterator::next):
            (WebCore::LevelDBTransaction::TransactionIterator::prev):
            (WebCore::LevelDBTransaction::TransactionIterator::key):
            (WebCore::LevelDBTransaction::TransactionIterator::value):
            (WebCore::LevelDBTransaction::TransactionIterator::treeChanged):
            (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
            (WebCore::LevelDBTransaction::registerIterator):
            (WebCore::LevelDBTransaction::unregisterIterator):
            (WebCore::LevelDBTransaction::notifyIteratorsOfTreeChange):
            * platform/leveldb/LevelDBTransaction.h:
            * storage/IDBFactoryBackendImpl.cpp:
            (WebCore::IDBFactoryBackendImpl::open):
            * storage/IDBLevelDBBackingStore.cpp:
            (WebCore::IDBLevelDBBackingStore::open):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87508 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    84895b03