Chromium Code Reviews| 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() { |