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 : 2015a2d0c61e09e329f5f9cc699f5d946e97862b
This commit is contained in:
Chris Pearce 2016-07-01 11:28:58 +12:00
Родитель 888002acb9
Коммит e091dd26b1
2 изменённых файлов: 21 добавлений и 8 удалений

Просмотреть файл

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

Просмотреть файл

@ -10,14 +10,20 @@
* W3C liability, trademark and document use rules apply. * 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"] [Pref="media.eme.apiVisible"]
interface MediaKeys { interface MediaKeys {
readonly attribute DOMString keySystem; readonly attribute DOMString keySystem;
[NewObject, Throws] [NewObject, Throws]
MediaKeySession createSession(optional SessionType sessionType = "temporary"); MediaKeySession createSession(optional MediaKeySessionType sessionType = "temporary");
[NewObject] [NewObject]
Promise<void> setServerCertificate((ArrayBufferView or ArrayBuffer) serverCertificate); Promise<void> setServerCertificate((ArrayBufferView or ArrayBuffer) serverCertificate);