| 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..022649b755f90a3e89e83184fc8367257c9af1b5 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,
|
| @@ -90,10 +87,9 @@ const char CastMediaSinkService::kCastServiceType[] = "_googlecast._tcp.local";
|
| CastMediaSinkService::CastMediaSinkService(
|
| const OnSinksDiscoveredCallback& callback,
|
| content::BrowserContext* browser_context)
|
| - : MediaSinkServiceBase(callback) {
|
| + : MediaSinkServiceBase(callback),
|
| + cast_socket_service_(cast_channel::CastSocketService::GetInstance()) {
|
| DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
| - cast_socket_service_ = cast_channel::CastSocketServiceFactory::GetInstance()
|
| - ->GetForBrowserContext(browser_context);
|
| 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,
|
|
|