Index: chrome/browser/media/android/cdm/media_drm_credential_manager.cc |
diff --git a/chrome/browser/media/android/cdm/media_drm_credential_manager.cc b/chrome/browser/media/android/cdm/media_drm_credential_manager.cc |
index b5c369c14e3048e3460327a9846341ee4a455f51..0887a07926b6422bad2ba02471638e15865d42c2 100644 |
--- a/chrome/browser/media/android/cdm/media_drm_credential_manager.cc |
+++ b/chrome/browser/media/android/cdm/media_drm_credential_manager.cc |
@@ -94,20 +94,25 @@ void MediaDrmCredentialManager::ResetCredentialsInternal( |
base::Bind(&content::CreateProvisionFetcher, |
g_browser_process->system_request_context()); |
- ResetCredentialsCB reset_credentials_cb = |
- base::Bind(&MediaDrmCredentialManager::OnResetCredentialsCompleted, |
- base::Unretained(this), security_level); |
- |
- media_drm_bridge_ = media::MediaDrmBridge::CreateWithoutSessionSupport( |
- kWidevineKeySystem, security_level, create_fetcher_cb); |
+ media::MediaDrmBridge::CreateWithoutSessionSupport( |
+ kWidevineKeySystem, security_level, create_fetcher_cb, |
+ base::BindOnce( |
+ &MediaDrmCredentialManager::OnMediaDrmCreated, base::Unretained(this), |
+ base::Bind(&MediaDrmCredentialManager::OnResetCredentialsCompleted, |
+ base::Unretained(this), security_level))); |
+} |
+void MediaDrmCredentialManager::OnMediaDrmCreated( |
+ const ResetCredentialsCB& reset_credentials_cb, |
+ scoped_refptr<media::MediaDrmBridge> cdm) { |
// No need to reset credentials for unsupported |security_level|. |
- if (!media_drm_bridge_) { |
+ if (!cdm) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, base::Bind(reset_credentials_cb, true)); |
return; |
} |
+ media_drm_bridge_ = cdm; |
jrummell
2017/05/10 22:38:12
Won't this create a second reference to the object
yucliu1
2017/05/10 22:42:44
Correct. I'll use std::move.
yucliu1
2017/05/16 21:54:58
Done.
|
media_drm_bridge_->ResetDeviceCredentials(reset_credentials_cb); |
} |