| Index: media/blink/webcontentdecryptionmodulesession_impl.cc
|
| diff --git a/media/blink/webcontentdecryptionmodulesession_impl.cc b/media/blink/webcontentdecryptionmodulesession_impl.cc
|
| index 9cb8610b3af39d1e195299c9b68ace28066ac7d5..e458c55cc7549255f25b6d8984958cb35f385842 100644
|
| --- a/media/blink/webcontentdecryptionmodulesession_impl.cc
|
| +++ b/media/blink/webcontentdecryptionmodulesession_impl.cc
|
| @@ -31,12 +31,6 @@ const char kLoadSessionUMAName[] = "LoadSession";
|
| const char kRemoveSessionUMAName[] = "RemoveSession";
|
| const char kUpdateSessionUMAName[] = "UpdateSession";
|
|
|
| -// TODO(jrummell): Pass an enum from blink. http://crbug.com/418239.
|
| -const char kTemporarySessionType[] = "temporary";
|
| -const char kPersistentLicenseSessionType[] = "persistent-license";
|
| -const char kPersistentReleaseMessageSessionType[] =
|
| - "persistent-release-message";
|
| -
|
| static blink::WebContentDecryptionModuleSession::Client::MessageType
|
| convertMessageType(MediaKeys::MessageType message_type) {
|
| switch (message_type) {
|
| @@ -94,31 +88,31 @@ blink::WebString WebContentDecryptionModuleSessionImpl::sessionId() const {
|
| }
|
|
|
| void WebContentDecryptionModuleSessionImpl::initializeNewSession(
|
| - const blink::WebString& init_data_type,
|
| - const uint8* init_data,
|
| + blink::WebEncryptedMediaInitDataType init_data_type,
|
| + const unsigned char* init_data,
|
| size_t init_data_length,
|
| - const blink::WebString& session_type,
|
| + blink::WebEncryptedMediaSessionType session_type,
|
| blink::WebContentDecryptionModuleResult result) {
|
| DCHECK(session_id_.empty());
|
|
|
| - // TODO(ddorwin): Guard against this in supported types check and remove this.
|
| - // Chromium only supports ASCII MIME types.
|
| - if (!base::IsStringASCII(init_data_type)) {
|
| - NOTREACHED();
|
| - std::string message = "The initialization data type " +
|
| - init_data_type.utf8() +
|
| - " is not supported by the key system.";
|
| - result.completeWithError(
|
| - blink::WebContentDecryptionModuleExceptionNotSupportedError, 0,
|
| - blink::WebString::fromUTF8(message));
|
| - return;
|
| + // TODO(jrummell): |init_data_type| should be an enum all the way through
|
| + // Chromium. http://crbug.com/417440
|
| + std::string init_data_type_as_ascii = "unknown";
|
| + switch (init_data_type) {
|
| + case blink::WebEncryptedMediaInitDataType::Cenc:
|
| + init_data_type_as_ascii = "cenc";
|
| + break;
|
| + case blink::WebEncryptedMediaInitDataType::Keyids:
|
| + init_data_type_as_ascii = "keyids";
|
| + break;
|
| + case blink::WebEncryptedMediaInitDataType::Webm:
|
| + init_data_type_as_ascii = "webm";
|
| + break;
|
| + case blink::WebEncryptedMediaInitDataType::Unknown:
|
| + NOTREACHED() << "unexpected init_data_type";
|
| + break;
|
| }
|
|
|
| - std::string init_data_type_as_ascii = base::UTF16ToASCII(init_data_type);
|
| - DLOG_IF(WARNING, init_data_type_as_ascii.find('/') != std::string::npos)
|
| - << "init_data_type '" << init_data_type_as_ascii
|
| - << "' may be a MIME type";
|
| -
|
| // Step 5 from https://w3c.github.io/encrypted-media/#generateRequest.
|
| // 5. If the Key System implementation represented by this object's cdm
|
| // implementation value does not support initDataType as an Initialization
|
| @@ -135,14 +129,20 @@ void WebContentDecryptionModuleSessionImpl::initializeNewSession(
|
| return;
|
| }
|
|
|
| - MediaKeys::SessionType session_type_enum;
|
| - if (session_type == kPersistentLicenseSessionType) {
|
| - session_type_enum = MediaKeys::PERSISTENT_LICENSE_SESSION;
|
| - } else if (session_type == kPersistentReleaseMessageSessionType) {
|
| - session_type_enum = MediaKeys::PERSISTENT_RELEASE_MESSAGE_SESSION;
|
| - } else {
|
| - DCHECK(session_type == kTemporarySessionType);
|
| - session_type_enum = MediaKeys::TEMPORARY_SESSION;
|
| + MediaKeys::SessionType session_type_enum = MediaKeys::TEMPORARY_SESSION;
|
| + switch (session_type) {
|
| + case blink::WebEncryptedMediaSessionType::Temporary:
|
| + session_type_enum = MediaKeys::TEMPORARY_SESSION;
|
| + break;
|
| + case blink::WebEncryptedMediaSessionType::PersistentLicense:
|
| + session_type_enum = MediaKeys::PERSISTENT_LICENSE_SESSION;
|
| + break;
|
| + case blink::WebEncryptedMediaSessionType::PersistentReleaseMessage:
|
| + session_type_enum = MediaKeys::PERSISTENT_RELEASE_MESSAGE_SESSION;
|
| + break;
|
| + case blink::WebEncryptedMediaSessionType::Unknown:
|
| + NOTREACHED() << "unexpected session_type";
|
| + break;
|
| }
|
|
|
| adapter_->InitializeNewSession(
|
| @@ -155,6 +155,16 @@ void WebContentDecryptionModuleSessionImpl::initializeNewSession(
|
| base::Unretained(this)))));
|
| }
|
|
|
| +// TODO(jrummell): Remove this. http://crbug.com/418239.
|
| +void WebContentDecryptionModuleSessionImpl::initializeNewSession(
|
| + const blink::WebString& init_data_type,
|
| + const uint8* init_data,
|
| + size_t init_data_length,
|
| + const blink::WebString& session_type,
|
| + blink::WebContentDecryptionModuleResult result) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| void WebContentDecryptionModuleSessionImpl::load(
|
| const blink::WebString& session_id,
|
| blink::WebContentDecryptionModuleResult result) {
|
|
|