LGTM2

On 5/18/26 2:44 p.m., Alex Russell wrote:
LGTM1

On Monday, May 18, 2026 at 5:39:00 AM UTC-7 Shweta Bindal wrote:

    Hi @Vincent <mailto:[email protected]>

    This feature was shipped in 2019 by Safari.
    203168 – [Clipboard API] Implement ClipboardItem.getType() for
    platform clipboard items
    <https://bugs.webkit.org/show_bug.cgi?id=203168> - this is the bug
    under which it was shipped.

    Regards,
    Shweta Bindal
    ------------------------------------------------------------------------
    *From:* Vincent Scheib <[email protected]>
    *Sent:* Saturday, May 16, 2026 4:16 AM
    *To:* Shweta Bindal <[email protected]>
    *Cc:* blink-dev <[email protected]>; Rakesh Goulikar
    <[email protected]>; Rohan Raja
    <[email protected]>; ASHISH KUMAR <[email protected]>
    *Subject:* [EXTERNAL] Re: [blink-dev] Intent to Ship: Selective
    Clipboard Format Read

        
    You don't often get email from [email protected]. Learn why this
    is important <https://aka.ms/LearnAboutSenderIdentification>
        

    Looking forward to this, it seems a good optimization no web
    developer API change. How long has this been shipped in Safari?

    On Thu, May 14, 2026 at 1:03 AM 'Shweta Bindal' via blink-dev
    <[email protected]> wrote:

        *Contact emails*
        [email protected], [email protected]
        <mailto:[email protected]>, [email protected]
        <mailto:[email protected]>

        *Explainer*
        
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/SelectiveClipboardFormatRead/explainer.md
        
<https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/SelectiveClipboardFormatRead/explainer.md>

        *Specification*
        https://github.com/w3c/clipboard-apis/pull/248
        <https://github.com/w3c/clipboard-apis/pull/248>

        *Summary*
        Enhances the Asynchronous Clipboard API by deferring actual
        clipboard data retrieval from the OS until the web application
        calls getType(). Instead of eagerly fetching all available
        formats at read() time, the browser now returns ClipboardItem
        objects with available MIME types but without the underlying
        data, and reads from the OS clipboard only when getType() is
        invoked. const items = await navigator.clipboard.read(); // No
        data read yet const text = await items.getType('text/plain');
        // Only 'text/plain' data read here This reduces CPU usage,
        improves the perceived responsiveness of the API call, and
        optimizes the browser's power consumption.

        *Blink component*
        Blink>DataTransfer
        
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EDataTransfer%22>

        *Web Feature ID*
        async-clipboard <https://webstatus.dev/features/async-clipboard>

        *Motivation*
        Currently, web applications can read clipboard content through
        the Async Clipboard API. However, the current implementation
        eagerly fetches all MIME types from the OS clipboard at read()
        time, regardless of which formats the application actually
        needs. This feature defers the actual data retrieval to
        getType() time, so the browser reads only the requested MIME
        types from the OS clipboard when they are needed, improving
        performance and reducing unnecessary data transfer.

        *Initial public proposal*
        https://github.com/WICG/proposals/issues/224
        <https://github.com/WICG/proposals/issues/224>

        *TAG review*
        None requested because this behavior has achieved consensus in
        the Editing working group and matches what Safari already does

        *TAG review status*
        Not applicable

        *Goals for experimentation*
        NA

        *Risks*


        *Interoperability and Compatibility*
        /No information provided/

        /Gecko/:
        Positive (https://github.com/mozilla/standards-positions/issues/1279
        <https://github.com/mozilla/standards-positions/issues/1279>)

        /WebKit/:
        Shipped/Shipping 
(https://github.com/WebKit/standards-positions/issues/537
        <https://github.com/WebKit/standards-positions/issues/537>)

        /Web developers/:
        Positive (https://github.com/WICG/proposals/issues/224
        <https://github.com/WICG/proposals/issues/224>) Webkit has
        already implemented this behavior

        /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?/
        No risks for WebView


        *Debuggability*
        No DevTools debugging support needed for this.

        *Will this feature be supported on all six Blink platforms
        (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?*
        Yes
        It is supported on all platforms because it is purely a
        browser-internal optimization that changes when existing OS
        clipboard APIs are called (deferring from read() time to
        getType() time), without requiring any new platform-specific
        clipboard capabilities or OS-level API changes.

        *Is this feature fully tested by **web-platform-tests*
        
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>*?*
        No
        Added initial tests to WPT, but further coverage is currently
        blocked by missing test infrastructure. Created an issue for
        that (https://issues.chromium.org/issues/508091414
        <https://issues.chromium.org/issues/508091414>)

        *Flag name on about://flags*
        DeferOsClipboardReadCallToGetType

        *Finch feature name*
        /No information provided/

        *Non-finch justification*
        As previously collected in UseCounters 5684 and 5685,
        telemetry tracking how often the clipboard changes between
        read and getType (or consecutive getType calls) shows an
        extremely low usage percentage (~0.0004). This data
        demonstrates that the risk of breaking existing workflows is
        negligible. Consequently, a Finch rollout is unnecessary.

        *Rollout plan*
        Will ship enabled for all users

        *Requires code in //chrome?*
        False

        *Tracking bug*
        https://issues.chromium.org/issues/435051711
        <https://issues.chromium.org/issues/435051711>

        *Estimated milestones*
        Shipping on desktop
                
        149
        Shipping on Android
                
        149
        Shipping on WebView
                
        149
        Shipping on iOS
                
        149



        *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)./
        N/A

        *Link to entry on the Chrome Platform Status*
        https://chromestatus.com/feature/5203433409871872?gate=6255790323269632
        
<https://chromestatus.com/feature/5203433409871872?gate=6255790323269632>

        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 [email protected]
        <mailto:[email protected]>.
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/JH0P153MB1062E1AE43E6CECD8926ED17D1072%40JH0P153MB1062.APCP153.PROD.OUTLOOK.COM
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/JH0P153MB1062E1AE43E6CECD8926ED17D1072%40JH0P153MB1062.APCP153.PROD.OUTLOOK.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 [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4162c19e-98f8-4a20-9cc5-3f7db56bffa9n%40chromium.org <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4162c19e-98f8-4a20-9cc5-3f7db56bffa9n%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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5aacd680-b10a-4967-bcb1-df0cfbf65309%40chromium.org.

Reply via email to