Index: chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
index e101f47c7322a3760f03919c4094bc2c294644f4..cd45e11211d0514655ddf3d7b15847a8b36d8470 100644 |
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
@@ -28,6 +28,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/sessions/session_tab_helper.h" |
#include "chrome/common/media_router/media_source_helper.h" |
+#include "chrome/common/media_router/mojo/media_router.mojom.h" |
#include "chrome/common/media_router/route_message.h" |
#include "content/public/browser/browser_thread.h" |
#include "extensions/browser/process_manager.h" |
@@ -1130,4 +1131,44 @@ void MediaRouterMojoImpl::OnMediaControllerCreated( |
MediaRouterMojoMetrics::RecordMediaRouteControllerCreationResult(success); |
} |
+void MediaRouterMojoImpl::RegisterRemotingSource( |
imcheng
2017/06/22 01:13:27
It seems this logic could actually go into MediaRo
xjz
2017/06/23 19:02:41
Done.
|
+ int32_t tab_id, |
+ CastRemotingConnector* remoting_source) { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ DVLOG_WITH_INSTANCE(1) << "RegisterRemotingSource " << tab_id; |
+ |
+ auto it = remoting_sources_.find(tab_id); |
+ if (it != remoting_sources_.end()) { |
+ DCHECK(remoting_source == it->second); |
+ return; |
+ } |
+ remoting_sources_.emplace(tab_id, std::move(remoting_source)); |
+} |
+ |
+void MediaRouterMojoImpl::UnRegisterRemotingSource( |
+ int32_t tab_id, |
+ CastRemotingConnector* remoting_source) { |
imcheng
2017/06/22 01:13:27
I'm not sure if you need to pass in remoting_sourc
xjz
2017/06/23 19:02:41
Removed.
|
+ auto it = remoting_sources_.find(tab_id); |
+ DCHECK(it != remoting_sources_.end()); |
+ DCHECK(it->second == remoting_source); |
+ remoting_sources_.erase(it); |
+} |
+ |
+void MediaRouterMojoImpl::OnMediaRemoterCreated( |
+ int32_t tab_id, |
+ media::mojom::MirrorServiceRemoterPtr remoter, |
+ media::mojom::MirrorServiceRemotingSourceRequest source_request) { |
+ DVLOG_WITH_INSTANCE(1) << __func__ << ": tab_id = " << tab_id; |
+ |
+ auto it = remoting_sources_.find(tab_id); |
+ if (it == remoting_sources_.end()) { |
+ LOG(WARNING) << __func__ |
+ << ": No registered remoting source for tab_id = " << tab_id; |
+ return; |
+ } |
+ |
+ CastRemotingConnector* connector = it->second; |
+ connector->ConnectToService(std::move(source_request), std::move(remoter)); |
+} |
+ |
} // namespace media_router |