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.
*/
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"]

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

@ -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);