Modern IDB: Add some more custom exception messages, passing some more tests.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Dec 2015 01:21:28 +0000 (01:21 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Dec 2015 01:21:28 +0000 (01:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=151895

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Some failing tests now pass).

* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::transaction):

* Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
(WebCore::IDBClient::IDBObjectStore::deleteIndex):

LayoutTests:

* platform/mac-wk1/TestExpectations:
* storage/indexeddb/aborted-versionchange-closes-expected.txt:
* storage/indexeddb/cursor-continue-dir-expected.txt:
* storage/indexeddb/cursor-continue-expected.txt:
* storage/indexeddb/deleteIndex-expected.txt:
* storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@193494 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/mac-wk1/TestExpectations
LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt
LayoutTests/storage/indexeddb/cursor-continue-dir-expected.txt
LayoutTests/storage/indexeddb/deleteIndex-expected.txt
LayoutTests/storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp
Source/WebCore/Modules/indexeddb/client/IDBObjectStoreImpl.cpp

index 920d13d..c0a3f87 100644 (file)
@@ -1,3 +1,17 @@
+2015-12-04  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: Add some more custom exception messages, passing some more tests.
+        https://bugs.webkit.org/show_bug.cgi?id=151895
+
+        Reviewed by Alex Christensen.
+
+        * platform/mac-wk1/TestExpectations:
+        * storage/indexeddb/aborted-versionchange-closes-expected.txt:
+        * storage/indexeddb/cursor-continue-dir-expected.txt:
+        * storage/indexeddb/cursor-continue-expected.txt:
+        * storage/indexeddb/deleteIndex-expected.txt:
+        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
+
 2015-12-04  Andy VanWagoner  <thetalecrafter@gmail.com>
 
         [INTL] Implement Number.prototype.toLocaleString in ECMA-402
index 1b7e66f..568d79c 100644 (file)
@@ -108,19 +108,16 @@ storage/indexeddb/unblocked-version-changes.html [ Skip ]
 
 # IDB tests with text failures                                                             
 storage/indexeddb/createIndex-after-failure.html [ Failure ]
-storage/indexeddb/cursor-continue-dir.html [ Failure ]
-storage/indexeddb/cursor-continue-validity.html [ Failure ]
 storage/indexeddb/cursor-continue.html [ Failure ]
+storage/indexeddb/cursor-continue-validity.html [ Failure ]
 storage/indexeddb/cursor-continueprimarykey.html [ Failure ]
 storage/indexeddb/cursor-leak.html [ Failure ]
 storage/indexeddb/cursor-request-cycle.html [ Failure ]
 storage/indexeddb/database-basics.html [ Failure ]
-storage/indexeddb/database-close.html [ Failure ]
 storage/indexeddb/database-deletepending-flag.html [ Failure ]
 storage/indexeddb/database-wrapper.html [ Failure ]
 storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html [ Failure ]
 storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html [ Failure ]
-storage/indexeddb/deleteIndex.html [ Failure ]
 storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html [ Failure ]
 storage/indexeddb/deletedatabase-not-blocked.html [ Failure ]
 storage/indexeddb/dont-commit-on-blocked.html [ Failure ]
index 093304a..dcc7d2b 100644 (file)
@@ -32,7 +32,7 @@ Expecting exception from db.transaction('store')
 PASS Exception was thrown.
 PASS code is DOMException.INVALID_STATE_ERR
 PASS ename is 'InvalidStateError'
-Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
+Exception message: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 
 onOpenError():
 PASS sawTransactionAbort is true
@@ -41,7 +41,7 @@ Expecting exception from db.transaction('store')
 PASS Exception was thrown.
 PASS code is DOMException.INVALID_STATE_ERR
 PASS ename is 'InvalidStateError'
-Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
+Exception message: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 391ff40..218ee22 100644 (file)
@@ -30,7 +30,7 @@ Expecting exception from cursor.continue(-1)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'DataError'
-Exception message: DataError: DOM IDBDatabase Exception 0
+Exception message: Failed to execute 'continue' on 'IDBCursor': The parameter is less than or equal to this cursor's position.
 request = store.openCursor(IDBKeyRange.bound(-Infinity, Infinity), 'prev')
 cursor = request.result
 PASS cursor is non-null.
@@ -40,7 +40,7 @@ Expecting exception from cursor.continue(11)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'DataError'
-Exception message: DataError: DOM IDBDatabase Exception 0
+Exception message: Failed to execute 'continue' on 'IDBCursor': The parameter is greater than or equal to this cursor's position.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index ec1cccc..fe6671c 100644 (file)
@@ -14,7 +14,7 @@ PASS Exception was thrown.
 PASS code is DOMException.NOT_FOUND_ERR
 PASS ename is 'NotFoundError'
 Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The specified index was not found.
-PASS objectStore.deleteIndex() threw exception TypeError: Failed to execute 'deleteIndex' on 'IDBObjectStore': 1 argument required, but only 0 present..
+PASS objectStore.deleteIndex() threw exception TypeError: Not enough arguments.
 index = objectStore.createIndex('first', 'first');
 Expecting exception from objectStore.deleteIndex('FIRST')
 PASS Exception was thrown.
@@ -33,7 +33,7 @@ Expecting exception from objectStore.deleteIndex('second')
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The transaction is inactive or finished.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 4b553b0..d892a3d 100644 (file)
@@ -5,6 +5,6 @@ ALERT: Failed to start a transaction with an empty set of object stores - Error:
 ALERT: Failed to start a transaction to a nonexistent object store - Error: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
 ALERT: Failed to start a transaction with an invalid mode - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('invalid-mode') is not one of 'readonly' or 'readwrite'.
 ALERT: Failed to explicitly start a versionchange transaction - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('invalid-mode') is not one of 'readonly' or 'readwrite'.
-ALERT: Failed to explicitly start a transaction with the close pending flag set - Error: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
+ALERT: Failed to explicitly start a transaction with the close pending flag set - Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 ALERT: Done
 This tests some obvious failures that can happen while calling IDBDatabase.transaction()
index 29a1a5e..7060bd9 100644 (file)
@@ -1,3 +1,18 @@
+2015-12-04  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: Add some more custom exception messages, passing some more tests.
+        https://bugs.webkit.org/show_bug.cgi?id=151895
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Some failing tests now pass).
+
+        * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
+        (WebCore::IDBClient::IDBDatabase::transaction):
+
+        * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
+        (WebCore::IDBClient::IDBObjectStore::deleteIndex):
+
 2015-12-04  Jonathan Davis  <jond@apple.com>
 
         Update feature status for up-to-date status information.
index e825cdf..7fefd06 100644 (file)
@@ -143,6 +143,7 @@ RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext*
 
     if (m_closePending) {
         ec.code = IDBDatabaseException::InvalidStateError;
+        ec.message = ASCIILiteral("Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.");
         return nullptr;
     }
 
index 488391f..4544440 100644 (file)
@@ -502,6 +502,7 @@ void IDBObjectStore::deleteIndex(const String& name, ExceptionCodeWithMessage& e
 
     if (!m_transaction->isActive()) {
         ec.code = IDBDatabaseException::TransactionInactiveError;
+        ec.message = ASCIILiteral("Failed to execute 'deleteIndex' on 'IDBObjectStore': The transaction is inactive or finished.");
         return;
     }