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.html
>> https://wpt.fyi/results/mediasession/setmicrophoneactive.html
>> https://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.

Reply via email to