Firefox does not support ClearKey cdm on Android
Categories
(Core :: Audio/Video: Playback, defect, P3)
Tracking
()
People
(Reporter: craftspider23, Assigned: aosmond)
References
(Blocks 1 open bug)
Details
(Keywords: webcompat:platform-bug)
User Story
platform-scheduled:2025-12-31 user-impact-score:1930
Attachments
(1 file)
Steps to reproduce:
go on this site:
https://www.gumlet.com/tools/browser-capabilities-checker
go to the "Encrypted Media Extensions support" category and search for "ClearKey".
In the "SUPPORTED" category it will be marked as "no".
This is a defect as it is supported on the windows version and the ios version.
Actual results:
Marked as no ( not supported )
Expected results:
Marked as yes ( be supported )
Updated•1 year ago
|
Comment 1•1 year ago
|
||
The severity field is not set for this bug.
:tthibaud, could you have a look please?
For more information, please visit BugBot documentation.
Comment 2•1 year ago
|
||
Alastor, do we have any plans for this?
Comment 3•1 year ago
|
||
On Android we use MediaDRM, and it seems clearkey is supported. I will let John answer this question.
Comment 4•1 year ago
|
||
In current implementation, only Widevine is supported. Kilik listed some reasons why clearkey wasn't supported using MediaDrm, but I think are mostly invalid now, except for
- InitDataType "keyids" is not supported by AOSP libdrmclearkeyplugin.so.
which needs further investigation.
Updated•1 year ago
|
Comment 6•1 year ago
|
||
As clearkey is listed as a mandatory key system in the spec, we should probably fix this either H2 this year, or H1 next year, change its priority.
Updated•1 year ago
|
Comment 7•1 year ago
|
||
This should not be prioritized as part of webcompat. ClearKey is largely used for testing purposes, it isn't leveraged by streaming web sites.
Updated•1 year ago
|
This appears to be a real issue and is blocking site report (bug 1921715, where the diagnosis indicates that it is using ClearKey)
If this is not the case, we should deprioritize the issue.
Dennis, could you please provide more details? Thank you!
Comment 10•1 year ago
|
||
(In reply to Jan Honza Odvarko [:Honza] (always need-info? me) from comment #8)
Dennis, could you please provide more details? Thank you!
Yeah, it looks like eurosport.de uses this, according to that bug. I can't actually verify this - if Eurosport is using ClearKey and video playback is broken because of us not supporting it, then this is a valid WebCompat platform bug. If Eurosport is broken because of something else, we can remove the tracking here.
Updated•1 year ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Comment 11•10 months ago
•
|
||
There are two ways to support ClearKey on Android:
- use Android system ClearKey plugin like what we did for Widevine L3 support.
- enable Gecko ClearKey CDM like desktop platforms do.
Bug 1267141 comment 13 pointed out some cons of 1. and I think some are already out of date now. However, the latest Android ClearKey plugin still support only cenc scheme but not cbcs, so it still doesn't work as well as Gecko ClearKey CDM. Chrome doesn't use Android implementation either.
Comment 12•10 months ago
|
||
Per offline discussion, bug 1970152 will enable Android system ClearKey plugin and we'll check if there is any compatibility issues.
Updated•8 months ago
|
Updated•6 months ago
|
Comment 13•6 months ago
•
|
||
[:jhlin]
Hi, I look into this issue in the context of webcompat.
While bug 1904580 seems fixed, bug 1985053, bug 1921715 and bug 1963559 are still reproducible. (I didn't try bug 1957360, because I couldn't create an account)
If you have any update, could you please share it?
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Comment 14•5 months ago
|
||
On Slack, :aosmond asked:
Can anyone provide me guidance on the best strategy here? can the lib folder contain subfolders with both shared libraries and manifest files? if not, are we able to use lib files stored in another asset folder and if so how could I go about that? and if not either of those, I guess my only recourse is to store the manifest file in one place, libclearkey.so in the root lib folder, and teach the GMP plugin loading code how to deal with that?
Generally no, the lib folder is not controlled by the integrator; it's controlled by the Android-Gradle Plugin. Trying to monkey with it is sometimes possible and almost always a bad idea.
Generally yes, it is possible to load libraries from the assets/ folder. We used to implement a custom linker that loaded libraries directly from the APK file; we don't do that any more, but I don't see why it shouldn't be possible. However, there's a reason we don't do this: it's almost always the wrong approach and the Android linker does a better job than we can these days.
So: the happy path on Android is definitely to put your library in libs and your manifest in assets. On Slack you suggest hardcoding to avoid the manifest; I don't see why you need a manifest since you can't meaningfully update anything without updating the APK, so I'd suggest pursuing this. But if you do need to read from the assets, we have code in Gecko to do that gracefully (see resource://android and its implementation) that probably teaches you enough to to manage it at a lower level as needed.
| Assignee | ||
Updated•5 months ago
|
| Assignee | ||
Comment 15•5 months ago
|
||
This patch makes it so that we include libclearkey.so with our APK and
so that our existing GMP plumbing can launch using that library on
Android. On other platforms we have a specific plugin file system layout
that we follow and unfortunately that is not easy to do on Android. As
such we manually setup the plugin and force the GMP plugin process to
find/load the library from our environment instead of using the absolute
path.
Comment 16•5 months ago
|
||
Comment 17•5 months ago
|
||
Comment 18•5 months ago
|
||
Backed out for causing wpt failures on encrypted-media-report-only.https.html.
| Assignee | ||
Comment 19•5 months ago
|
||
Looks like we expect the test to timeout on all platforms except Android:
https://searchfox.org/firefox-main/rev/f6385e6644d5d4343d33b692810275c434122199/testing/web-platform/meta/permissions-policy/reporting/encrypted-media-report-only.https.html.ini#3
Android must have thrown before, so I think we can just timeout like the other targets.
Comment 20•5 months ago
|
||
Updated•5 months ago
|
Updated•5 months ago
|
Comment 21•5 months ago
|
||
| bugherder | ||
| Assignee | ||
Updated•5 months ago
|
| Assignee | ||
Comment 23•5 months ago
|
||
We don't build ESR for Android and we can otherwise just let this ride the train.
Updated•5 months ago
|
Description
•