| 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 7294ef40c4d78752c14987e4b71c9edc56024b3f..6ba327bdfb466c4980a2824a05b31ae20f398e6b 100644
|
| --- a/content/browser/media/cdm/browser_cdm_manager.cc
|
| +++ b/content/browser/media/cdm/browser_cdm_manager.cc
|
| @@ -19,7 +19,6 @@
|
| #include "content/public/browser/render_process_host.h"
|
| #include "content/public/browser/render_process_host_observer.h"
|
| #include "content/public/browser/web_contents.h"
|
| -#include "media/base/browser_cdm.h"
|
| #include "media/base/browser_cdm_factory.h"
|
| #include "media/base/cdm_promise.h"
|
| #include "media/base/limits.h"
|
| @@ -30,9 +29,7 @@
|
|
|
| namespace content {
|
|
|
| -using media::BrowserCdm;
|
| using media::MediaKeys;
|
| -using media::ScopedBrowserCdmPtr;
|
|
|
| namespace {
|
|
|
| @@ -222,10 +219,11 @@ bool BrowserCdmManager::OnMessageReceived(const IPC::Message& msg) {
|
| return handled;
|
| }
|
|
|
| -media::BrowserCdm* BrowserCdmManager::GetCdm(int render_frame_id,
|
| - int cdm_id) const {
|
| +scoped_refptr<MediaKeys> BrowserCdmManager::GetCdm(int render_frame_id,
|
| + int cdm_id) const {
|
| DCHECK(task_runner_->RunsTasksOnCurrentThread());
|
| - return cdm_map_.get(GetId(render_frame_id, cdm_id));
|
| + const auto& iter = cdm_map_.find(GetId(render_frame_id, cdm_id));
|
| + return iter == cdm_map_.end() ? nullptr : iter->second;
|
| }
|
|
|
| void BrowserCdmManager::RenderFrameDeleted(int render_frame_id) {
|
| @@ -264,20 +262,19 @@ void BrowserCdmManager::ResolvePromiseWithSession(
|
| void BrowserCdmManager::RejectPromise(int render_frame_id,
|
| int cdm_id,
|
| uint32_t promise_id,
|
| - media::MediaKeys::Exception exception,
|
| + MediaKeys::Exception exception,
|
| uint32_t system_code,
|
| const std::string& error_message) {
|
| Send(new CdmMsg_RejectPromise(render_frame_id, cdm_id, promise_id, exception,
|
| system_code, error_message));
|
| }
|
|
|
| -void BrowserCdmManager::OnSessionMessage(
|
| - int render_frame_id,
|
| - int cdm_id,
|
| - const std::string& session_id,
|
| - media::MediaKeys::MessageType message_type,
|
| - const std::vector<uint8>& message,
|
| - const GURL& legacy_destination_url) {
|
| +void BrowserCdmManager::OnSessionMessage(int render_frame_id,
|
| + int cdm_id,
|
| + const std::string& session_id,
|
| + MediaKeys::MessageType message_type,
|
| + const std::vector<uint8>& message,
|
| + const GURL& legacy_destination_url) {
|
| GURL verified_gurl = legacy_destination_url;
|
| if (!verified_gurl.is_valid() && !verified_gurl.is_empty()) {
|
| DLOG(WARNING) << "SessionMessage legacy_destination_url is invalid : "
|
| @@ -356,7 +353,7 @@ void BrowserCdmManager::OnSetServerCertificate(
|
| scoped_ptr<SimplePromise> promise(new SimplePromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
| @@ -414,7 +411,7 @@ void BrowserCdmManager::OnCreateSessionAndGenerateRequest(
|
| return;
|
| }
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| DLOG(WARNING) << "No CDM found for: " << render_frame_id << ", " << cdm_id;
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| @@ -439,7 +436,7 @@ void BrowserCdmManager::OnLoadSession(
|
| scoped_ptr<NewSessionPromise> promise(new NewSessionPromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| DLOG(WARNING) << "No CDM found for: " << render_frame_id << ", " << cdm_id;
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| @@ -463,7 +460,7 @@ void BrowserCdmManager::OnUpdateSession(int render_frame_id,
|
| scoped_ptr<SimplePromise> promise(new SimplePromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
| @@ -493,7 +490,7 @@ void BrowserCdmManager::OnCloseSession(int render_frame_id,
|
| scoped_ptr<SimplePromise> promise(new SimplePromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
| @@ -511,7 +508,7 @@ void BrowserCdmManager::OnRemoveSession(int render_frame_id,
|
| scoped_ptr<SimplePromise> promise(new SimplePromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
| @@ -542,7 +539,7 @@ void BrowserCdmManager::AddCdm(int render_frame_id,
|
| scoped_ptr<SimplePromise> promise(new SimplePromise(
|
| weak_ptr_factory_.GetWeakPtr(), render_frame_id, cdm_id, promise_id));
|
|
|
| - ScopedBrowserCdmPtr cdm(media::CreateBrowserCdm(
|
| + scoped_refptr<MediaKeys> cdm(media::CreateBrowserCdm(
|
| key_system, use_hw_secure_codecs,
|
| BROWSER_CDM_MANAGER_CB(OnSessionMessage),
|
| BROWSER_CDM_MANAGER_CB(OnSessionClosed),
|
| @@ -557,7 +554,7 @@ void BrowserCdmManager::AddCdm(int render_frame_id,
|
| }
|
|
|
| uint64 id = GetId(render_frame_id, cdm_id);
|
| - cdm_map_.add(id, cdm.Pass());
|
| + cdm_map_[id] = cdm;
|
| cdm_security_origin_map_[id] = security_origin;
|
| promise->resolve();
|
| }
|
| @@ -566,13 +563,13 @@ void BrowserCdmManager::RemoveAllCdmForFrame(int render_frame_id) {
|
| DCHECK(task_runner_->RunsTasksOnCurrentThread());
|
|
|
| std::vector<uint64> ids_to_remove;
|
| - for (CdmMap::iterator it = cdm_map_.begin(); it != cdm_map_.end(); ++it) {
|
| - if (IdBelongsToFrame(it->first, render_frame_id))
|
| - ids_to_remove.push_back(it->first);
|
| + for (const auto& entry : cdm_map_) {
|
| + if (IdBelongsToFrame(entry.first, render_frame_id))
|
| + ids_to_remove.push_back(entry.first);
|
| }
|
|
|
| - for (size_t i = 0; i < ids_to_remove.size(); ++i)
|
| - RemoveCdm(ids_to_remove[i]);
|
| + for (const auto& id_to_remove : ids_to_remove)
|
| + RemoveCdm(id_to_remove);
|
| }
|
|
|
| void BrowserCdmManager::RemoveCdm(uint64 id) {
|
| @@ -653,7 +650,7 @@ void BrowserCdmManager::CreateSessionAndGenerateRequestIfPermitted(
|
| return;
|
| }
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
| @@ -678,7 +675,7 @@ void BrowserCdmManager::LoadSessionIfPermitted(
|
| return;
|
| }
|
|
|
| - BrowserCdm* cdm = GetCdm(render_frame_id, cdm_id);
|
| + scoped_refptr<MediaKeys> cdm = GetCdm(render_frame_id, cdm_id);
|
| if (!cdm) {
|
| promise->reject(MediaKeys::INVALID_STATE_ERROR, 0, "CDM not found.");
|
| return;
|
|
|