LGTM2

On 2/10/26 6:02 p.m., 'Hongchan Choi' via blink-dev wrote:
Thank you for the review and approval, Alex!

Best,
Hongchan



On Tue, Feb 10, 2026 at 1:49 PM Alex Russell <[email protected]> wrote:

    Hey Hongchan,

    This is helpful and explains why it should be different. LGTM1,
    and thanks for your patience.

    Best,

    Alex

    On Monday, February 9, 2026 at 11:50:28 AM UTC-8 Hongchan Choi wrote:

        Hello Alex,

        Perhaps my explanation on different paradigms between <audio>
        (HTMLMediaElement) and Web Audio was not effective:

        1. Pull Model: WebAudio uses a pull model. The system's audio
        callback demands a buffer of data at a precise interval. If
        the application fails to provide it in time, you get an
        underrun (a literal gap in the output stream). This is a
        real-time performance failure.
        2. Push Model: The <audio> element follows a push model
        (streaming). When data is missing, the element enters a
        waiting state, pauses playback, and fires a waiting event
        
<https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/waiting_event>.
        This is considered 'buffering,' which is an expected behavior
        of network-based streaming, not necessarily a failure of the
        audio engine itself.
        3. Existing events: We already have ways to monitor <audio>
        stalls via the waiting, stalled
        
<https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/stalled_event>,
        and playing events to signal the streaming/networking problems.

        The another important distinction is the developer's ability
        to respond to it:

        1. For WebAudio, an underrun is typically a CPU/scheduling
        issue where the audio thread cannot keep up with the graph
        load/complexity. For the <audio> element, 'stalled/watiing'
        status are mostly network-related.
        2. This API is very useful for WebAudio apps because it
        provides the signal needed for load balancing. If a developer
        sees underruns increasing, they can dynamically simplify their
        DSP graph, reduce voices, or bypass expensive effects to
        restore real-time stability.
        3. In contrast, for the <audio> element, the browser
        automatically handles the 'lack of audio frames' by pausing
        and entering a waiting state. There is no 'internal logic' for
        the developer to adjust other than waiting for the network
        data to arrive.

        Hopefully this answer your question!

        Best,
        Hongchan

        On Monday, February 9, 2026 at 11:15:57 AM UTC-8 Alex Russell
        wrote:

            I'm a little confused about why we think playback contexts
            like <audio> don't have similar issues when streaming.
            E.g., I understand that <audio> can point at a source
            which isn't fully loaded, which will lead to underruns and
            skipping during playback. Shouldn't we cover that case
            with a uniform API?

            Best,

            Alex

            On Wednesday, February 4, 2026 at 10:22:39 AM UTC-8
            Hongchan Choi wrote:

                Thanks for your response, Yoav.

                > Can you elaborate a bit more on any risks, if any?

                - fhernqvist@ published this detailed self-review
                
<https://docs.google.com/document/d/1wGv_mr7Lgg2w-6PuKDrcScoa8IvYAOW3PMTFW85O3Gw/edit?tab=t.0>
                in 2024.
                - There was also a discussion about the covert
                channeling
                
<https://github.com/WICG/audio-context-playout-stats?tab=readme-ov-file#cross-site-covert-channeling>,
                but the mitigation was designed/implemented after the
                privacy/security team's approval.

                > Can you file for signals for both Gecko and WebKit?
                
