Index: content/browser/media/cdm/browser_cdm_manager.cc |
diff --git a/content/browser/media/cdm/browser_cdm_manager.cc b/content/browser/media/cdm/browser_cdm_manager.cc |
index a71bfafbd5f64f6a3726f9a81e08fed301183ae7..31993b6a36331ee9f6b4fc37107a947f2641fadb 100644 |
--- a/content/browser/media/cdm/browser_cdm_manager.cc |
+++ b/content/browser/media/cdm/browser_cdm_manager.cc |
@@ -155,19 +155,18 @@ void BrowserCdmManager::OnCreateSession( |
return; |
} |
- base::Closure cancel_callback; |
- GetContentClient()->browser()->RequestProtectedMediaIdentifierPermission( |
+ GetContentClient()->browser()->RequestPermission( |
+ content::PERMISSION_PROTECTED_MEDIA, |
web_contents_, |
+ -1, |
iter->second, |
+ true, |
base::Bind(&BrowserCdmManager::CreateSessionIfPermitted, |
weak_ptr_factory_.GetWeakPtr(), |
cdm_id, |
session_id, |
mime_type, |
- init_data), |
- &cancel_callback); |
- if (!cancel_callback.is_null()) |
- cdm_cancel_permision_map_[cdm_id] = cancel_callback; |
+ init_data)); |
} |
void BrowserCdmManager::OnUpdateSession( |
@@ -212,9 +211,18 @@ void BrowserCdmManager::OnDestroyCdm(int cdm_id) { |
} |
void BrowserCdmManager::CancelAllPendingSessionCreations(int cdm_id) { |
- if (cdm_cancel_permision_map_.count(cdm_id)) { |
- cdm_cancel_permision_map_[cdm_id].Run(); |
- cdm_cancel_permision_map_.erase(cdm_id); |
+ if (cdm_cancel_permision_set_.find(cdm_id) |
+ != cdm_cancel_permision_set_.end()) { |
+ std::map<int, GURL>::const_iterator iter = |
+ cdm_security_origin_map_.find(cdm_id); |
+ if (iter == cdm_security_origin_map_.end()) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ GetContentClient()->browser()->CancelPermissionRequest( |
+ content::PERMISSION_PROTECTED_MEDIA, |
+ web_contents_, -1, iter->second); |
+ cdm_cancel_permision_set_.erase(cdm_id); |
} |
} |
@@ -249,7 +257,7 @@ void BrowserCdmManager::RemoveCdm(int cdm_id) { |
// in unprefixed EME implementation. |
cdm_map_.erase(cdm_id); |
cdm_security_origin_map_.erase(cdm_id); |
- cdm_cancel_permision_map_.erase(cdm_id); |
+ cdm_cancel_permision_set_.erase(cdm_id); |
} |
int BrowserCdmManager::RoutingID() { |
@@ -266,7 +274,7 @@ void BrowserCdmManager::CreateSessionIfPermitted( |
const std::string& content_type, |
const std::vector<uint8>& init_data, |
bool permitted) { |
- cdm_cancel_permision_map_.erase(cdm_id); |
+ cdm_cancel_permision_set_.erase(cdm_id); |
if (!permitted) { |
OnSessionError(cdm_id, session_id, MediaKeys::kUnknownError, 0); |
return; |