Bug 1278198 - Update MediaKeySystemConfiguration and MediaKeys to match draft EME spec. r=smaug

The only thing we're now not up to date on (in terms of WebIDL) is the
"persistent-usage-record" MediaKeySessionType.

MozReview-Commit-ID: 4CKK35HAxKK

--HG--
extra : rebase_source : b0dc35aeff2fb47c9a6a6bd4979bf2d537b2a515
This commit is contained in:
Chris Pearce 2016-07-01 11:28:58 +12:00
parent fa5b0ee6cb
commit 60fedd5b6a
2 changed files with 21 additions and 8 deletions

View File

@ -10,18 +10,25 @@
* W3C liability, trademark and document use rules apply.
*/
enum MediaKeysRequirement {
"required",
"optional",
"not-allowed"
};
dictionary MediaKeySystemMediaCapability {
DOMString contentType = "";
// TODO: robustness
DOMString robustness = "";
};
dictionary MediaKeySystemConfiguration {
DOMString label = "";
sequence<DOMString> initDataTypes;
sequence<MediaKeySystemMediaCapability> audioCapabilities;
sequence<MediaKeySystemMediaCapability> videoCapabilities;
// TODO: distinctiveIdentifier, persistentState, sessionTypes
sequence<DOMString> initDataTypes = [];
sequence<MediaKeySystemMediaCapability> audioCapabilities = [];
sequence<MediaKeySystemMediaCapability> videoCapabilities = [];
MediaKeysRequirement distinctiveIdentifier = "optional";
MediaKeysRequirement persistentState = "optional";
sequence<DOMString> sessionTypes;
};
[Pref="media.eme.apiVisible"]

View File

@ -10,14 +10,20 @@
* W3C liability, trademark and document use rules apply.
*/
enum SessionType { "temporary", "persistent" };
// Note: "persistent-usage-record" session type is unsupported yet, as
// it's marked as "at risk" in the spec, and Chrome doesn't support it.
enum MediaKeySessionType {
"temporary",
"persistent-license",
// persistent-usage-record,
};
[Pref="media.eme.apiVisible"]
interface MediaKeys {
readonly attribute DOMString keySystem;
[NewObject, Throws]
MediaKeySession createSession(optional SessionType sessionType = "temporary");
MediaKeySession createSession(optional MediaKeySessionType sessionType = "temporary");
[NewObject]
Promise<void> setServerCertificate((ArrayBufferView or ArrayBuffer) serverCertificate);