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.