IndexedDB: IDBDatabase should have a close pending field.
authorjsbell@chromium.org <jsbell@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Jun 2012 23:48:31 +0000 (23:48 +0000)
committerjsbell@chromium.org <jsbell@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Jun 2012 23:48:31 +0000 (23:48 +0000)
commitd089157b5abfb6541eea087486e9fd5c58c10256
tree70b8c202f53b1ef811f22a0399cdf0545cb0cd7b
parent697a9d3ea474926c664587588a33615008e56f81
IndexedDB: IDBDatabase should have a close pending field.
https://bugs.webkit.org/show_bug.cgi?id=71129

Reviewed by Tony Chang.

Source/WebCore:

Handle the IDB spec case that "versionchange" events should not be fired
against connections that have the internal "closePending" flag set but
are not yet closed due to running transactions.

Test: storage/indexeddb/database-closepending-flag.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):

LayoutTests:

* storage/indexeddb/database-closepending-flag-expected.txt: Added.
* storage/indexeddb/database-closepending-flag.html: Added.
* storage/indexeddb/resources/database-closepending-flag.js: Added.
(test):
(openConnection.request.onsuccess.request.onsuccess):
(openConnection.request.onsuccess):
(openConnection):
(testIDBDatabaseName):
(testIDBDatabaseObjectStoreNames.request.onsuccess.request.onsuccess.transaction.oncomplete):
(testIDBDatabaseObjectStoreNames.request.onsuccess.request.onsuccess):
(testIDBDatabaseObjectStoreNames.request.onsuccess):
(testIDBDatabaseObjectStoreNames):
(testIDBDatabaseTransaction):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onblocked):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onsuccess.transaction.oncomplete):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onsuccess):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess):
(testDatabaseDeletion.request.onsuccess.request.onblocked):
(testDatabaseDeletion.request.onsuccess.request.onsuccess):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121488 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/storage/indexeddb/database-closepending-flag-expected.txt [new file with mode: 0644]
LayoutTests/storage/indexeddb/database-closepending-flag.html [new file with mode: 0644]
LayoutTests/storage/indexeddb/resources/database-closepending-flag.js [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBDatabase.cpp