As of Firefox 130 I intend to turn Web Codecs API on by
default on all desktop platforms. It has been developed behind the dom.media.webcodecs.enabled preference, and the part of the API related to images is not shipping at this time, but has been implemented, it is likely to ship later this year. Audio and Video, and encoding and decoding is supported. The API has been shipping in Chromium for some time, and implementation in WebKit is underway (https://wpt.fyi/results/webcodecs shows the state of things).
Bug to turn on by default: http://bugzilla.mozilla.org/show_bug.cgi?id=1908572 is the bug to enable, and https://bugzilla.mozilla.org/show_bug.cgi?id=webcodecs is the meta bug for this.
Standard: https://w3c.github.io/webcodecs/, in the W3C Media Working Group
This feature was previously discussed in this "Intent to prototype" thread: https://groups.google.com/a/mozilla.org/g/dev-platform/c/3g0fnn6682A
Let me know if you have any questions,
Paul.
Sorry for not replying to the intent to prototype email, I've been out
for a bit. I was trying to figure out how much, if anything, this
exposed from a fingerprinting point of view - it seems to be almost
nothing, less actually than MediaCapabilities, but I did find the
following I wanted to check on:
- https://searchfox.org/mozilla-central/rev/ea91f336d0004ca28c909da948cb363f3e560877/dom/media/platforms/PEMFactory.cpp#80
- This will expose if the user has EME enabled, which is not very
concerning, you can check that lots of ways
- https://searchfox.org/mozilla-central/rev/ea91f336d0004ca28c909da948cb363f3e560877/dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp#310-313
- It looks like this defers codec checking to libav, which is
subclassed based on the version of the library the user has? I doubt
this is different in practice, right?
- https://searchfox.org/mozilla-central/rev/ea91f336d0004ca28c909da948cb363f3e560877/dom/media/platforms/android/AndroidEncoderModule.cpp#19-26
- This is probably the most worrisome to me, it seems like you'd be
able to determine if a user has hardware support for these codecs.