| 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;
|
|
|