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 286cf0d9f34a6de95822495519318529a072a973..539ddada9d53d4c50315b80fef3f3ce411fe9005 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)); |
} |
} // namespace media |