summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl')
-rw-r--r--testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl119
1 files changed, 119 insertions, 0 deletions
diff --git a/testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl b/testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl
new file mode 100644
index 000000000..fbe898b20
--- /dev/null
+++ b/testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl
@@ -0,0 +1,119 @@
+// 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;
+};
+