https://www.chromium.org/blink/launching-features/wide-review/#standards-positions

                Done:
                Gekco:
                https://github.com/mozilla/standards-positions/issues/1351
                WebKit:
                https://github.com/WebKit/standards-positions/issues/610

                > Any feedback from the OT?

                The current partner mentioned that "The metrics
                collected from are continuously used for the
                experimentation, we would not be able to verify the
                quality without them."

                Hopefully this answers your question!

                Best,
                Hongchan



                On Tue, Feb 3, 2026 at 8:25 PM Yoav Weiss (@Shopify)
                <[email protected]> wrote:

                    On Monday, February 2, 2026 at 9:38:43 PM UTC+1
                    Hongchan Choi wrote:

                        Thanks for reviewing the intent, Alex.

                        Regarding unified behavior with
                        RTCAudioSourceStats, I don't believe this API
                        serves the same goal. WebAudio’s stats are
                        centered specifically around audio stream
                        quality, so I am unsure about achieving
                        unified behavior across these different APIs.

                        As for getting similar stats from the <audio>
                        element or WebRTC contexts, both
                        HTMLAudioElement and WebRTC's audio systems
                        are "push-based." By design, they should not
                        experience audio sample dropouts or glitches
                        in the same way. The WebAudio (pull-based)
                        playback stats are specifically designed to
                        catch dropouts so developers can estimate the
                        user's audio quality and experience.

                        Hopefully this answers your question!

                        Best,
                        Hongchan



                        On Mon, Feb 2, 2026 at 12:14 PM Alex Russell
                        <[email protected]> wrote:

                            Hey Hongchan,

                            This looks extremely useful!

                            I'm a little surprised to see that the TAG
                            didn't ask about alignment with other APIs
                            in the space, e.g.:

                            
https://developer.mozilla.org/en-US/docs/Web/API/RTCAudioSourceStats
                            
<https://developer.mozilla.org/en-US/docs/Web/API/RTCAudioSourceStats>

                            Will we get unified behaviour here? Will
                            it be possible to get similar stats from
                            an <audio> element or WebRTC contexts, e.g.?

                            Best,

                            Alex

                            On Friday, January 30, 2026 at 7:27:33 AM
                            UTC-8 Chromestatus wrote:

                                *Contact emails*
                                [email protected],
                                [email protected], [email protected]



                                *Explainer*
                                https://github.com/WICG/web_audio_playout
                                <https://github.com/WICG/web_audio_playout>

                                *Specification*
                                
https://webaudio.github.io/web-audio-api/#AudioPlaybackStats
                                
<https://webaudio.github.io/web-audio-api/#AudioPlaybackStats>


                                *Summary*
                                This feature adds an
                                AudioContext.playbackStats attribute
                                which returns an AudioPlaybackStats
                                object. This object provides audio
                                playback statistics such as average
                                latency, minimum/maximum latency,
                                underrun duration, and underrun count.
                                This API allows web applications to
                                monitor audio playout quality and
                                detect glitches. Note: This feature
                                was previously tracked as
                                AudioContext.playoutStats. It has been
                                renamed to AudioContext.playbackStats
                                to align with the final Web Audio API
                                specification. The old name is
                                supported as a deprecated alias for
                                backward compatibility.

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

                                *Web Feature ID*
                                web-audio
                                <https://webstatus.dev/features/web-audio>


                                *Motivation*
                                There is currently no way to detect
                                whether WebAudio playout has glitches
                                (gaps in the played audio, which
                                typically happens due to
                                underperformance in the audio
                                pipeline). There is an existing way to
                                measure the instantaneous playout
                                latency using
                                AudioContext.outputLatency, but no
                                simple way to measure
                                average/minimum/maximum latency over
                                time. With this API, we want to
                                propose a way to be able to measure
                                the delay of that audio and the
                                glitchiness of the audio.

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


                                *TAG review*
                                Early TAG review request:
                                
https://github.com/w3ctag/design-reviews/issues/939
                                
<https://github.com/w3ctag/design-reviews/issues/939>


                                *TAG review status*
                                Issues addressed

                                *Origin Trial Name*
                                Playout Statistics API for WebAudio

                                *Chromium Trial Name*
                                AudioContextPlayoutStats

                                *Origin Trial documentation link*
                                https://github.com/WICG/web_audio_playout
                                <https://github.com/WICG/web_audio_playout>

                                *WebFeature UseCounter name*
                                kAudioContextPlayoutStats

                                *Risks*


                                *Interoperability and Compatibility*
                                /No information provided/

                    Can you elaborate a bit more on any risks, if any?



                                /Gecko/:
                                Positive 
