Changeset 126366 in webkit


Ignore:
Timestamp:
Aug 22, 2012 4:23:43 PM (12 years ago)
Author:
dgrogan@chromium.org
Message:

IndexedDB: revert int version when version change transaction aborts
https://bugs.webkit.org/show_bug.cgi?id=94662

Reviewed by Tony Chang.

Source/WebCore:

Test: storage/indexeddb/intversion-revert-on-abort.html

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::resetIntVersion):
One-liner modeled after resetVersion.

(WebCore):

  • Modules/indexeddb/IDBDatabaseBackendImpl.h:

(IDBDatabaseBackendImpl):

LayoutTests:

This is tested in some other layout tests but it should have its own,
so add intversion-revert-on-abort.html.

  • storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:

FAIL event.target.result.version should be 0 will be resolved at least
when we figure out if we can make the default version an integer
during the transition period.

  • storage/indexeddb/intversion-revert-on-abort-expected.txt: Added.
  • storage/indexeddb/intversion-revert-on-abort.html: Added.
  • storage/indexeddb/resources/intversion-revert-on-abort.js: Added.

(test):
(deleteSuccess):
(firstUpgradeNeededCallback):
(openSuccess):
(secondUpgradeNeededCallback):
(errorAfterAbortCallback):
(finalSuccessCallback):

Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r126365 r126366  
     12012-08-22  David Grogan  <dgrogan@chromium.org>
     2
     3        IndexedDB: revert int version when version change transaction aborts
     4        https://bugs.webkit.org/show_bug.cgi?id=94662
     5
     6        Reviewed by Tony Chang.
     7
     8        This is tested in some other layout tests but it should have its own,
     9        so add intversion-revert-on-abort.html.
     10
     11        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
     12        FAIL event.target.result.version should be 0 will be resolved at least
     13        when we figure out if we can make the default version an integer
     14        during the transition period.
     15
     16        * storage/indexeddb/intversion-revert-on-abort-expected.txt: Added.
     17        * storage/indexeddb/intversion-revert-on-abort.html: Added.
     18        * storage/indexeddb/resources/intversion-revert-on-abort.js: Added.
     19        (test):
     20        (deleteSuccess):
     21        (firstUpgradeNeededCallback):
     22        (openSuccess):
     23        (secondUpgradeNeededCallback):
     24        (errorAfterAbortCallback):
     25        (finalSuccessCallback):
     26
    1272012-08-17  Jeffrey Pfau  <jpfau@apple.com>
    228
  • trunk/LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt

    r126239 r126366  
    1717
    1818onAbort():
    19 FAIL event.target.db.version should be 0. Was 2.
     19FAIL event.target.db.version should be 0 (of type number). Was  (of type string).
    2020PASS request.transaction is non-null.
    2121
     
    2424PASS request is event.target
    2525PASS event.target.error.name is "AbortError"
    26 FAIL event.target.result.version should be 0. Was 2.
     26FAIL event.target.result.version should be 0 (of type number). Was  (of type string).
    2727PASS request.transaction is null
    2828PASS successfullyParsed is true
  • trunk/Source/WebCore/ChangeLog

    r126365 r126366  
     12012-08-22  David Grogan  <dgrogan@chromium.org>
     2
     3        IndexedDB: revert int version when version change transaction aborts
     4        https://bugs.webkit.org/show_bug.cgi?id=94662
     5
     6        Reviewed by Tony Chang.
     7
     8        Test: storage/indexeddb/intversion-revert-on-abort.html
     9
     10        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
     11        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
     12        (WebCore::IDBDatabaseBackendImpl::resetIntVersion):
     13        One-liner modeled after resetVersion.
     14
     15        (WebCore):
     16        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
     17        (IDBDatabaseBackendImpl):
     18
    1192012-08-17  Jeffrey Pfau  <jpfau@apple.com>
    220
  • trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp

    r126239 r126366  
    491491    RefPtr<IDBDatabaseBackendImpl> database = this;
    492492    OwnPtr<ScriptExecutionContext::Task> intVersionTask = createCallbackTask(&IDBDatabaseBackendImpl::setIntVersionInternal, database, requestedVersion, callbacks, transaction);
    493     // FIXME: Make this reset the integer version as well.
    494     OwnPtr<ScriptExecutionContext::Task> resetVersionOnAbortTask = createCallbackTask(&IDBDatabaseBackendImpl::resetVersion, database, m_version);
     493    OwnPtr<ScriptExecutionContext::Task> resetVersionOnAbortTask = createCallbackTask(&IDBDatabaseBackendImpl::resetIntVersion, database, m_intVersion);
    495494    if (!transaction->scheduleTask(intVersionTask.release(), resetVersionOnAbortTask.release())) {
    496495        // FIXME: Remove one of the following lines.
     
    625624}
    626625
     626void IDBDatabaseBackendImpl::resetIntVersion(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl> database, int64_t oldVersion)
     627{
     628    database->m_intVersion = oldVersion;
     629}
     630
    627631
    628632} // namespace WebCore
  • trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h

    r126239 r126366  
    9494    static void addObjectStoreToMap(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl>, PassRefPtr<IDBObjectStoreBackendImpl>);
    9595    static void resetVersion(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl>, const String& version);
     96    static void resetIntVersion(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl>, int64_t intVersion);
    9697
    9798    RefPtr<IDBBackingStore> m_backingStore;
Note: See TracChangeset for help on using the changeset viewer.