Index: media/mojo/interfaces/content_decryption_module.mojom |
diff --git a/media/mojo/interfaces/content_decryption_module.mojom b/media/mojo/interfaces/content_decryption_module.mojom |
index 9dbc8244ea99fbb44f461305727a1a45b961b955..0cb07271db4130961ad35b5b0b87d356ee0a236f 100644 |
--- a/media/mojo/interfaces/content_decryption_module.mojom |
+++ b/media/mojo/interfaces/content_decryption_module.mojom |
@@ -19,6 +19,16 @@ enum CdmException { |
OUTPUT_ERROR |
}; |
+// Transport layer of media::CdmKeyInformation::KeyStatus (see |
+// media/base/cdm_key_information.h). This is used for indicating the status |
+// of a specific key ID. |
+enum CdmKeyStatus { |
+ USABLE, |
+ INTERNAL_ERROR, |
+ EXPIRED, |
+ OUTPUT_NOT_ALLOWED |
+}; |
+ |
// Transport layer of media::CdmPromise (see media/base/cdm_promise.h). |
// - When |success| is true, the promise is resolved and all other fields should |
// be ignored. |
@@ -31,6 +41,15 @@ struct CdmPromiseResult { |
string error_message; |
}; |
+// Transport layer of media::CdmKeyInformation (see |
+// media/base/cdm_key_information.h). It is used to specify a key_id and it's |
+// associated status. |
+struct CdmKeyInformation { |
+ array<uint8> key_id; |
+ CdmKeyStatus status; |
+ uint32 system_code; |
+}; |
+ |
// An interface that represents a CDM in the Encrypted Media Extensions (EME) |
// spec (https://w3c.github.io/encrypted-media/). See media/base/media_keys.h. |
[Client=ContentDecryptionModuleClient] |
@@ -98,7 +117,8 @@ interface ContentDecryptionModuleClient { |
OnSessionError(string session_id, CdmException exception, |
uint32 system_code, string error_message); |
- OnSessionKeysChange(string session_id, bool has_additional_usable_key); |
+ OnSessionKeysChange(string session_id, bool has_additional_usable_key, |
+ array<CdmKeyInformation> key_information); |
OnSessionExpirationUpdate(string session_id, int64 new_expiry_time_usec); |
}; |