I merged the W3C IndexedDB getAllRecords() spec PR <https://github.com/w3c/IndexedDB/pull/461> after reviews from Evan Stade (Microsoft Edge) and Steffen Larssen (Ladybird). Please file an issue in the GitHub <https://github.com/w3c/IndexedDB/issues/new>if you have any additional feedback and I'll investigate. A few months ago, I volunteered to be an editor of the W3C IndexedDB spec.
The W3C Tag Review also completed <https://github.com/w3ctag/design-reviews/issues/1117> after I sent this intent to ship. Thank you for reviewing! - Steve On Wednesday, July 30, 2025 at 12:32:44 PM UTC-7 Evan Stade wrote: > Thanks for the ping. I'm happy with the status of the PR and I think it's > ready to merge. > > On Wednesday, July 30, 2025 at 8:12:58 AM UTC-7 Alex Russell wrote: > >> Per today's API OWNERS, there's some question about if and when the spec >> change might land. >> >> Evan, do you have insight into that process? >> >> Best, >> >> Alex >> >> On Thursday, July 24, 2025 at 8:40:07 PM UTC+1 Chromestatus wrote: >> >>> Contact emails ste...@microsoft.com, rah...@microsoft.com, >>> evan...@microsoft.com >>> >>> Explainer >>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/IndexedDbGetAllEntries/explainer.md >>> >>> >>> Specification https://github.com/w3c/IndexedDB/pull/461 >>> >>> Summary >>> >>> This feature adds the getAllRecords() API to IndexedDB's IDBObjectStore >>> and IDBIndex. It also adds a direction parameter to getAll() and >>> getAllKeys(). This functionality enables certain read patterns to be >>> significantly faster when compared to the existing alternative of iteration >>> with cursors. One key workload from a Microsoft property showed a 350ms >>> improvement. getAllRecords() effectively combines getAllKeys() and getAll() >>> by enumerating both primary keys and values at the same time. For an >>> IDBIndex, getAllRecords() also provides the record's index key in addition >>> to the primary key and value. getAllRecords() can optionally return records >>> in either ascending or descending order. This option is also back-ported to >>> the existing operations getAll() and getAllKeys(). >>> >>> >>> Blink component Blink>Storage>IndexedDB >>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EStorage%3EIndexedDB%22> >>> >>> >>> Search tags IndexedDB <http:///features#tags:IndexedDB>, getAllRecords >>> <http:///features#tags:getAllRecords>, IDBObjectStore >>> <http:///features#tags:IDBObjectStore>, IDBIndex >>> <http:///features#tags:IDBIndex> >>> >>> TAG review https://github.com/w3ctag/design-reviews/issues/1117 >>> >>> TAG review status Pending >>> >>> Risks >>> >>> >>> Interoperability and Compatibility >>> >>> Overloading getAll() and getAllKeys() to accept the IDBGetAllOptions >>> dictionary introduces compatibility risk. Prior to this proposal, when >>> passed a dictionary argument, both getAll() and getAllKeys() throw an >>> exception after failing to convert the dictionary to a key range. After the >>> overload, getAllKeys() and getAll() will no longer throw for dictionary >>> input. When the IDBGetAllOptions dictionary initializes with its default >>> values, it creates a query that retrieves all of the keys or values from >>> the entire database. >>> >>> >>> *Gecko*: Positive ( >>> https://github.com/mozilla/standards-positions/issues/1261) >>> >>> *WebKit*: No signal ( >>> https://github.com/WebKit/standards-positions/issues/521) >>> >>> *Web developers*: Positive ( >>> https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes) >>> Developers have reported the limitations addressed by getAllRecords(), >>> including: "You cannot build a paginated cursor in descending order." The >>> following includes another example where getAll() could help but needs to >>> retrieve the index key and primary key: >>> https://stackoverflow.com/questions/44349168/speeding-up-indexeddb-search-with-multiple-workers >>> >>> >>> *Other signals*: >>> >>> WebView application risks >>> >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications? >>> >>> None >>> >>> >>> Debuggability >>> >>> None >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, ChromeOS, Android, and Android WebView)? Yes >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? Yes >>> >>> >>> https://wpt.fyi/results/IndexedDB?label=master&label=experimental&aligned&q=getallrecords >>> >>> >>> Flag name on about://flags >>> >>> Finch feature name IndexedDbGetAllRecords >>> >>> Rollout plan Will ship enabled for all users >>> >>> Requires code in //chrome? False >>> >>> Tracking bug https://issues.chromium.org/issues/40746016 >>> >>> Sample links >>> >>> https://patrickbrosset.com/articles/2024-11-19-even-faster-indexeddb-reads-with-getallrecords >>> >>> https://microsoftedge.github.io/Demos/idb-getallrecords >>> >>> Estimated milestones >>> Shipping on desktop 141 >>> DevTrial on desktop 133 >>> Shipping on Android 141 >>> Shipping on WebView 141 >>> >>> Anticipated spec changes >>> >>> Open questions about a feature may be a source of future web compat or >>> interop issues. Please list open issues (e.g. links to known github issues >>> in the project for the feature specification) whose resolution may >>> introduce web compat/interop risk (e.g., changing to naming or structure of >>> the API in a non-backward-compatible way). >>> None >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5124331450138624?gate=5186127942909952 >>> >>> Links to previous Intent discussions Intent to Prototype: >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/zLHOayUfTcw/m/Z13e2qGhBQAJ >>> >>> >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com>. >>> >> -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8e5d76bd-4818-420c-a1eb-1bcd465bd1edn%40chromium.org.