1. MediaKeys Policies
1.1. MediaKeysPolicy Dictionary
dictionary {
MediaKeysPolicy HDCPVersion ; };
minHdcpVersion
The MediaKeysPolicy
dictionary is an object consisting of only
optional properties. Each property represents a policy requirement.
A policy requirement is said to be fulfilled if the system matches the requirements. The exact requirements to match each policy requirement are defined below.
1.2. HDCP Policy
Using an enum as a shorthand. The final result will be similar in behaviour (TypeError) but may be based on a registry so the list can be updated without updating this document.
enum {
HDCPVersion ,
"1.0" ,
"1.1" ,
"1.2" ,
"1.3" ,
"1.4" ,
"2.0" ,
"2.1" ,
"2.2" , };
"2.3"
The HDCP Policy is represented by the minHdcpVersion
. When set, the policy requirement will be fulfilled if the system supports minHdcpVersion
on the current display.
2. MediaKeys extension
[SecureContext ,Exposed =Window ]partial interface MediaKeys { [NewObject ]Promise <MediaKeyStatus >(
getStatusForPolicy optional MediaKeysPolicy ); };
policy
The getStatusForPolicy
method MUST run the following steps:
- If policy has no present member, return a
Promise rejected with a newly created
TypeError
. - Let p be a new Promise.
-
For each member of policy, run the following steps:
- If the policy requirement associated with the member is not fulfilled, resolve p with
output-restricted
and abort these steps.
- If the policy requirement associated with the member is not fulfilled, resolve p with
- Resolve p with
usable
.
3. Security and Privacy Considerations
This specification does not introduce any security-sensitive information or APIs but it provides an easier access to some information.
3.1. Fingerprinting
The API offers access to some information that can already be accessed by the page through the CDM. This information does not increase the fingerprint surface but can make it simpler for a website to fingerprint its users as the information is easier to access and no longer requires getting a content license from a license server.
The information added by this API, regardless of whether or not it is accessible in other ways, does not increase the entropy for fingerprinting much. HDCP is widely available on most operating systems and displays.
3.2. User Consent
The fingerprinting concerns are mitigated by the fact that the API is
only accessible after requestMediaKeySystemAccess()
was
called, which may require user consent. UAs that would require user
consent in order to access the CDM will therefore require user consent
to access this API.