(https://github.com/WebAudio/web-audio-api/pull/2645
                                
<https://github.com/WebAudio/web-audio-api/pull/2645>) The
                                spec PR was reviewed and approved by a
                                Mozilla engineer.

                                /WebKit/: No signal


                    Can you file for signals for both Gecko and
                    WebKit?
                    
https://www.chromium.org/blink/launching-features/wide-review/#standards-positions


                                /Web developers/:
                                Positive 
(https://github.com/WICG/proposals/issues/142#issuecomment-1981012486
                                
<https://github.com/WICG/proposals/issues/142#issuecomment-1981012486>)

                                /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*
                                Can be tested by creating an
                                AudioContext and evaluating
                                context.playoutStats in the console.

                                *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/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playoutstats.html?label=experimental&label=master&aligned
                                
<https://wpt.fyi/results/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playoutstats.html?label=experimental&label=master&aligned>
                                These will be updated if the API shape
                                changes.

                                *Flag name on about://flags*
                                /No information provided/

                                *Finch feature name*
                                AudioContextPlayoutStats

                                *Rollout plan*
                                Will ship enabled for all users

                                *Requires code in //chrome?*
                                False

                                *Tracking bug*
                                https://g-issues.chromium.org/issues/475838360
                                <https://g-issues.chromium.org/issues/475838360>

                                *Launch bug*
                                https://launch.corp.google.com/launch/4308993
                                <https://launch.corp.google.com/launch/4308993>

                                *Availability expectation*
                                Feature is available only in Chromium
                                browsers for the foreseeable future.

                                *Adoption expectation*
                                Feature is used by specific partner(s)
                                to provide functionality within 12
                                months of launch in Chrome.

                                *Adoption plan*
                                Nothing specific planned.

                                *Non-OSS dependencies*

                                Does the feature depend on any code or
                                APIs outside the Chromium open source
                                repository and its open-source
                                dependencies to function?

                                None.

                                *Estimated milestones*
                                Shipping on desktop146 Origin trial
                                desktop first131 Origin trial desktop
                                last136 Origin trial extension 1 end
                                milestone145 Origin trial extension 2
                                end milestone142 Origin trial
                                extension 3 end milestone139 DevTrial
                                on desktop129 Shipping on Android146
                                Shipping on WebView146


                    Any feedback from the OT?


                                *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/5172818344148992?gate=5078819495215104
                                
<https://chromestatus.com/feature/5172818344148992?gate=5078819495215104>

                                *Links to previous Intent discussions*
                                Intent to Prototype:
                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWW4MYVa_iGjN%3DK4O9B1DE3rt4_2Vkqnq6sKswHFjn6BzQ%40mail.gmail.com
                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWW4MYVa_iGjN%3DK4O9B1DE3rt4_2Vkqnq6sKswHFjn6BzQ%40mail.gmail.com>
                                Intent to Experiment:
                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWWV6S6Ba%3Dd%3DgvjhERm1OnPyBMRJx5fbkP%3Df9zb3k%3DrNDA%40mail.gmail.com
                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWWV6S6Ba%3Dd%3DgvjhERm1OnPyBMRJx5fbkP%3Df9zb3k%3DrNDA%40mail.gmail.com>
                                Intent to Extend Experiment 1:
                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/691455eb.2b0a0220.e30ce.7e1f.GAE%40google.com
                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/691455eb.2b0a0220.e30ce.7e1f.GAE%40google.com>
                                Intent to Extend Experiment 2:
                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686d135c.2b0a0220.3a1521.0081.GAE%40google.com
                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686d135c.2b0a0220.3a1521.0081.GAE%40google.com>
                                Intent to Extend Experiment 3:
                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWVkWb8DJM_aCRGOFpskBs-7h%3DO_yggKc3YBUkiieEO-UA%40mail.gmail.com
                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACazmWVkWb8DJM_aCRGOFpskBs-7h%3DO_yggKc3YBUkiieEO-UA%40mail.gmail.com>


                                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]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGJqXNs6LMOXKSrQAq6qX3hmrC6ojvkQDHH8QJ336ZUm31gBDw%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGJqXNs6LMOXKSrQAq6qX3hmrC6ojvkQDHH8QJ336ZUm31gBDw%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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/91138966-1ffa-4a2c-b0bd-77d9400a8533%40chromium.org.

Reply via email to