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 fa4195ad3c9cafb55bda1672a0c2a1af860e0b08..c864930e70af0e5ff97f2ee4cfcf1c3fdeef4c0c 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; |
@@ -154,24 +154,13 @@ 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"; |
+ // |this| should be destroyed on |task_runner_|. |
+ DCHECK(task_runner_->BelongsToCurrentThread()); |
gunsch
2015/10/28 20:51:01
It seems a little awkward to toss out thread_check
xhwang
2015/10/29 00:17:28
As discussed offline (thanks!), using ReleaseSoon
|
} |
BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const { |
@@ -246,6 +235,11 @@ void BrowserCdmCastUi::RemoveSession( |
return nullptr; |
} |
+void BrowserCdmCastUi::DeleteOnCorrectThread() const { |
+ // Always destroy |this| on |task_runner_|. |
+ task_runner_->DeleteSoon(FROM_HERE, this); |
+} |
+ |
// A default empty implementation for subclasses that don't need to provide |
// any key system specific initialization. |
void BrowserCdmCast::InitializeInternal() { |