indexeddb: Implement autoincremented keys and report autoincrementedness properly through DOM interface (#38723)

Autoincrementedness was previously being reported as always false. This
PR makes the state become queried from the backend, as the spec
specifies. Additionally this PR ensures the backend correctly handles an
object store which autoincrements.

Testing: WPT
Fixes: None

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
This commit is contained in:
Ashwin Naren 2025-08-30 20:54:18 -07:00 committed by GitHub
parent ce35161a6e
commit 91b2ab5458
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 80 additions and 74 deletions

View file

@ -1,7 +1,4 @@
[clone-before-keypath-eval.any.worker.html]
[Key generator and key path validity check operates on a clone]
expected: FAIL
[Failing key path validity check operates on a clone]
expected: FAIL
@ -19,9 +16,6 @@
expected: ERROR
[clone-before-keypath-eval.any.html]
[Key generator and key path validity check operates on a clone]
expected: FAIL
[Failing key path validity check operates on a clone]
expected: FAIL

View file

@ -1,11 +1,11 @@
[create-index.any.html]
expected: TIMEOUT
expected: CRASH
[Assure no crash when populating index]
expected: TIMEOUT
[create-index.any.worker.html]
expected: CRASH
expected: TIMEOUT
[Assure no crash when populating index]
expected: TIMEOUT

View file

@ -2,12 +2,6 @@
expected: ERROR
[idbobjectstore-request-source.any.worker.html]
[The source of the request from store => store.put(0) is the object store itself]
expected: FAIL
[The source of the request from store => store.add(0) is the object store itself]
expected: FAIL
[The source of the request from store => store.getAll() is the object store itself]
expected: FAIL
@ -28,12 +22,6 @@
expected: ERROR
[idbobjectstore-request-source.any.html]
[The source of the request from store => store.put(0) is the object store itself]
expected: FAIL
[The source of the request from store => store.add(0) is the object store itself]
expected: FAIL
[The source of the request from store => store.getAll() is the object store itself]
expected: FAIL

View file

@ -1,33 +1,34 @@
[idbobjectstore_getKey.any.worker.html]
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - key - no match]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - key path - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - key - no match]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - key generator - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator - key - no match]
expected: FAIL
@ -36,10 +37,10 @@
expected: FAIL
[IDBObjectStore.getKey() - key generator and key path - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator and key path - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator and key path - key - no match]
expected: FAIL
@ -47,40 +48,38 @@
[IDBObjectStore.getKey() - key generator and key path - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - invalid parameters]
expected: FAIL
[idbobjectstore_getKey.any.html]
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - key - no match]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - basic - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - key path - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - key - no match]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key path - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - key generator - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator - key - no match]
expected: FAIL
@ -89,16 +88,13 @@
expected: FAIL
[IDBObjectStore.getKey() - key generator and key path - key]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator and key path - range]
expected: FAIL
expected: TIMEOUT
[IDBObjectStore.getKey() - key generator and key path - key - no match]
expected: FAIL
[IDBObjectStore.getKey() - key generator and key path - range - no match]
expected: FAIL
[IDBObjectStore.getKey() - invalid parameters]
expected: FAIL

View file

@ -1,4 +1,5 @@
[idbtransaction_abort.any.worker.html]
expected: TIMEOUT
[Abort event should fire during transaction]
expected: FAIL
@ -6,7 +7,7 @@
expected: FAIL
[Abort on completed transaction should throw InvalidStateError.]
expected: FAIL
expected: TIMEOUT
[idbtransaction_abort.any.sharedworker.html]
@ -16,6 +17,7 @@
expected: ERROR
[idbtransaction_abort.any.html]
expected: TIMEOUT
[Abort event should fire during transaction]
expected: FAIL
@ -23,4 +25,4 @@
expected: FAIL
[Abort on completed transaction should throw InvalidStateError.]
expected: FAIL
expected: TIMEOUT

View file

@ -1,6 +1,7 @@
[interleaved-cursors-large.any.html]
expected: TIMEOUT
[250 cursors]
expected: FAIL
expected: TIMEOUT
[interleaved-cursors-large.any.serviceworker.html]
@ -10,5 +11,6 @@
expected: ERROR
[interleaved-cursors-large.any.worker.html]
expected: TIMEOUT
[250 cursors]
expected: FAIL
expected: TIMEOUT

View file

@ -2,25 +2,27 @@
expected: ERROR
[interleaved-cursors-small.any.worker.html]
expected: TIMEOUT
[1 cursors]
expected: FAIL
expected: TIMEOUT
[10 cursors]
expected: FAIL
expected: NOTRUN
[100 cursors]
expected: FAIL
expected: NOTRUN
[interleaved-cursors-small.any.sharedworker.html]
expected: ERROR
[interleaved-cursors-small.any.html]
expected: TIMEOUT
[1 cursors]
expected: FAIL
expected: TIMEOUT
[10 cursors]
expected: FAIL
expected: NOTRUN
[100 cursors]
expected: FAIL
expected: NOTRUN