-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Polyfill returns misleading CBCS #62
Comments
I'm using Firefox 125 on Ubuntu, and I find that when you query encryptionScheme support through EME, it does not recognize the field at all. IIRC, this is what is triggering the polyfill to activate. Note that DRM decryption support is separate from the ability to query it. The CDM may be able to decrypt CBCS, but the browser may not understand the query or consider the encryptionScheme field. I'll double-check the status through MCap as well, in case Firefox implemented encryptionScheme support in that API only. |
Open bug for |
CBCS support in Firefox seems to have been added around late 2018. |
I'm migrating this issue to the polyfill repo. |
Firefox 125 doesn't support encryptionScheme checks in EME or in MediaCapabilities. So there is no way to check for this at runtime. The polyfill has to be in play on Firefox. So the only thing we can do is to have the polyfill check the Firefox version number and return different results based on that.
What you're overlooking by doing that is that on Firefox, we can query a completely fictional encryption scheme and it will still report The polyfill uses this fact (missing |
This will add encryption schemes to the DRM support report generated by probeSupport() and support.html. Related to shaka-project/eme-encryption-scheme-polyfill#62, PR shaka-project#6484, and issue shaka-project#1419.
The feature can be enabled in Firefox in |
This will add encryption schemes to the DRM support report generated by probeSupport() and support.html. Related to shaka-project/eme-encryption-scheme-polyfill#62, PR #6484, and issue #1419. --------- Co-authored-by: Álvaro Velad Galván <[email protected]>
Fixes #62 Co-authored-by: Joey Parrish <[email protected]>
Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
4.2.1
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from
main
?Yes, via https://nightly-dot-shaka-player-demo.appspot.com/demo/
Are you using the demo app or your own custom app?
Reproducible in both
If custom app, can you reproduce the issue using our demo app?
Yes
What browser and OS are you using?
Windows 10 - Firefox 104.0.2
macOS 10.15.7 - Firefox 104.0.2
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A
What are the manifest and license server URIs?
N/A
What configuration are you using? What is the output of
player.getConfiguration()
?N/A
What did you do?
I probed Firefox for support of Widevine CBCS after applying the Shaka Polyfills (
shaka.polyfill.installAll()
). The behavior is the same if in a code file or in the dev tools console.What did you expect to happen?
I expected Firefox to report that this
config
object was a supported configuration. Running the same code block in Firefox's dev tools console on a page without the polyfills applied indicates that it is a supported configuration. It's worth noting that Chrome/Edge do work after the polyfill.What actually happened?
An exception is thrown indicating that it is not a supported configuration:
Uncaught (in promise) NotSupportedError: Unsupported keySystem or supportedConfigurations.
I made a Stack Blitz showing that when ran with Firefox, the native
navigator.requestMediaKeySystemAccess
indicates support, while after applying the polyfill, it is not supported.https://shaka-player-eme-polyfill-cbcs-issue.stackblitz.io/
https://stackblitz.com/edit/shaka-player-eme-polyfill-cbcs-issue?file=index.js&view=editor
(Note that their editor's preview iframe doesn't provide permissions for
encrypted-media
, so it must be opened in a new tab)We're undergoing an effort to remove any OS version detection in favor of feature detection as the User Agent is becoming unreliable. We're detecting CBCS support with similar code to the example in the Stack Blitz, which is working with the exception of Firefox. The current workaround is to get a reference to the native
navigator.requestMediaKeySystemAccess
prior to the polyfill being applied, calling that reference, then falling back to the post-polyfillednavigator.requestMediaKeySystemAccess
if the native version doesn't indicate success.The text was updated successfully, but these errors were encountered: