Switch indexeddb backend to sqlite and improve IPC messaging (#38187)

- Use sqlite instead of heed. (one indexed database = one sqlite
database)
- Implement the backend for indexes
- Use keyranges where needed (as specified by the spec)
- Implement `getKey`
- Fix channel error messaging (led to a bunch of changes to how async
requests are handled)

Note: `components/net/indexeddb/engines/sqlite/serialize.rs` is unused;
I can delete it if needed.

Testing: Switching to sqlite eliminated many panics (exposing some new
failures).
Fixes: #38040

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
This commit is contained in:
Ashwin Naren 2025-08-16 00:27:17 -07:00 committed by GitHub
parent f4bbdf8010
commit fc3feceee5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
59 changed files with 2002 additions and 818 deletions

View file

@ -1,19 +1,10 @@
[idbfactory_open.any.worker.html]
[IDBFactory.open() - no version opens current database]
expected: FAIL
[IDBFactory.open() - open database with a higher version than current]
expected: FAIL
[IDBFactory.open() - error in version change transaction aborts open]
expected: FAIL
[Calling open() with version argument 1.5 should not throw.]
expected: FAIL
[Calling open() with version argument 9007199254740991 should not throw.]
expected: FAIL
[Calling open() with version argument undefined should not throw.]
expected: FAIL
@ -23,6 +14,9 @@
[IDBFactory.open() - second open's transaction is available to get objectStores]
expected: FAIL
[Calling open() with version argument 9007199254740991 should not throw.]
expected: FAIL
[idbfactory_open.any.sharedworker.html]
expected: ERROR
@ -31,21 +25,12 @@
expected: ERROR
[idbfactory_open.any.html]
[IDBFactory.open() - no version opens current database]
expected: FAIL
[IDBFactory.open() - open database with a higher version than current]
expected: FAIL
[IDBFactory.open() - error in version change transaction aborts open]
expected: FAIL
[Calling open() with version argument 1.5 should not throw.]
expected: FAIL
[Calling open() with version argument 9007199254740991 should not throw.]
expected: FAIL
[Calling open() with version argument undefined should not throw.]
expected: FAIL
@ -54,3 +39,6 @@
[IDBFactory.open() - second open's transaction is available to get objectStores]
expected: FAIL
[Calling open() with version argument 9007199254740991 should not throw.]
expected: FAIL