diff options
Diffstat (limited to 'testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl')
-rw-r--r-- | testing/web-platform/tests/encrypted-media/EncryptedMediaExtensions.idl | 119 |
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; +}; + |