diff --git a/index.html b/index.html index 26ee23f..8f01626 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,39 @@
+ https://www.w3.org/TR/.
++ Two new features were added since publication as a W3C Recommendation in September 2017: +
+encryptionScheme
attribute.
+ getStatusForPolicy
()
method.
+ + Inclusion of other features is out of scope for the Media Working Group. On top of + editorial updates, other substantive changes made to this specification address maintenance + issues against this specification: +
+encrypted-media
identifier.
+ usable-in-future
" to MediaKeyStatus
for keys that are not
+ yet usable for decryption.
+ QuotaExceededError
when steps fail due to a lack of resources.
+ MediaKeySessionClosedReason
to describe possible reasons for a session closure,
+ and adjust algorithms accordingly.
+ + For a full list of changes made since the previous version, see the commits. +
+This document was published by the Media Working Group as an Editor's Draft.
Publication as an Editor's Draft does not @@ -1586,7 +1618,7 @@
If this's relevant global object's associated Document is not
- allowed to use the
feature, then
+ allowed to use the encrypted-media
feature, then
throw a "encrypted-media
SecurityError
" DOMException
and abort these steps.
Let encryption scheme be requested media capability’s
- encryptionScheme
member.
+ encryptionScheme
member.
WebIDLdictionary MediaKeySystemMediaCapability
{
DOMString contentType
= "";
- DOMString? encryptionScheme
= null;
+ DOMString? encryptionScheme
= null;
DOMString robustness
= "";
};
- If encryptionScheme
was not given by the
+ If encryptionScheme
was not given by the
application, the accumulated configuration MUST still contain an
- encryptionScheme
field with a value of
+ encryptionScheme
field with a value of
null
, so that polyfills can detect the user agent's support for the
field without specifying specific values.
WebIDL[Exposed=Window, SecureContext] interface MediaKeys
{
MediaKeySession
createSession
(optional MediaKeySessionType
sessionType = "temporary");
- Promise<MediaKeyStatus
> getStatusForPolicy
(optional MediaKeysPolicy
policy = {});
+ Promise<MediaKeyStatus
> getStatusForPolicy
(optional MediaKeysPolicy
policy = {});
Promise<boolean> setServerCertificate
(BufferSource serverCertificate);
};
- Returns the MediaKeyStatus
for a given MediaKeysPolicy
.
+ Returns the MediaKeyStatus
for a given MediaKeysPolicy
.
WebIDLdictionary MediaKeysPolicy
{
@@ -3446,7 +3478,7 @@ Encrypted Media Extensions
The HDCP Policy is represented by minHdcpVersion
. If the system
can enable the HDCP version specified or higher, then the policy will result in a
- MediaKeyStatus
of "usable
". The
+ MediaKeyStatus
of "usable
". The
[EME-HDCP-VERSION-REGISTRY] provides the mapping from
minHdcpVersion
values to HDCP specifications.
@@ -3490,7 +3522,7 @@ Encrypted Media Extensions
-
- If the CDM cannot determine the MediaKeyStatus
for the
+ If the CDM cannot determine the MediaKeyStatus
for the
dictionary member, then reject promise with
NotSupportedError
and abort these steps.
@@ -3673,7 +3705,7 @@ Encrypted Media Extensions
The CDM unavailable algorithm is run to close all MediaKeySession
objects
associated with a MediaKeys
object, media keys when the CDM instance
becomes unavailable. Requests to run this algorithm include a
- MediaKeySessionClosedReason
value.
+ MediaKeySessionClosedReason
value.
The following steps are run:
@@ -3681,7 +3713,7 @@
Encrypted Media Extensions
-
- Let the reason be the specified MediaKeySessionClosedReason
value.
+ Let the reason be the specified MediaKeySessionClosedReason
value.
-
@@ -3778,7 +3810,7 @@
Encrypted Media Extensions
The following steps of an algorithm are always aborted when rejecting a promise.
- WebIDLenum MediaKeySessionClosedReason
{
+ WebIDLenum MediaKeySessionClosedReason
{
"internal-error
",
"closed-by-application
",
"release-acknowledged
",
@@ -3860,7 +3892,7 @@ Encrypted Media Extensions
WebIDL[Exposed=Window, SecureContext] interface MediaKeySession
: EventTarget {
readonly attribute DOMString sessionId
;
readonly attribute unrestricted double expiration
;
- readonly attribute Promise<MediaKeySessionClosedReason
> closed
;
+ readonly attribute Promise<MediaKeySessionClosedReason
> closed
;
readonly attribute MediaKeyStatusMap
keyStatuses
;
attribute EventHandler onkeystatuseschange
;
attribute EventHandler onmessage
;
@@ -3897,7 +3929,7 @@ Encrypted Media Extensions
closed
of type Promise<MediaKeySessionClosedReason
>, readonly
+ closed
of type Promise<MediaKeySessionClosedReason
>, readonly
@@ -3932,7 +3964,7 @@
0
and the
- MediaKeyStatus
most appropriate for the aggregated status of this object.
+ MediaKeyStatus
most appropriate for the aggregated status of this object.
If any of the preceding steps failed due to a lack of resources, reject
- promise with
.
+ promise with QuotaExceededError
.
QuotaExceededError
If there is a MediaKeySession
object that is not closed in this object's Document whose
sessionId
attribute is sanitized session ID,
- reject promise with a
.
+ reject promise with a QuotaExceededError
.
QuotaExceededError
In other words, do not create a session if a non-closed session, regardless @@ -4396,7 +4428,7 @@
If there is a MediaKeySession
object that is not closed in any Document and that represents the session
- data, reject promise with a
.
+ data, reject promise with a QuotaExceededError
.
QuotaExceededError
In other words, do not create a session if a non-closed persistent @@ -4463,7 +4495,7 @@
MediaKeyStatus
.
+ appropriate MediaKeyStatus
.
Should additional processing be necessary to determine with certainty the @@ -4775,7 +4807,7 @@
MediaKeyStatus
.
+ MediaKeyStatus
.
Should additional processing be necessary to determine with @@ -5042,7 +5074,7 @@
Run the Update Key Statuses algorithm on the session,
providing all key ID(s) in the session along with the
- "released
" MediaKeyStatus
value for each.
+ "released
" MediaKeyStatus
value for each.
WebIDL[Exposed=Window, SecureContext] interface MediaKeyStatusMap
{
- iterable<BufferSource,MediaKeyStatus
>;
+ iterable<BufferSource,MediaKeyStatus
>;
readonly attribute unsigned long size
;
boolean has
(BufferSource keyId);
- (MediaKeyStatus
or undefined) get
(BufferSource keyId);
+ (MediaKeyStatus
or undefined) get
(BufferSource keyId);
};
- Returns the MediaKeyStatus
of the key identified by keyId or
+ Returns the MediaKeyStatus
of the key identified by keyId or
undefined
if the status of the key identified by keyId is
not known.
The value pairs to iterate over are a snapshot of the set of pairs formed from the
- key ID and associated MediaKeyStatus
value for all known keys, sorted by
+ key ID and associated MediaKeyStatus
value for all known keys, sorted by
key ID. Key IDs are compared as follows: For key IDs A of length
m and B of length n, assigned such that m
<= n, let A < B if and only if the m
@@ -5169,13 +5201,13 @@
WebIDLenum MediaKeyStatus
{
+ WebIDLenum MediaKeyStatus
{
"usable
",
"expired
",
"released
",
"output-restricted
",
"output-downscaled
",
- "usable-in-future
",
+ "usable-in-future
",
"status-pending
",
"internal-error
"
};
@@ -5500,7 +5532,7 @@ Encrypted Media Extensions
The Update Key Statuses algorithm updates the set of known keys for a
MediaKeySession
or the status of one or more of the keys. Requests to run this
algorithm include a target MediaKeySession
object and a sequence of key ID and
- associated MediaKeyStatus
pairs.
+ associated MediaKeyStatus
pairs.
Note
The algorithm is always run in a task.
@@ -5517,7 +5549,7 @@
Encrypted Media Extensions
Let the input statuses be the sequence of pairs key ID and associated
- MediaKeyStatus
pairs.
+ MediaKeyStatus
pairs.
@@ -5549,7 +5581,7 @@ Encrypted Media Extensions
Insert an entry for pair's key ID into statuses with
- the value of pair's MediaKeyStatus
value.
+ the value of pair's MediaKeyStatus
value.
@@ -5623,7 +5655,7 @@ Encrypted Media Extensions
The Session Closed algorithm updates the MediaKeySession
state after a key session has been closed by the CDM. Requests to run this algorithm include a
- target MediaKeySession
object and a MediaKeySessionClosedReason
.
+ target MediaKeySession
object and a MediaKeySessionClosedReason
.
Note
The algorithm is always run in a task.
@@ -5754,7 +5786,7 @@
Encrypted Media Extensions
-
- Let statuses be a list of key ID and MediaKeyStatus
value pairs
+ Let statuses be a list of key ID and MediaKeyStatus
value pairs
containing one pair for each key known to session.
@@ -5790,7 +5822,7 @@ Encrypted Media Extensions
If cdm has closed session, queue a task to run the
Session Closed algorithm on session with an appropriate
- MediaKeySessionClosedReason
value.
+ MediaKeySessionClosedReason
value.
-
@@ -6184,7 +6216,7 @@
Encrypted Media Extensions
then let this object's attaching media keys value be false and
- reject promise with a QuotaExceededError
.
+ reject promise with a QuotaExceededError
.
-
@@ -6714,7 +6746,7 @@
Encrypted Media Extensions
result of running the preceding step, queue a task to run the
Update Key Statuses algorithm on each affected session,
providing all key ID(s) in the session along with the appropriate
- MediaKeyStatus
value(s) for each.
+ MediaKeyStatus
value(s) for each.
-
@@ -7824,7 +7856,7 @@
Encrypted Media Extensions
-
- encryptionScheme
: Implementations MUST
+ encryptionScheme
: Implementations MUST
support the "cenc"
scheme, and MAY support other schemes.
@@ -10455,7 +10487,9 @@ Encrypted Media Extensions
Referenced in:
@@ -11131,7 +11167,9 @@ Encrypted Media Extensions
Referenced in:
@@ -11289,15 +11327,17 @@ Encrypted Media Extensions
Referenced in:
-
- § 5.2.2 CDM Unavailable (2)
+ § Status of This Document
+
-
+ § 5.2.2 CDM Unavailable (2)
-
- § 6. MediaKeySession Interface (2)
+ § 6. MediaKeySession Interface (2)
-
- § 6.1 Attributes
+ § 6.1 Attributes
-
- § 6.6.4 Session Closed
+ § 6.6.4 Session Closed
-
- § 6.6.5 Monitor for CDM State Changes
+ § 6.6.5 Monitor for CDM State Changes
@@ -11643,23 +11683,25 @@ Encrypted Media Extensions
Referenced in:
-
- § 5. MediaKeys Interface
+ § Status of This Document
+
-
+ § 5. MediaKeys Interface
-
- § 5.1 Methods (2) (3)
+ § 5.1 Methods (2) (3)
-
- § 6.1 Attributes
+ § 6.1 Attributes
-
- § 6.2 Methods (2) (3)
+ § 6.2 Methods (2) (3)
-
- § 6.3 MediaKeyStatusMap Interface (2) (3)
+ § 6.3 MediaKeyStatusMap Interface (2) (3)
-
- § 6.3.2 Methods (2)
+ § 6.3.2 Methods (2)
-
- § 6.6.2 Update Key Statuses (2) (3)
+ § 6.6.2 Update Key Statuses (2) (3)
-
- § 6.6.5 Monitor for CDM State Changes
+ § 6.6.5 Monitor for CDM State Changes
-
- § 7.5.4 Attempt to Decrypt
+ § 7.5.4 Attempt to Decrypt
@@ -11741,7 +11783,9 @@ Encrypted Media Extensions
Referenced in:
@@ -12139,9 +12183,11 @@ Encrypted Media Extensions
Referenced in: