Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: chrome/browser/media/router/mojo/media_router_mojo_impl.cc

Issue 2965843002: [Media Router] Support dual discovery (Closed)
Patch Set: clean up and fix unit tests Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" 5 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 DCHECK(event_page_tracker_); 74 DCHECK(event_page_tracker_);
75 #if defined(OS_WIN) 75 #if defined(OS_WIN)
76 CanFirewallUseLocalPorts( 76 CanFirewallUseLocalPorts(
77 base::Bind(&MediaRouterMojoImpl::OnFirewallCheckComplete, 77 base::Bind(&MediaRouterMojoImpl::OnFirewallCheckComplete,
78 weak_factory_.GetWeakPtr())); 78 weak_factory_.GetWeakPtr()));
79 #endif 79 #endif
80 } 80 }
81 81
82 MediaRouterMojoImpl::~MediaRouterMojoImpl() { 82 MediaRouterMojoImpl::~MediaRouterMojoImpl() {
83 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 83 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
84 if (dial_media_sink_service_proxy_) 84 if (!dial_media_sink_service_proxy_)
85 dial_media_sink_service_proxy_->Stop(); 85 return;
86 dial_media_sink_service_proxy_->Stop();
87
88 if (!cast_media_sink_service_)
89 return;
90 dial_media_sink_service_proxy_->RemoveObserver(
91 cast_media_sink_service_.get());
86 } 92 }
87 93
88 // static 94 // static
89 void MediaRouterMojoImpl::BindToRequest( 95 void MediaRouterMojoImpl::BindToRequest(
90 const extensions::Extension* extension, 96 const extensions::Extension* extension,
91 content::BrowserContext* context, 97 content::BrowserContext* context,
92 const service_manager::BindSourceInfo& source_info, 98 const service_manager::BindSourceInfo& source_info,
93 mojom::MediaRouterRequest request) { 99 mojom::MediaRouterRequest request) {
94 MediaRouterMojoImpl* impl = static_cast<MediaRouterMojoImpl*>( 100 MediaRouterMojoImpl* impl = static_cast<MediaRouterMojoImpl*>(
95 MediaRouterFactory::GetApiForBrowserContext(context)); 101 MediaRouterFactory::GetApiForBrowserContext(context));
(...skipping 983 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 bool firewall_can_use_local_ports) { 1085 bool firewall_can_use_local_ports) {
1080 if (firewall_can_use_local_ports) 1086 if (firewall_can_use_local_ports)
1081 EnsureMdnsDiscoveryEnabled(); 1087 EnsureMdnsDiscoveryEnabled();
1082 } 1088 }
1083 #endif 1089 #endif
1084 1090
1085 void MediaRouterMojoImpl::StartDiscovery() { 1091 void MediaRouterMojoImpl::StartDiscovery() {
1086 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 1092 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
1087 DVLOG_WITH_INSTANCE(1) << "StartDiscovery"; 1093 DVLOG_WITH_INSTANCE(1) << "StartDiscovery";
1088 1094
1089 if (media_router::DialLocalDiscoveryEnabled()) {
1090 if (!dial_media_sink_service_proxy_) {
1091 dial_media_sink_service_proxy_ = new DialMediaSinkServiceProxy(
1092 base::Bind(&MediaRouterMojoImpl::ProvideSinks,
1093 weak_factory_.GetWeakPtr(), "dial"),
1094 context_);
1095 }
1096 dial_media_sink_service_proxy_->Start();
1097 }
1098
1099 if (media_router::CastDiscoveryEnabled()) { 1095 if (media_router::CastDiscoveryEnabled()) {
1100 if (!cast_media_sink_service_) { 1096 if (!cast_media_sink_service_) {
1101 cast_media_sink_service_ = new CastMediaSinkService( 1097 cast_media_sink_service_ = new CastMediaSinkService(
1102 base::Bind(&MediaRouterMojoImpl::ProvideSinks, 1098 base::Bind(&MediaRouterMojoImpl::ProvideSinks,
1103 weak_factory_.GetWeakPtr(), "cast"), 1099 weak_factory_.GetWeakPtr(), "cast"),
1104 context_); 1100 context_);
1105 } 1101 }
1106 cast_media_sink_service_->Start(); 1102 cast_media_sink_service_->Start();
1107 } 1103 }
1104
1105 if (media_router::DialLocalDiscoveryEnabled()) {
1106 if (!dial_media_sink_service_proxy_) {
1107 dial_media_sink_service_proxy_ = new DialMediaSinkServiceProxy(
1108 base::Bind(&MediaRouterMojoImpl::ProvideSinks,
1109 weak_factory_.GetWeakPtr(), "dial"),
1110 context_);
1111 // Add observer for dual discovery.
1112 if (cast_media_sink_service_) {
1113 dial_media_sink_service_proxy_->AddObserver(
1114 cast_media_sink_service_.get());
1115 }
1116 }
1117 dial_media_sink_service_proxy_->Start();
1118 }
1108 } 1119 }
1109 1120
1110 void MediaRouterMojoImpl::UpdateMediaSinks( 1121 void MediaRouterMojoImpl::UpdateMediaSinks(
1111 const MediaSource::Id& source_id) { 1122 const MediaSource::Id& source_id) {
1112 SetWakeReason(MediaRouteProviderWakeReason::UPDATE_MEDIA_SINKS); 1123 SetWakeReason(MediaRouteProviderWakeReason::UPDATE_MEDIA_SINKS);
1113 RunOrDefer(base::BindOnce(&MediaRouterMojoImpl::DoUpdateMediaSinks, 1124 RunOrDefer(base::BindOnce(&MediaRouterMojoImpl::DoUpdateMediaSinks,
1114 base::Unretained(this), source_id)); 1125 base::Unretained(this), source_id));
1115 } 1126 }
1116 1127
1117 void MediaRouterMojoImpl::DoUpdateMediaSinks( 1128 void MediaRouterMojoImpl::DoUpdateMediaSinks(
(...skipping 17 matching lines...) Expand all
1135 1146
1136 void MediaRouterMojoImpl::OnMediaControllerCreated( 1147 void MediaRouterMojoImpl::OnMediaControllerCreated(
1137 const MediaRoute::Id& route_id, 1148 const MediaRoute::Id& route_id,
1138 bool success) { 1149 bool success) {
1139 DVLOG_WITH_INSTANCE(1) << "OnMediaControllerCreated: " << route_id 1150 DVLOG_WITH_INSTANCE(1) << "OnMediaControllerCreated: " << route_id
1140 << (success ? " was successful." : " failed."); 1151 << (success ? " was successful." : " failed.");
1141 MediaRouterMojoMetrics::RecordMediaRouteControllerCreationResult(success); 1152 MediaRouterMojoMetrics::RecordMediaRouteControllerCreationResult(success);
1142 } 1153 }
1143 1154
1144 } // namespace media_router 1155 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698