Change toString() behavior for exceptions constructed with "createWithDescriptionAsMe...
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Jul 2016 00:04:42 +0000 (00:04 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Jul 2016 00:04:42 +0000 (00:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=159839

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* IndexedDB-private-browsing/idbindex_get7-expected.txt:
* IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
* IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
* IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
* web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
* web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
* web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
* web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

This is the first step towards extended exception messages for all exception types.

* dom/ExceptionBase.cpp:
(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):
* dom/ExceptionBase.h:

LayoutTests:

* storage/indexeddb/modern/createobjectstore-failures-expected.txt:
* storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
* storage/indexeddb/modern/double-abort-expected.txt:
* storage/indexeddb/modern/double-abort-private-expected.txt:
* storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
* storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
* storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
* storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:

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

21 files changed:
LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/IndexedDB-private-browsing/idbindex_get7-expected.txt
LayoutTests/imported/w3c/IndexedDB-private-browsing/idbindex_getKey7-expected.txt
LayoutTests/imported/w3c/IndexedDB-private-browsing/idbindex_openCursor2-expected.txt
LayoutTests/imported/w3c/IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get7-expected.txt
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt
LayoutTests/storage/indexeddb/modern/createobjectstore-failures-expected.txt
LayoutTests/storage/indexeddb/modern/createobjectstore-failures-private-expected.txt
LayoutTests/storage/indexeddb/modern/double-abort-expected.txt
LayoutTests/storage/indexeddb/modern/double-abort-private-expected.txt
LayoutTests/storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt
LayoutTests/storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt
LayoutTests/storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt
LayoutTests/storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/dom/ExceptionBase.cpp
Source/WebCore/dom/ExceptionBase.h

index 5cff3df7bb8784ba2e7337b2a4b4e43256ec6bd7..bcbbb2aa3b5e08595d8d8564ed5e7dd523a78aee 100644 (file)
@@ -1,3 +1,19 @@
+2016-07-15  Brady Eidson  <beidson@apple.com>
+
+        Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
+        https://bugs.webkit.org/show_bug.cgi?id=159839
+
+        Reviewed by Alex Christensen.
+
+        * storage/indexeddb/modern/createobjectstore-failures-expected.txt:
+        * storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
+        * storage/indexeddb/modern/double-abort-expected.txt:
+        * storage/indexeddb/modern/double-abort-private-expected.txt:
+        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
+        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
+        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
+        * storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
+
 2016-07-15  Brent Fulgham  <bfulgham@apple.com>
 
         Merge background parser Blink test case
index 60546a09bf958f6cc0c78531240b52170412ba7b..0e439b69fa0bc6eaede5c4a5ef83c259c93c7ca3 100644 (file)
@@ -1,3 +1,19 @@
+2016-07-15  Brady Eidson  <beidson@apple.com>
+
+        Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
+        https://bugs.webkit.org/show_bug.cgi?id=159839
+
+        Reviewed by Alex Christensen.
+
+        * IndexedDB-private-browsing/idbindex_get7-expected.txt:
+        * IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
+        * IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
+        * IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
+        * web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
+        * web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
+        * web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
+        * web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:
+
 2016-07-14  Youenn Fablet  <youenn@apple.com>
 
         DOMIterators should be assigned a correct prototype
index 5f06e1b40a89ca98ec08b8b0a510fe545b995b6c..6f98b7e6587157292f686056034a18eceebdb67c 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.get() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.get("data");
-        }" threw object "Error: Failed to execute 'get' on 'IDBIndex': The transac..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index 3cedcc6037079d8dd7ae3cc5d5f2586796c48814..f163aa36f2051c8e70046857f03cbe5a3387d53e 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.getKey() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.getKey("data");
-        }" threw object "Error: Failed to execute 'getKey' on 'IDBIndex': The tran..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index d923112712ef3ce86391292919700ae99b658e13..de528233c8556ec3f2cf21837fd4b196b16ab57d 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.openCursor() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.openCursor();
-        }" threw object "Error: Failed to execute 'openCursor' on 'IDBIndex': The ..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index 985ed0b075d9237a9d83905069fca17648a03428..dfff68b6626d1007fc1df425727bdf506c32d2fa 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.openKeyCursor() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.openKeyCursor();
-        }" threw object "Error: Failed to execute 'openKeyCursor' on 'IDBIndex': T..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index 5f06e1b40a89ca98ec08b8b0a510fe545b995b6c..6f98b7e6587157292f686056034a18eceebdb67c 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.get() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.get("data");
-        }" threw object "Error: Failed to execute 'get' on 'IDBIndex': The transac..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index 3cedcc6037079d8dd7ae3cc5d5f2586796c48814..f163aa36f2051c8e70046857f03cbe5a3387d53e 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.getKey() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.getKey("data");
-        }" threw object "Error: Failed to execute 'getKey' on 'IDBIndex': The tran..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index d923112712ef3ce86391292919700ae99b658e13..de528233c8556ec3f2cf21837fd4b196b16ab57d 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.openCursor() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.openCursor();
-        }" threw object "Error: Failed to execute 'openCursor' on 'IDBIndex': The ..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index 985ed0b075d9237a9d83905069fca17648a03428..dfff68b6626d1007fc1df425727bdf506c32d2fa 100644 (file)
@@ -1,5 +1,5 @@
 
 FAIL IDBIndex.openKeyCursor() - throw TransactionInactiveError on aborted transaction assert_throws: function "function (){
             index.openKeyCursor();
