Great! LGTM1
On Thu, Jul 31, 2025 at 11:34 AM 'Steve Becker' via blink-dev < blink-dev@chromium.org> wrote: > 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 > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8e5d76bd-4818-420c-a1eb-1bcd465bd1edn%40chromium.org?utm_medium=email&utm_source=footer> > . > -- 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/CAOMQ%2Bw8ppcado8_EdOYQF70fxy9mMZ%2B2VYLmgkCHrGnxTZefmg%40mail.gmail.com.