Intent to Deprecate and Remove: Nonstandard getUserMedia audio constraints

332 views
Skip to first unread message

Guido Urdaneta

unread,
Nov 7, 2024, 12:15:50 PMNov 7
to blink-dev

Contact emails

gui...@chromium.org


Explainer

None


Specification

https://w3c.github.io/mediacapture-main/#constrainable-properties 


Summary

Blink supports a number of nonstandard goog-prefixed constraints for getUserMedia from some time before constraints were properly standardized.


Usage has gone down significantly ~0.000001% to 0.0009% (depending on the constraint) and some of them do not even have an effect due to changes in the Chromium audio-capture stack. Soon none of them will have any effect due to other upcoming changes in Chromium's audio stack.



Blink component

Blink > MediaStream


Motivation

These goog-prefixed constraints are a relic from the pre-standard getUserMedia times and should not be used by anyone.

Usage is now low enough that they can be removed without causing significant regressions.



Initial public proposal

None


TAG review

None


TAG review status

Not applicable


Risks



Interoperability and Compatibility

The interoperability risk is zero since these goog-prefixed constraints are not implemented by any other browser. This change encourages developers to use standard getUserMedia constraints, which are supported by all major browsers.


There is limited compatibility risk in that these constraints will now be ignored by Chromium if applications try to use them. This is already partially happening in practice because, while the constraints are still exposed on the Web, several of them have no effect on how audio is captured. They are implemented as custom dictionary members which will be ignored if not present and only as part of a nonstandard constraint syntax.


Gecko: No signal


WebKit: No signal


Web developers: No signals


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?

Same as general compatibility risk.



Debuggability

None

Is this feature fully tested by web-platform-tests?

No

Flag name on chrome://flags

None


Finch feature name

None


Non-finch justification

None


Requires code in //chrome?

False


Estimated milestones

Deprecation in 133 and removal in 134.

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5097536380207104

Philipp Hancke

unread,
Nov 8, 2024, 8:50:23 AMNov 8
to Guido Urdaneta, blink-dev
This is googEchoCancellation2 and friends seen on (and very often copied from) https://webrtchacks.com/hangout-analysis-philipp-hancke/ (we have come a long way since 2014)?
My impression was that developers kept copying those constraints without understanding the implications or even knowing how to validate a constraint has an effect (and as you say, some did not have an effect anymore).

Not going to miss those, 🔥

--
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BBuZxbvN7WLdnJhLW3ZXKjAdrvAOA7%3DtosmKvKO0yB1-9k3Vg%40mail.gmail.com.

Mike Taylor

unread,
Nov 8, 2024, 9:45:55 AMNov 8
to Guido Urdaneta, blink-dev

On 11/7/24 8:13 AM, 'Guido Urdaneta' via blink-dev wrote:

Contact emails

gui...@chromium.org


Explainer

None


Specification

https://w3c.github.io/mediacapture-main/#constrainable-properties 


Summary

Blink supports a number of nonstandard goog-prefixed constraints for getUserMedia from some time before constraints were properly standardized.


Usage has gone down significantly ~0.000001% to 0.0009% (depending on the constraint) and some of them do not even have an effect due to changes in the Chromium audio-capture stack. Soon none of them will have any effect due to other upcoming changes in Chromium's audio stack.

Can you provide a list of each of the prefixed constraints w/ a link to UseCounters? It would be helpful to know exactly what we're approving to be removed. :)

Guido Urdaneta

unread,
Nov 8, 2024, 11:29:53 AMNov 8
to Mike Taylor, blink-dev
Here's a list of the goog-prefixed constraints and their counters:


Note that we also want to deprecate and remove googAutoGainControl and googNoiseSuppression
The counters for these two have higher values because they also include the counts for the corresponding standard constraints autoGainControl and noiseSupression as they are considered the same at the point where they are being counted.

googAutoGainControlhttps://www.chromestatus.com/metrics/feature/timeline/popularity/1949
googNoiseSuppressionhttps://www.chromestatus.com/metrics/feature/timeline/popularity/1951

They have similar values to (the also standard) echoCancellation (https://chromestatus.com/metrics/feature/timeline/popularity/1930), so we are confident that those counters are expressing standard usage, so the goog-prefixed variant can be removed.


Chris Harrelson

unread,
Nov 8, 2024, 11:37:32 AMNov 8
to Guido Urdaneta, Mike Taylor, blink-dev

Mike Taylor

unread,
Nov 8, 2024, 11:55:59 AMNov 8
to Chris Harrelson, Guido Urdaneta, blink-dev

Thanks for the list - and LGTM2.

Mike Taylor

unread,
Nov 8, 2024, 11:57:26 AMNov 8
to Chris Harrelson, Guido Urdaneta, blink-dev

Let me amend that to LGTM2 % filling out and request the Enterprise, Debuggability, and Testing chips in chromestatus

Chris Harrelson

unread,
Nov 8, 2024, 11:57:28 AMNov 8
to Mike Taylor, Guido Urdaneta, blink-dev
Hi, please also fill out the Enterprise, Debuggability and Testing review bits, then we can approve in the tool as well.

Guido Urdaneta

unread,
Nov 8, 2024, 12:41:55 PMNov 8
to Chris Harrelson, Mike Taylor, blink-dev
Thanks. I've requested the corresponding approvals. 
Sorry I missed that part before sending the intent. I got a bit confused by the tool's "prepare to ship" option when I was looking for a "prepare to deprecate and remove", so I drafted the email manually.
We'll wait for all the approvals in the tool before making any changes.

Daniel Bratell

unread,
Nov 13, 2024, 11:26:14 AMNov 13
to Mike Taylor, Chris Harrelson, Guido Urdaneta, blink-dev
Reply all
Reply to author
Forward
0 new messages