-        }" threw object "Error: Failed to execute 'openKeyCursor' on 'IDBIndex': T..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
+        }" threw object "TransactionInactiveError (DOM IDBDatabase Exception): Fai..." that is not a DOMException InvalidStateError: property "code" is equal to 0, expected 11
 
index a0290eb78de606853c63bbfd34251f1c57410b99..e1fcf4083a68abf68a3a174aacba1d9c06953aec 100644 (file)
@@ -8,25 +8,25 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
-Failed to create object store with both autoincrement and an empty keypath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
+Failed to create object store with both autoincrement and an empty keypath: InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
 Object store names:
-Failed to create object store with both autoincrement and a sequence keypath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
+Failed to create object store with both autoincrement and a sequence keypath: InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
 Object store names:
-Failed to create object store with invalid keyPath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
+Failed to create object store with invalid keyPath: SyntaxError (DOM IDBDatabase Exception 12): Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
 Object store names:
 Actually created an object store
 Object store names:
 TestObjectStore1
-Failed to create TestObjectStore a second time: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': An object store with the specified name already exists.
+Failed to create TestObjectStore a second time: ConstraintError (DOM IDBDatabase Exception): Failed to execute 'createObjectStore' on 'IDBDatabase': An object store with the specified name already exists.
 Object store names:
 TestObjectStore1
 Initial upgrade versionchange transaction complete
 Object store names:
 TestObjectStore1
-Failed to create object store while there is no version change transaction: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to create object store while there is no version change transaction: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 Object store names:
 TestObjectStore1
-Failed to create object store outside of onupgradeneeded: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to create object store outside of onupgradeneeded: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 Object store names:
 TestObjectStore1
 PASS successfullyParsed is true
index a0290eb78de606853c63bbfd34251f1c57410b99..e1fcf4083a68abf68a3a174aacba1d9c06953aec 100644 (file)
@@ -8,25 +8,25 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
-Failed to create object store with both autoincrement and an empty keypath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
+Failed to create object store with both autoincrement and an empty keypath: InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
 Object store names:
-Failed to create object store with both autoincrement and a sequence keypath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
+Failed to create object store with both autoincrement and a sequence keypath: InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
 Object store names:
-Failed to create object store with invalid keyPath: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
+Failed to create object store with invalid keyPath: SyntaxError (DOM IDBDatabase Exception 12): Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
 Object store names:
 Actually created an object store
 Object store names:
 TestObjectStore1
-Failed to create TestObjectStore a second time: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': An object store with the specified name already exists.
+Failed to create TestObjectStore a second time: ConstraintError (DOM IDBDatabase Exception): Failed to execute 'createObjectStore' on 'IDBDatabase': An object store with the specified name already exists.
 Object store names:
 TestObjectStore1
 Initial upgrade versionchange transaction complete
 Object store names:
 TestObjectStore1
-Failed to create object store while there is no version change transaction: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to create object store while there is no version change transaction: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 Object store names:
 TestObjectStore1
-Failed to create object store outside of onupgradeneeded: Error: Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to create object store outside of onupgradeneeded: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'createObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 Object store names:
 TestObjectStore1
 PASS successfullyParsed is true
