Chromium Code Reviews| Index: media/base/android/android_cdm_factory.cc |
| diff --git a/media/base/android/android_cdm_factory.cc b/media/base/android/android_cdm_factory.cc |
| index 08a43b852a4e1cf8a50af3ee816b92fc7010edf8..c7d111afb2b8d8214be90cb465c13c5c3a9b1f2e 100644 |
| --- a/media/base/android/android_cdm_factory.cc |
| +++ b/media/base/android/android_cdm_factory.cc |
| @@ -18,6 +18,24 @@ |
| #include "url/gurl.h" |
| namespace media { |
| +namespace { |
| +void OnCdmCreated(const std::string& key_system, |
| + MediaDrmBridge::SecurityLevel security_level, |
| + const CdmCreatedCB& bound_cdm_created_cb, |
| + scoped_refptr<MediaDrmBridge> cdm) { |
| + if (!cdm) { |
| + std::string error_message = "MediaDrmBridge cannot be created for " + |
| + key_system + " with security level " + |
| + base::IntToString(security_level); |
| + LOG(ERROR) << error_message; |
| + bound_cdm_created_cb.Run(nullptr, error_message); |
| + return; |
| + } |
| + |
| + // Success! |
| + bound_cdm_created_cb.Run(cdm, ""); |
| +} |
| +} // namespace |
| AndroidCdmFactory::AndroidCdmFactory(const CreateFetcherCB& create_fetcher_cb, |
| const CreateStorageCB& create_storage_cb) |
| @@ -80,20 +98,12 @@ void AndroidCdmFactory::Create( |
| return; |
| } |
| - scoped_refptr<MediaDrmBridge> cdm(MediaDrmBridge::Create( |
| - key_system, security_origin, security_level, create_fetcher_cb_, |
| - create_storage_cb_, session_message_cb, session_closed_cb, |
| - session_keys_change_cb, session_expiration_update_cb)); |
| - if (!cdm) { |
| - error_message = "MediaDrmBridge cannot be created for " + key_system + |
| - " with security level " + base::IntToString(security_level); |
| - LOG(ERROR) << error_message; |
| - bound_cdm_created_cb.Run(nullptr, error_message); |
| - return; |
| - } |
| - |
| - // Success! |
| - bound_cdm_created_cb.Run(cdm, ""); |
| + MediaDrmBridge::Create(key_system, security_origin, security_level, |
| + create_fetcher_cb_, create_storage_cb_, |
| + session_message_cb, session_closed_cb, |
| + session_keys_change_cb, session_expiration_update_cb, |
| + base::BindOnce(&OnCdmCreated, key_system, |
| + security_level, bound_cdm_created_cb)); |
|
xhwang
2017/05/03 06:00:55
nit: no need to use bound_cdm_created_cb here sinc
yucliu1
2017/05/03 06:33:49
The callback should be bound in some cases, e.g. o
yucliu1
2017/05/10 20:41:38
After looking at the logic inside MediaDrmBridge,
|
| } |
| } // namespace media |