LGTM3

/Daniel

On 2026-11-04 17:23, Chris Harrelson wrote:
LGTM2

On Mon, Nov 2, 2026 at 3:11 AM Philip Jägenstedt <[email protected]> wrote:

    LGTM1

    Generally it's risky to change exception-throwing to
    promise-rejection since existing try-catch blocks would stop
    working, but if the only error condition is that the document
    isn't fully active, I agree the risk is very small.

    On Fri, Oct 30, 2026 at 8:52 PM 'Tommy Steimel' via blink-dev
    <[email protected]> wrote:

        *Contact emails*
        [email protected]

        *Explainer*
        https://github.com/w3c/mediasession/pull/312

        *Specification*
        https://w3c.github.io/mediasession/#dom-mediasession-setmicrophoneactive

        *Summary*
        Updates navigator.mediaSession.setMicrophoneActive() and
        navigator.mediaSession.setCameraActive() to return a
        Promise<undefined> instead of undefined, matching the W3C
        Media Session specification. In a fully active document, the
        returned promise resolves with undefined; if the associated
        document is not fully active, it returns a promise rejected
        with an InvalidStateError DOMException.

        *Blink component*
        Blink>Media>Session
        
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EMedia%3ESession%22>

        *Web Feature ID*
        media-session <https://webstatus.dev/features/media-session>

        *Motivation*
        When MediaSession.setMicrophoneActive() and
        MediaSession.setCameraActive() were originally specified and
        shipped in Chrome 93, their WebIDL return type was void
        (undefined). The W3C Media Session specification was
        subsequently updated
        (https://github.com/w3c/mediasession/pull/312) so that both
        methods return Promise<undefined> to support user agents that
        apply a capture pause policy or prompt the user
        asynchronously. Updating Chromium's implementation to return
        Promise<undefined> aligns Chrome with the W3C Media Session
        specification and fixes 4 failing subtests in WPT's
        mediasession/idlharness.window.html.

        *Initial public proposal*
        /No information provided/

        *TAG review*
        N/A — This is a minor spec-compliance update to the return
        type (undefined -> Promise<undefined>) of two already-shipped
        MediaSession methods, already specified in the W3C Media
        Session Working Draft
        (https://github.com/w3c/mediasession/pull/312) and shipped in
        Safari.

        *TAG review status*
        Not applicable

        *Goals for experimentation*
        None

        *Risks*


        *Interoperability and Compatibility*
        Compatibility risk is very low. Existing callers that ignore
        the return value of setMicrophoneActive() and
        setCameraActive() are unaffected because the returned promise
        always resolves with undefined in an active document (so
        fire-and-forget callers will not encounter unhandled promise
        rejections). The promise only rejects with InvalidStateError
        when called on a MediaSession whose associated Document is no
        longer fully active (such as a detached iframe), or with
        TypeError when called with too few arguments or an invalid
        receiver per WebIDL rules for promise-returning operations.
        Interoperability is improved, as Safari already ships
        Promise<undefined> for both methods and Firefox is
        implementing the same WebIDL signature.

        /Gecko/:
        Positive (https://github.com/mozilla/standards-positions/issues/504)

        /WebKit/:
        Shipped/Shipping (https://bugs.webkit.org/show_bug.cgi?id=277421) 
Shipped
        in Safari 18.4

        /Web developers/: No signals N/A — Minor spec-compliance fix
        to return Promise<undefined> instead of undefined.

        /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 information provided/


        *Debuggability*
        /No information provided/

        *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/mediasession/idlharness.window.htmlhttps://wpt.fyi/results/mediasession/setmicrophoneactive.htmlhttps://wpt.fyi/results/mediasession/setcameraactive.html

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

        *Finch feature name*
        /No information provided/

        *Non-finch justification*
        Changing a WebIDL method's return type from void to
        Promise<undefined> cannot be guarded behind a runtime feature
        flag in Blink's generated bindings without changing the IDL
        return type to 'any' and losing WebIDL's automatic
        promise-rejection wrapping for invalid arguments/receivers.
        Compatibility risk is negligible because the returned promise
        always resolves in an active document.

        *Rollout plan*
        Will ship enabled for all users

        *Requires code in //chrome?*
        False

        *Tracking bug*
        https://crbug.com/576328036

        *Estimated milestones*
        Shipping on desktop     159
        Shipping on Android     159



        *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).

        /No information provided/

        *Link to entry on the Chrome Platform Status*
        https://chromestatus.com/feature/5188639100370944?gate=5532358353747968

        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/CAE-AwArmrmUK0D45B8cPYA20cCM%3DB1-sW4vM4Vz67bLzzrsxDQ%40mail.gmail.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAE-AwArmrmUK0D45B8cPYA20cCM%3DB1-sW4vM4Vz67bLzzrsxDQ%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/CAARdPYcsQYO%2BSkmKSQDjykQLrw9nnhGUTBYmdfwHtVC_Pe%3DsQg%40mail.gmail.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcsQYO%2BSkmKSQDjykQLrw9nnhGUTBYmdfwHtVC_Pe%3DsQg%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/CAOMQ%2Bw-3N2a%3D%2BufH2UPhXTp5k_4pNSAQ2e70QmvikR7ExcEJAg%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-3N2a%3D%2BufH2UPhXTp5k_4pNSAQ2e70QmvikR7ExcEJAg%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/daf106ab-b3f8-4498-b4eb-e506e5db1973%40gmail.com.

Reply via email to