Chromium Code Reviews| Index: chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc |
| diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc |
| index 1ad648bc2b645d98e5b9983a68b5b54c95ebff3f..7fe116ea931ac98cd3083114cc6e0b428c7241e9 100644 |
| --- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc |
| +++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc |
| @@ -8,7 +8,6 @@ |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/common/media_router/discovery/media_sink_internal.h" |
| #include "components/cast_channel/cast_socket_service.h" |
| -#include "components/cast_channel/cast_socket_service_factory.h" |
| #include "components/net_log/chrome_net_log.h" |
| #include "content/public/common/content_client.h" |
| #include "net/base/host_port_pair.h" |
| @@ -16,8 +15,6 @@ |
| namespace { |
| -constexpr char kObserverId[] = "browser_observer_id"; |
| - |
| enum ErrorType { |
| NONE, |
| NOT_CAST_DEVICE, |
| @@ -92,8 +89,7 @@ CastMediaSinkService::CastMediaSinkService( |
| content::BrowserContext* browser_context) |
| : MediaSinkServiceBase(callback) { |
| DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
| - cast_socket_service_ = cast_channel::CastSocketServiceFactory::GetInstance() |
| - ->GetForBrowserContext(browser_context); |
| + cast_socket_service_ = cast_channel::CastSocketService::GetInstance(); |
|
imcheng
2017/07/11 01:31:15
Can this be moved into the initializer block, and
zhaobin
2017/07/12 21:58:08
Done.
|
| DCHECK(cast_socket_service_); |
| } |
| @@ -169,17 +165,14 @@ void CastMediaSinkService::OnDnsSdEvent( |
| void CastMediaSinkService::OpenChannelOnIOThread( |
| const DnsSdService& service, |
| const net::IPEndPoint& ip_endpoint) { |
| - auto* observer = cast_socket_service_->GetObserver(kObserverId); |
| - if (!observer) { |
| - observer = new CastSocketObserver(); |
| - cast_socket_service_->AddObserver(kObserverId, base::WrapUnique(observer)); |
| - } |
| + if (!observer_) |
| + observer_.reset(new CastSocketObserver()); |
| cast_socket_service_->OpenSocket( |
| ip_endpoint, g_browser_process->net_log(), |
| base::Bind(&CastMediaSinkService::OnChannelOpenedOnIOThread, this, |
| service), |
| - observer); |
| + observer_.get()); |
| } |
| void CastMediaSinkService::OnChannelOpenedOnIOThread( |
| @@ -228,7 +221,9 @@ void CastMediaSinkService::OnChannelOpenedOnUIThread( |
| } |
| CastMediaSinkService::CastSocketObserver::CastSocketObserver() {} |
| -CastMediaSinkService::CastSocketObserver::~CastSocketObserver() {} |
| +CastMediaSinkService::CastSocketObserver::~CastSocketObserver() { |
| + cast_channel::CastSocketService::GetInstance()->RemoveObserver(this); |
| +} |
| void CastMediaSinkService::CastSocketObserver::OnError( |
| const cast_channel::CastSocket& socket, |