LGTM3

/Daniel

On 2025-08-01 11:23, Mike Taylor wrote:

LGTM2

On 7/31/25 8:43 p.m., Chris Harrelson wrote:
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
                
<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 <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8ppcado8_EdOYQF70fxy9mMZ%2B2VYLmgkCHrGnxTZefmg%40mail.gmail.com?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/96411e69-73f6-42bf-93ba-f8de39a9f27c%40chromium.org <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/96411e69-73f6-42bf-93ba-f8de39a9f27c%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/0d6dbddf-f710-48e9-93d7-59de40e4cd1c%40gmail.com.

Reply via email to