120 lines
3.9 KiB
Plaintext
120 lines
3.9 KiB
Plaintext
// Encrypted Media Extensions WebIDL
|
|
//
|
|
// NOTE: Please update the link below to the specification version from
|
|
// which this IDL was extracted.
|
|
//
|
|
// https://www.w3.org/TR/2016/WD-encrypted-media-20160610/
|
|
// + commit 5499821932391ae2c2e53756ae7ab9fae89d5863
|
|
//
|
|
|
|
partial interface Navigator {
|
|
Promise<MediaKeySystemAccess> requestMediaKeySystemAccess (DOMString keySystem, sequence<MediaKeySystemConfiguration> supportedConfigurations);
|
|
};
|
|
|
|
enum MediaKeysRequirement {
|
|
"required",
|
|
"optional",
|
|
"not-allowed"
|
|
};
|
|
|
|
dictionary MediaKeySystemConfiguration {
|
|
DOMString label = "";
|
|
sequence<DOMString> initDataTypes = [];
|
|
sequence<MediaKeySystemMediaCapability> audioCapabilities = [];
|
|
sequence<MediaKeySystemMediaCapability> videoCapabilities = [];
|
|
MediaKeysRequirement distinctiveIdentifier = "optional";
|
|
MediaKeysRequirement persistentState = "optional";
|
|
sequence<DOMString> sessionTypes;
|
|
};
|
|
|
|
dictionary MediaKeySystemMediaCapability {
|
|
DOMString contentType = "";
|
|
DOMString robustness = "";
|
|
};
|
|
|
|
interface MediaKeySystemAccess {
|
|
readonly attribute DOMString keySystem;
|
|
MediaKeySystemConfiguration getConfiguration ();
|
|
Promise<MediaKeys> createMediaKeys ();
|
|
};
|
|
|
|
enum MediaKeySessionType {
|
|
"temporary",
|
|
"persistent-usage-record",
|
|
"persistent-license"
|
|
};
|
|
|
|
interface MediaKeys {
|
|
MediaKeySession createSession (optional MediaKeySessionType sessionType = "temporary");
|
|
Promise<boolean> setServerCertificate (BufferSource serverCertificate);
|
|
};
|
|
|
|
interface MediaKeySession : EventTarget {
|
|
readonly attribute DOMString sessionId;
|
|
readonly attribute unrestricted double expiration;
|
|
readonly attribute Promise<void> closed;
|
|
readonly attribute MediaKeyStatusMap keyStatuses;
|
|
attribute EventHandler onkeystatuseschange;
|
|
attribute EventHandler onmessage;
|
|
Promise<void> generateRequest (DOMString initDataType, BufferSource initData);
|
|
Promise<boolean> load (DOMString sessionId);
|
|
Promise<void> update (BufferSource response);
|
|
Promise<void> close ();
|
|
Promise<void> remove ();
|
|
};
|
|
|
|
interface MediaKeyStatusMap {
|
|
iterable<BufferSource,MediaKeyStatus>;
|
|
readonly attribute unsigned long size;
|
|
boolean has (BufferSource keyId);
|
|
any get (BufferSource keyId);
|
|
};
|
|
|
|
enum MediaKeyStatus {
|
|
"usable",
|
|
"expired",
|
|
"released",
|
|
"output-restricted",
|
|
"output-downscaled",
|
|
"status-pending",
|
|
"internal-error"
|
|
};
|
|
|
|
enum MediaKeyMessageType {
|
|
"license-request",
|
|
"license-renewal",
|
|
"license-release",
|
|
"individualization-request"
|
|
};
|
|
|
|
[Constructor(DOMString type, MediaKeyMessageEventInit eventInitDict)]
|
|
interface MediaKeyMessageEvent : Event {
|
|
readonly attribute MediaKeyMessageType messageType;
|
|
readonly attribute ArrayBuffer message;
|
|
};
|
|
|
|
dictionary MediaKeyMessageEventInit : EventInit {
|
|
required MediaKeyMessageType messageType;
|
|
required ArrayBuffer message;
|
|
};
|
|
|
|
// partial interface HTMLMediaElement : EventTarget {
|
|
partial interface HTMLMediaElement {
|
|
readonly attribute MediaKeys? mediaKeys;
|
|
attribute EventHandler onencrypted;
|
|
attribute EventHandler onwaitingforkey;
|
|
Promise<void> setMediaKeys (MediaKeys? mediaKeys);
|
|
};
|
|
|
|
[Constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict)]
|
|
interface MediaEncryptedEvent : Event {
|
|
readonly attribute DOMString initDataType;
|
|
readonly attribute ArrayBuffer? initData;
|
|
};
|
|
|
|
dictionary MediaEncryptedEventInit : EventInit {
|
|
DOMString initDataType = "";
|
|
ArrayBuffer? initData = null;
|
|
};
|
|
|