Chromium Code Reviews| Index: media/blink/encrypted_media_player_support.cc |
| diff --git a/media/blink/encrypted_media_player_support.cc b/media/blink/encrypted_media_player_support.cc |
| index a84e24cd795d1bf1f5fbf01447c2e7b3ecc2e58c..9ee0b2b3b58caea997e7750b3498074176f66f78 100644 |
| --- a/media/blink/encrypted_media_player_support.cc |
| +++ b/media/blink/encrypted_media_player_support.cc |
| @@ -155,43 +155,32 @@ EncryptedMediaPlayerSupport::GenerateKeyRequestInternal( |
| if (!PrefixedIsSupportedConcreteKeySystem(key_system)) |
| return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; |
| - // We do not support run-time switching between key systems for now. |
| - if (current_key_system_.empty()) { |
| - if (!proxy_decryptor_) { |
| - proxy_decryptor_.reset(new ProxyDecryptor( |
| - media_permission_, |
| - BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded), |
| - BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError), |
| - BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage))); |
| - } |
| + if (!proxy_decryptor_) { |
| + DCHECK(current_key_system_.empty()); |
| + DCHECK(!set_cdm_context_cb_.is_null()); |
| + proxy_decryptor_.reset(new ProxyDecryptor( |
| + media_permission_, |
| + BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded), |
| + BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError), |
| + BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage))); |
| GURL security_origin(frame->document().securityOrigin().toString()); |
| - |
| - if (!proxy_decryptor_->InitializeCDM(cdm_factory_, key_system, |
| - security_origin)) { |
| - return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; |
| - } |
| - |
| - if (proxy_decryptor_ && !set_cdm_context_cb_.is_null()) { |
| - base::ResetAndReturn(&set_cdm_context_cb_) |
| - .Run(proxy_decryptor_->GetCdmContext(), |
| - base::Bind(&IgnoreCdmAttached)); |
| - } |
| - |
| + proxy_decryptor_->CreateCdm(cdm_factory_, key_system, security_origin, |
| + set_cdm_context_cb_); |
| current_key_system_ = key_system; |
| - } else if (key_system != current_key_system_) { |
| - return WebMediaPlayer::MediaKeyExceptionInvalidPlayerState; |
| } |
| + // We do not support run-time switching between key systems for now. |
|
ddorwin
2015/04/10 00:59:43
Be sure this passes layout tests. I think there wa
xhwang
2015/04/10 17:41:17
This has always been the case and just confirmed t
|
| + DCHECK(!current_key_system_.empty()); |
| + if (key_system != current_key_system_) |
| + return WebMediaPlayer::MediaKeyExceptionInvalidPlayerState; |
| + |
| EmeInitDataType init_data_type = init_data_type_; |
| if (init_data_type == EmeInitDataType::UNKNOWN) |
| init_data_type = GuessInitDataType(init_data, init_data_length); |
| - if (!proxy_decryptor_->GenerateKeyRequest(init_data_type, init_data, |
| - init_data_length)) { |
| - current_key_system_.clear(); |
| - return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported; |
| - } |
| + proxy_decryptor_->GenerateKeyRequest(init_data_type, init_data, |
|
ddorwin
2015/04/10 00:59:43
Can this no longer fail? Is everything in an Initi
xhwang
2015/04/10 17:41:17
Since we added RequestPermission, this path is alr
|
| + init_data_length); |
| return WebMediaPlayer::MediaKeyExceptionNoError; |
| } |