IndexedDB 2.0: Use IDB-specific exceptions in places where the generic exceptions...
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Nov 2016 18:02:02 +0000 (18:02 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Nov 2016 18:02:02 +0000 (18:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=164406

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt:
* web-platform-tests/IndexedDB/idbobjectstore-rename-errors-expected.txt:

Source/WebCore:

No new tests (Covered by existing tests).

* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::setName):

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::setName):

LayoutTests:

* storage/indexeddb/modern/index-rename-1-expected.txt:
* storage/indexeddb/modern/index-rename-1-private-expected.txt:
* storage/indexeddb/modern/objectstore-rename-1-expected.txt:
* storage/indexeddb/modern/objectstore-rename-1-private-expected.txt:

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

LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt
LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-rename-errors-expected.txt
LayoutTests/storage/indexeddb/modern/index-rename-1-expected.txt
LayoutTests/storage/indexeddb/modern/index-rename-1-private-expected.txt
LayoutTests/storage/indexeddb/modern/objectstore-rename-1-expected.txt
LayoutTests/storage/indexeddb/modern/objectstore-rename-1-private-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBIndex.cpp
Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp

index 554c509..b9613a7 100644 (file)
@@ -1,3 +1,15 @@
+2016-11-04  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0: Use IDB-specific exceptions in places where the generic exceptions are currently used.
+        https://bugs.webkit.org/show_bug.cgi?id=164406
+
+        Reviewed by Alex Christensen.
+
+        * storage/indexeddb/modern/index-rename-1-expected.txt:
+        * storage/indexeddb/modern/index-rename-1-private-expected.txt:
+        * storage/indexeddb/modern/objectstore-rename-1-expected.txt:
+        * storage/indexeddb/modern/objectstore-rename-1-private-expected.txt:
+
 2016-11-04  Joanmarie Diggs  <jdiggs@igalia.com>
 
         AX: [ATK] Attempting to clear selection on ARIA listboxes results in crash
index 52f820c..613053f 100644 (file)
@@ -1,5 +1,15 @@
 2016-11-04  Brady Eidson  <beidson@apple.com>
 
+        IndexedDB 2.0: Use IDB-specific exceptions in places where the generic exceptions are currently used.
+        https://bugs.webkit.org/show_bug.cgi?id=164406
+
+        Reviewed by Alex Christensen.
+
+        * web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt:
+        * web-platform-tests/IndexedDB/idbobjectstore-rename-errors-expected.txt:
+
+2016-11-04  Brady Eidson  <beidson@apple.com>
+
         IndexedDB 2.0: Throw the correct exceptions during IDBObjectStore/IDBIndex renaming.
         https://bugs.webkit.org/show_bug.cgi?id=164405
 
index f90e703..8039cf0 100644 (file)
@@ -2,7 +2,7 @@
 PASS IndexedDB deleted index rename throws 
 PASS IndexedDB index rename throws in a readonly transaction 
 PASS IndexedDB index rename throws in a readwrite transaction 
-FAIL IndexedDB index rename throws in an inactive transaction assert_throws: function "() => authorIndex.name = 'renamed_by_author'" threw object "TransactionInactiveError (DOM Exception 31): Failed set p..." that is not a DOMException TransactionInactiveError: property "code" is equal to 31, expected 0
-FAIL IndexedDB index rename to the name of another index throws assert_throws: function "() => index.name = 'by_title'" threw object "ConstraintError (DOM Exception 29): Failed set property '..." that is not a DOMException ConstraintError: property "code" is equal to 29, expected 0
+PASS IndexedDB index rename throws in an inactive transaction 
+PASS IndexedDB index rename to the name of another index throws 
 PASS IndexedDB index rename handles exceptions when stringifying names 
 
index 6e3d0eb..ac00ce7 100644 (file)
@@ -2,7 +2,7 @@
 PASS IndexedDB deleted object store rename throws 
 PASS IndexedDB object store rename throws in a readonly transaction 
 PASS IndexedDB object store rename throws in a readwrite transaction 
-FAIL IndexedDB object store rename throws in an inactive transaction assert_throws: function "() => { bookStore.name = 'renamed_books'; }" threw object "TransactionInactiveError (DOM Exception 31): Failed set p..." that is not a DOMException TransactionInactiveError: property "code" is equal to 31, expected 0
-FAIL IndexedDB object store rename to the name of another store throws assert_throws: function "() => store.name = 'not_books'" threw object "ConstraintError (DOM Exception 29): Failed set property '..." that is not a DOMException ConstraintError: property "code" is equal to 29, expected 0
+PASS IndexedDB object store rename throws in an inactive transaction 
+PASS IndexedDB object store rename to the name of another store throws 
 PASS IndexedDB object store rename handles exceptions when stringifying names 
 
index 86ce98d..541bfce 100644 (file)
@@ -10,7 +10,7 @@ indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Failed to rename deleted index: InvalidStateError (DOM Exception 11): Failed set property 'name' on 'IDBIndex': The index has been deleted.
 Initial index name: NewIndex
-Caught exception renaming index to the name of another existing index: ConstraintError (DOM Exception 29): Failed set property 'name' on 'IDBIndex': The owning object store already has an index named 'ExistingIndex'.
+Caught exception renaming index to the name of another existing index: ConstraintError (DOM IDBDatabase Exception): Failed set property 'name' on 'IDBIndex': The owning object store already has an index named 'ExistingIndex'.
 Renamed this index to the same name it already has, it's name is now: NewIndex
 Renamed index name: RenamedIndex
 Current index name in a new transaction: RenamedIndex
