Index: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/EncryptedMediaExtensions.idl |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/EncryptedMediaExtensions.idl b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/EncryptedMediaExtensions.idl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fbe898b2060b81a6a1462843e51a8d00bede55a3 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/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; |
+}; |
+ |