| Index: chrome/browser/media/router/discovery/dial/dial_media_sink_service_proxy.cc
|
| diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service_proxy.cc b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_proxy.cc
|
| index 10801e62a22990df9f86b6cd014d01a1e0c52461..a8e00a70d0e7b49dad5f2b805303071ed8a4c40c 100644
|
| --- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service_proxy.cc
|
| +++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_proxy.cc
|
| @@ -14,7 +14,7 @@ namespace media_router {
|
| DialMediaSinkServiceProxy::DialMediaSinkServiceProxy(
|
| const MediaSinkService::OnSinksDiscoveredCallback& callback,
|
| content::BrowserContext* context)
|
| - : MediaSinkService(callback) {
|
| + : MediaSinkService(callback), observer_(nullptr) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| auto* profile = Profile::FromBrowserContext(context);
|
| request_context_ = profile->GetRequestContext();
|
| @@ -39,6 +39,21 @@ void DialMediaSinkServiceProxy::Stop() {
|
| base::Bind(&DialMediaSinkServiceProxy::StopOnIOThread, this));
|
| }
|
|
|
| +void DialMediaSinkServiceProxy::AddObserver(Observer* observer) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(observer);
|
| + observer_ = observer;
|
| +}
|
| +
|
| +void DialMediaSinkServiceProxy::RemoveObserver(Observer* observer) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(observer);
|
| + if (dial_media_sink_service_)
|
| + dial_media_sink_service_->RemoveObserver(observer);
|
| +
|
| + observer_ = nullptr;
|
| +}
|
| +
|
| void DialMediaSinkServiceProxy::SetDialMediaSinkServiceForTest(
|
| std::unique_ptr<DialMediaSinkServiceImpl> dial_media_sink_service) {
|
| DCHECK(dial_media_sink_service);
|
| @@ -54,6 +69,8 @@ void DialMediaSinkServiceProxy::StartOnIOThread() {
|
| base::Bind(&DialMediaSinkServiceProxy::OnSinksDiscoveredOnIOThread,
|
| this),
|
| request_context_.get());
|
| + if (observer_)
|
| + dial_media_sink_service_->AddObserver(observer_);
|
| }
|
|
|
| dial_media_sink_service_->Start();
|
|
|