index 86ce98d..541bfce 100644 (file)
@@ -10,7 +10,7 @@ indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Failed to rename deleted index: InvalidStateError (DOM Exception 11): Failed set property 'name' on 'IDBIndex': The index has been deleted.
 Initial index name: NewIndex
-Caught exception renaming index to the name of another existing index: ConstraintError (DOM Exception 29): Failed set property 'name' on 'IDBIndex': The owning object store already has an index named 'ExistingIndex'.
+Caught exception renaming index to the name of another existing index: ConstraintError (DOM IDBDatabase Exception): Failed set property 'name' on 'IDBIndex': The owning object store already has an index named 'ExistingIndex'.
 Renamed this index to the same name it already has, it's name is now: NewIndex
 Renamed index name: RenamedIndex
 Current index name in a new transaction: RenamedIndex
index 1cedb42..d720631 100644 (file)
@@ -9,7 +9,7 @@ indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Initial objectStore name: TestObjectStore
-Caught exception renaming object store to the name of another existing object store: ConstraintError (DOM Exception 29): Failed set property 'name' on 'IDBObjectStore': The database already has an object store named 'ExistingObjectStore'.
+Caught exception renaming object store to the name of another existing object store: ConstraintError (DOM IDBDatabase Exception): Failed set property 'name' on 'IDBObjectStore': The database already has an object store named 'ExistingObjectStore'.
 Renamed objectStore name: RenamedObjectStore
 Current objectStore name in a new transaction: RenamedObjectStore
 Caught exception renaming object store outside of a version change transaction: InvalidStateError (DOM Exception 11): Failed set property 'name' on 'IDBObjectStore': The object store's transaction is not a version change transaction.
index 1cedb42..d720631 100644 (file)
@@ -9,7 +9,7 @@ indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
 Initial upgrade needed: Old version - 0 New version - 1
 Initial objectStore name: TestObjectStore
-Caught exception renaming object store to the name of another existing object store: ConstraintError (DOM Exception 29): Failed set property 'name' on 'IDBObjectStore': The database already has an object store named 'ExistingObjectStore'.
+Caught exception renaming object store to the name of another existing object store: ConstraintError (DOM IDBDatabase Exception): Failed set property 'name' on 'IDBObjectStore': The database already has an object store named 'ExistingObjectStore'.
 Renamed objectStore name: RenamedObjectStore
 Current objectStore name in a new transaction: RenamedObjectStore
 Caught exception renaming object store outside of a version change transaction: InvalidStateError (DOM Exception 11): Failed set property 'name' on 'IDBObjectStore': The object store's transaction is not a version change transaction.
index 6be93e1..c95f22c 100644 (file)
@@ -1,3 +1,18 @@
+2016-11-04  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0: Use IDB-specific exceptions in places where the generic exceptions are currently used.
+        https://bugs.webkit.org/show_bug.cgi?id=164406
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Covered by existing tests).
+
+        * Modules/indexeddb/IDBIndex.cpp:
+        (WebCore::IDBIndex::setName):
+
+        * Modules/indexeddb/IDBObjectStore.cpp:
+        (WebCore::IDBObjectStore::setName):
+
 2016-11-04  Joanmarie Diggs  <jdiggs@igalia.com>
 
         AX: [ATK] Attempting to clear selection on ARIA listboxes results in crash
index 1136257..599fda9 100644 (file)
@@ -93,13 +93,13 @@ ExceptionOr<void> IDBIndex::setName(const String& name)
         return Exception { INVALID_STATE_ERR, ASCIILiteral("Failed set property 'name' on 'IDBIndex': The index's transaction is not a version change transaction.") };
 
     if (!m_objectStore.transaction().isActive())
-        return Exception { TransactionInactiveError, ASCIILiteral("Failed set property 'name' on 'IDBIndex': The index's transaction is not active.") };
+        return Exception { IDBDatabaseException::TransactionInactiveError, ASCIILiteral("Failed set property 'name' on 'IDBIndex': The index's transaction is not active.") };
 
     if (m_info.name() == name)
         return { };
 
     if (m_objectStore.info().hasIndex(name))
-        return Exception { ConstraintError, makeString("Failed set property 'name' on 'IDBIndex': The owning object store already has an index named '", name, "'.") };
+        return Exception { IDBDatabaseException::ConstraintError, makeString("Failed set property 'name' on 'IDBIndex': The owning object store already has an index named '", name, "'.") };
 
     m_objectStore.transaction().database().renameIndex(*this, name);
     m_info.rename(name);
index 7b6d398..b967d19 100644 (file)
@@ -106,13 +106,13 @@ ExceptionOr<void> IDBObjectStore::setName(const String& name)
         return Exception { INVALID_STATE_ERR, ASCIILiteral("Failed set property 'name' on 'IDBObjectStore': The object store's transaction is not a version change transaction.") };
 
     if (!m_transaction->isActive())
-        return Exception { TransactionInactiveError, ASCIILiteral("Failed set property 'name' on 'IDBObjectStore': The object store's transaction is not active.") };
+        return Exception { IDBDatabaseException::TransactionInactiveError, ASCIILiteral("Failed set property 'name' on 'IDBObjectStore': The object store's transaction is not active.") };
 
     if (m_info.name() == name)
         return { };
 
     if (m_transaction->database().info().hasObjectStore(name))
-        return Exception { ConstraintError, makeString("Failed set property 'name' on 'IDBObjectStore': The database already has an object store named '", name, "'.") };
+        return Exception { IDBDatabaseException::ConstraintError, makeString("Failed set property 'name' on 'IDBObjectStore': The database already has an object store named '", name, "'.") };
 
     m_transaction->database().renameObjectStore(*this, name);
     m_info.rename(name);