index 1b162b2f2f6a450f8ddbdfa49c4905ac30db1453..a57df01a2db0040289de6a96c111847c305cb8a1 100644 (file)
@@ -8,7 +8,7 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
-Second abort failed: Error: Failed to execute 'abort' on 'IDBTransaction': The transaction is inactive or finished.
+Second abort failed: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'abort' on 'IDBTransaction': The transaction is inactive or finished.
 Initial upgrade versionchange transaction aborted
 PASS successfullyParsed is true
 
index 1b162b2f2f6a450f8ddbdfa49c4905ac30db1453..a57df01a2db0040289de6a96c111847c305cb8a1 100644 (file)
@@ -8,7 +8,7 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
-Second abort failed: Error: Failed to execute 'abort' on 'IDBTransaction': The transaction is inactive or finished.
+Second abort failed: InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'abort' on 'IDBTransaction': The transaction is inactive or finished.
 Initial upgrade versionchange transaction aborted
 PASS successfullyParsed is true
 
index 102325bac86d168b84d95608403f4cf27666837d..0b1bffcd5f6f00d45cd1689e13cae93b3d97831e 100644 (file)
@@ -10,11 +10,11 @@ indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Initial upgrade versionchange transaction complete
 readwrite put success - about to try to delete an objectstore
-Failed to deleteObjectStore without a versionchange transaction - Error: Failed to execute 'deleteObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to deleteObjectStore without a versionchange transaction - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'deleteObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 readwrite transaction complete
 Second upgrade needed: Old version - 1 New version - 2
-Failed to deleteObjectStore with a non-existent objectstore - Error: Failed to execute 'deleteObjectStore' on 'IDBDatabase': The specified object store was not found.
-Failed to deleteObjectStore with an in-progress versionchange transaction that is inactive - Error: A request was placed against a transaction which is either currently not active, or which is finished.
+Failed to deleteObjectStore with a non-existent objectstore - NotFoundError (DOM IDBDatabase Exception 8): Failed to execute 'deleteObjectStore' on 'IDBDatabase': The specified object store was not found.
+Failed to deleteObjectStore with an in-progress versionchange transaction that is inactive - TransactionInactiveError (DOM IDBDatabase Exception): A request was placed against a transaction which is either currently not active, or which is finished.
 Second version change transaction complete
 PASS successfullyParsed is true
 
index 102325bac86d168b84d95608403f4cf27666837d..0b1bffcd5f6f00d45cd1689e13cae93b3d97831e 100644 (file)
@@ -10,11 +10,11 @@ indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Initial upgrade versionchange transaction complete
 readwrite put success - about to try to delete an objectstore
-Failed to deleteObjectStore without a versionchange transaction - Error: Failed to execute 'deleteObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
+Failed to deleteObjectStore without a versionchange transaction - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'deleteObjectStore' on 'IDBDatabase': The database is not running a version change transaction.
 readwrite transaction complete
 Second upgrade needed: Old version - 1 New version - 2
-Failed to deleteObjectStore with a non-existent objectstore - Error: Failed to execute 'deleteObjectStore' on 'IDBDatabase': The specified object store was not found.
-Failed to deleteObjectStore with an in-progress versionchange transaction that is inactive - Error: A request was placed against a transaction which is either currently not active, or which is finished.
+Failed to deleteObjectStore with a non-existent objectstore - NotFoundError (DOM IDBDatabase Exception 8): Failed to execute 'deleteObjectStore' on 'IDBDatabase': The specified object store was not found.
+Failed to deleteObjectStore with an in-progress versionchange transaction that is inactive - TransactionInactiveError (DOM IDBDatabase Exception): A request was placed against a transaction which is either currently not active, or which is finished.
 Second version change transaction complete
 PASS successfullyParsed is true
 
index 645622080e54577b9d7f1c614399de0d04ce94d9..b9966a97f50858a7389786ba47bde52433b8fdd3 100644 (file)
@@ -8,13 +8,13 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Upgrade needed: Old version - 0 New version - 1
-Failed to start a transaction while a versionChange transaction was in progress - Error: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
+Failed to start a transaction while a versionChange transaction was in progress - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
 versionchange transaction completed
