Index: chromecast/media/cdm/browser_cdm_cast.cc |
diff --git a/chromecast/media/cdm/browser_cdm_cast.cc b/chromecast/media/cdm/browser_cdm_cast.cc |
index 92a002201d23bfbafec8c627435ea3f8a3b66ead..8d8ed64859e575c462ee244df0c1aa7734e8bb26 100644 |
--- a/chromecast/media/cdm/browser_cdm_cast.cc |
+++ b/chromecast/media/cdm/browser_cdm_cast.cc |
@@ -89,7 +89,7 @@ void BrowserCdmCast::Initialize( |
const ::media::SessionExpirationUpdateCB& session_expiration_update_cb) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- player_tracker_impl_.reset(new ::media::PlayerTrackerImpl); |
+ player_tracker_impl_.reset(new ::media::PlayerTrackerImpl()); |
session_message_cb_ = session_message_cb; |
session_closed_cb_ = session_closed_cb; |
@@ -152,24 +152,16 @@ void BrowserCdmCast::OnSessionKeysChange( |
base::Unretained(browser_cdm_cast_.get()), ##__VA_ARGS__)) |
BrowserCdmCastUi::BrowserCdmCastUi( |
- scoped_ptr<BrowserCdmCast> browser_cdm_cast, |
+ const scoped_refptr<BrowserCdmCast>& browser_cdm_cast, |
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) |
- : browser_cdm_cast_(browser_cdm_cast.Pass()), task_runner_(task_runner) { |
-} |
+ : browser_cdm_cast_(browser_cdm_cast), task_runner_(task_runner) {} |
BrowserCdmCastUi::~BrowserCdmCastUi() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- task_runner_->DeleteSoon(FROM_HERE, browser_cdm_cast_.release()); |
-} |
- |
-int BrowserCdmCastUi::RegisterPlayer(const base::Closure& new_key_cb, |
- const base::Closure& cdm_unset_cb) { |
- NOTREACHED() << "RegisterPlayer should be called on BrowserCdmCast"; |
- return -1; |
-} |
- |
-void BrowserCdmCastUi::UnregisterPlayer(int registration_id) { |
- NOTREACHED() << "UnregisterPlayer should be called on BrowserCdmCast"; |
+ browser_cdm_cast_->AddRef(); |
+ BrowserCdmCast* raw_cdm = browser_cdm_cast_.get(); |
+ browser_cdm_cast_ = nullptr; |
+ task_runner_->ReleaseSoon(FROM_HERE, raw_cdm); |
} |
BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const { |