Chromium Code Reviews| 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); |
| } |