-Failed to start a transaction with an empty set of object stores - Error: Failed to execute 'transaction' on 'IDBDatabase': The storeNames parameter was empty.
-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.
+Failed to start a transaction with an empty set of object stores - InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'transaction' on 'IDBDatabase': The storeNames parameter was empty.
+Failed to start a transaction to a nonexistent object store - NotFoundError (DOM IDBDatabase Exception 8): Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
 Failed to start a transaction with an invalid mode - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('blahblah') is not one of 'readonly' or 'readwrite'.
 Failed to explicitly start a versionchange transaction - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('versionchange') is not one of 'readonly' or 'readwrite'.
-Failed to explicitly start a transaction with the close pending flag set - Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
+Failed to explicitly start a transaction with the close pending flag set - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 645622080e54577b9d7f1c614399de0d04ce94d9..b9966a97f50858a7389786ba47bde52433b8fdd3 100644 (file)
@@ -8,13 +8,13 @@ indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Upgrade needed: Old version - 0 New version - 1
-Failed to start a transaction while a versionChange transaction was in progress - Error: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
+Failed to start a transaction while a versionChange transaction was in progress - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
 versionchange transaction completed
-Failed to start a transaction with an empty set of object stores - Error: Failed to execute 'transaction' on 'IDBDatabase': The storeNames parameter was empty.
-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.
+Failed to start a transaction with an empty set of object stores - InvalidAccessError (DOM IDBDatabase Exception 15): Failed to execute 'transaction' on 'IDBDatabase': The storeNames parameter was empty.
+Failed to start a transaction to a nonexistent object store - NotFoundError (DOM IDBDatabase Exception 8): Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
 Failed to start a transaction with an invalid mode - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('blahblah') is not one of 'readonly' or 'readwrite'.
 Failed to explicitly start a versionchange transaction - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('versionchange') is not one of 'readonly' or 'readwrite'.
-Failed to explicitly start a transaction with the close pending flag set - Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
+Failed to explicitly start a transaction with the close pending flag set - InvalidStateError (DOM IDBDatabase Exception 11): Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index f50bff76b61fb9cfc286ea62adca56490388ca92..13aefb64eea4778067d4f7ca4c3cc77c1fee2cc5 100644 (file)
@@ -1,3 +1,19 @@
+2016-07-15  Brady Eidson  <beidson@apple.com>
+
+        Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
+        https://bugs.webkit.org/show_bug.cgi?id=159839
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Covered by changes to existing tests).
+
+        This is the first step towards extended exception messages for all exception types.
+
+        * dom/ExceptionBase.cpp:
+        (WebCore::ExceptionBase::ExceptionBase):
+        (WebCore::ExceptionBase::toString):
+        * dom/ExceptionBase.h:
+
 2016-07-15  Geoffrey Garen  <ggaren@apple.com>
 
         Added a makeRef<T> helper
index ec28c27d3e5f8c8cefa8273faa9819289b1f0c38..6d273a437e96305c4317543a0bdcc45fcee537e4 100644 (file)
@@ -37,6 +37,8 @@ ExceptionBase::ExceptionBase(const ExceptionCodeDescription& description, Messag
     : m_code(description.code)
     , m_name(description.name)
     , m_description(description.description)
+    , m_typeName(description.typeName)
+    , m_messageSource(messageSource)
 {
     if (messageSource == MessageSource::UseDescription) {
         m_message = m_description;
@@ -51,7 +53,17 @@ ExceptionBase::ExceptionBase(const ExceptionCodeDescription& description, Messag
 
 String ExceptionBase::toString() const
 {
-    return "Error: " + m_message;
+    if (m_messageSource != MessageSource::UseDescription)
+        return makeString("Error: ", m_message);
+
+    String lastComponent;
+    if (!m_description.isEmpty())
+        lastComponent = makeString(": ", m_description);
+
+    if (m_name.isEmpty())
+        return makeString(m_typeName, " Exception", m_code ? makeString(" ", String::number(m_code)) : "", lastComponent);
+
+    return makeString(m_name, " (", m_typeName, " Exception", m_code ? makeString(" ", String::number(m_code)) : "", ")", lastComponent);
 }
 
 } // namespace WebCore
index 32ad3f5ae75c33ca633451452c929965c3a4dea5..07235cf3aca34084aba4c99ee00993ca6748ab7a 100644 (file)
@@ -58,6 +58,8 @@ private:
     String m_name;
     String m_message;
     String m_description;
+    String m_typeName;
+    MessageSource m_messageSource;
 };
 
 } // namespace WebCore