MediaKeys::GetStatusForPolicy ends up being too permissive
Categories
(Core :: Audio/Video: Playback, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox70 | --- | fixed |
People
(Reporter: bryce, Assigned: bryce)
References
(Regression)
Details
(Keywords: regression)
Attachments
(3 files)
Bug 1404230 implemented the HDCP policy check detailed here. This functionality is currently gated behind the media.eme.hdcp-policy-check.enabled
pref. However, we're currently much too permissive with our policy checks and will okay pretty much everything.
This can be tested at google's test page for the feature.
This bug is the product of 2 factors:
- Since the initial proposal of that spec, the format of the
minHdcpVersion
member has changed. E.g.hdcp-1.0
became1.0
. Our conversions for these strings where not updated accordingly. - Our original implementation of the conversion from string to Widevine CDM enum treats unrecognized values as none. We should not do this as it leads to issues where the CDM treats the check as having no HDCP requirement -- the most lenient requirement.
We need to update the strings we're matching on, as well as throwing an error if we encounter an unrecognized string.
Assignee | ||
Comment 1•3 years ago
|
||
Marked this as confidential on creation when it does not need to be.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 2•3 years ago
|
||
GetStatusPolicy should not treat unrecognized values as if they were no hdcp
policy. A trivial example is that if we do not recognize a newer hdcp string,
say "2.3", then we should not query if the CDM supports this policy as if it
were no hdcp.
This patch means that we surface and error to JS if we do no recognize an hdcp
string.
Assignee | ||
Comment 3•3 years ago
|
||
These strings are detailed at
https://github.com/WICG/hdcp-detection/blob/master/explainer.md, and were
changed since the original implementation of this feature.
Depends on D42061
Assignee | ||
Comment 4•3 years ago
|
||
If Status is defined (X11 headers define it as int), it ends up busting the
Status enum used in the Widevine headers. Avoid this by undeffing it before
including headers.
Pushed by bvandyk@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9666df4faff7 Fix GetStatusForPolicy handling of unrecognized values. r=dminor,alwu https://hg.mozilla.org/integration/autoland/rev/9d89249349d0 Update hdcp version strings used in GetStatusForPolicy. r=dminor,alwu https://hg.mozilla.org/integration/autoland/rev/f65891d4a353 Undef Status in GMPMessageUtils to avoid bustages in Linux unified build. r=dminor
Comment 6•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9666df4faff7
https://hg.mozilla.org/mozilla-central/rev/9d89249349d0
https://hg.mozilla.org/mozilla-central/rev/f65891d4a353
Updated•6 months ago
|
Updated•6 months ago
|
Description
•