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

Unified Diff: chrome/browser/media/router/media_router_mojo_impl.cc

Issue 1173753003: [Media Router] Implement JoinRoute + update CreateRoute API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/media_router_mojo_impl.cc
diff --git a/chrome/browser/media/router/media_router_mojo_impl.cc b/chrome/browser/media/router/media_router_mojo_impl.cc
index c65700d7299ee86a1b69def1d91ac76144301318..ef66a47f78ce1c480d0ec4a4422b05747a6dc11f 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/media_router_mojo_impl.cc
@@ -22,12 +22,11 @@
namespace media_router {
namespace {
-// Converts the callback result of calling Mojo CreateRoute() into a local
-// callback.
-void CreateRouteFinished(const MediaSink::Id& sink_id,
- const MediaRouteResponseCallback& callback,
- interfaces::MediaRoutePtr media_route,
- const mojo::String& error_text) {
+// Converts the callback result of calling Mojo CreateRoute()/JoinRoute()
+// into a local callback.
+void RouteResponseReceived(const MediaRouteResponseCallback& callback,
+ interfaces::MediaRoutePtr media_route,
+ const mojo::String& error_text) {
if (media_route.is_null()) {
// An error occurred.
DCHECK(!error_text.is_null());
@@ -160,11 +159,38 @@ void MediaRouterMojoImpl::OnRoutesUpdated(
void MediaRouterMojoImpl::CreateRoute(
const MediaSource::Id& source_id,
const MediaSink::Id& sink_id,
+ const GURL& origin,
+ int tab_id,
const MediaRouteResponseCallback& callback) {
DCHECK(thread_checker_.CalledOnValidThread());
- RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoCreateRoute,
- base::Unretained(this), source_id, sink_id, callback));
+ if (!origin.is_empty() && !origin.is_valid()) {
+ DVLOG_WITH_INSTANCE(1) << "Invalid origin: " << origin;
+ callback.Run(nullptr, "Invalid origin");
+ return;
+ }
+ RunOrDefer(base::Bind(
+ &MediaRouterMojoImpl::DoCreateRoute, base::Unretained(this), source_id,
+ sink_id, origin.is_empty() ? "" : origin.spec(), tab_id, callback));
+}
+
+void MediaRouterMojoImpl::JoinRoute(
+ const MediaSource::Id& source_id,
+ const std::string& presentation_id,
+ const GURL& origin,
+ int tab_id,
+ const MediaRouteResponseCallback& callback) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ if (!origin.is_empty() && !origin.is_valid()) {
+ DVLOG_WITH_INSTANCE(1) << "Invalid origin: " << origin;
+ callback.Run(nullptr, "Invalid origin");
+ return;
+ }
+ RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoJoinRoute,
+ base::Unretained(this), source_id, presentation_id,
+ origin.is_empty() ? "" : origin.spec(), tab_id,
+ callback));
}
void MediaRouterMojoImpl::CloseRoute(const MediaRoute::Id& route_id) {
@@ -270,47 +296,64 @@ void MediaRouterMojoImpl::RemoveIssuesObserver(IssuesObserver* observer) {
void MediaRouterMojoImpl::DoCreateRoute(
const MediaSource::Id& source_id,
const MediaSink::Id& sink_id,
+ const std::string& origin,
+ int tab_id,
+ const MediaRouteResponseCallback& callback) {
+ std::string presentation_id(base::GenerateGUID());
mark a. foltz 2015/06/10 23:18:51 I feel like this should have a prefix like "mr-" t
imcheng (use chromium acct) 2015/06/11 22:49:12 Yes we should have mr_ per the Start + Join doc.
+ DVLOG_WITH_INSTANCE(1) << "DoCreateRoute " << source_id << "=>" << sink_id
+ << ", presentation ID: " << presentation_id;
+ mojo_media_router_->CreateRoute(source_id, sink_id, presentation_id, origin,
+ tab_id,
+ base::Bind(&RouteResponseReceived, callback));
+}
+
+void MediaRouterMojoImpl::DoJoinRoute(
+ const MediaSource::Id& source_id,
+ const std::string& presentation_id,
+ const std::string& origin,
+ int tab_id,
const MediaRouteResponseCallback& callback) {
- DVLOG_WITH_INSTANCE(1) << "CreateRoute " << source_id << "=>" << sink_id;
- mojo_media_router_->CreateRoute(
- source_id, sink_id, base::Bind(&CreateRouteFinished, sink_id, callback));
+ DVLOG_WITH_INSTANCE(1) << "DoJoinRoute " << source_id
+ << ", presentation ID: " << presentation_id;
+ mojo_media_router_->JoinRoute(source_id, presentation_id, origin, tab_id,
+ base::Bind(&RouteResponseReceived, callback));
}
void MediaRouterMojoImpl::DoCloseRoute(const MediaRoute::Id& route_id) {
- DVLOG_WITH_INSTANCE(1) << "CloseRoute " << route_id;
+ DVLOG_WITH_INSTANCE(1) << "DoCloseRoute " << route_id;
mojo_media_router_->CloseRoute(route_id);
}
void MediaRouterMojoImpl::DoPostMessage(const MediaRoute::Id& route_id,
const std::string& message) {
- DVLOG_WITH_INSTANCE(1) << "PostMessage " << route_id;
+ DVLOG_WITH_INSTANCE(1) << "DoPostMessage " << route_id;
mojo_media_router_->PostMessage(route_id, message);
}
void MediaRouterMojoImpl::DoClearIssue(const Issue::Id& issue_id) {
- DVLOG_WITH_INSTANCE(1) << "ClearIssue " << issue_id;
+ DVLOG_WITH_INSTANCE(1) << "DoClearIssue " << issue_id;
mojo_media_router_->ClearIssue(issue_id);
}
void MediaRouterMojoImpl::DoStartObservingMediaSinks(
- const std::string& source_id) {
- DVLOG_WITH_INSTANCE(1) << "StartObservingMediaSinks: " << source_id;
+ const MediaSource::Id& source_id) {
+ DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source_id;
mojo_media_router_->StartObservingMediaSinks(source_id);
}
void MediaRouterMojoImpl::DoStopObservingMediaSinks(
- const std::string& source_id) {
- DVLOG_WITH_INSTANCE(1) << "StopObservingMediaSinks: " << source_id;
+ const MediaSource::Id& source_id) {
+ DVLOG_WITH_INSTANCE(1) << "DoStopObservingMediaSinks: " << source_id;
mojo_media_router_->StopObservingMediaSinks(source_id);
}
void MediaRouterMojoImpl::DoStartObservingMediaRoutes() {
- DVLOG_WITH_INSTANCE(1) << "StartObservingMediaRoutes";
+ DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaRoutes";
mojo_media_router_->StartObservingMediaRoutes();
}
void MediaRouterMojoImpl::DoStopObservingMediaRoutes() {
- DVLOG_WITH_INSTANCE(1) << "StopObservingMediaRoutes";
+ DVLOG_WITH_INSTANCE(1) << "DoStopObservingMediaRoutes";
mojo_media_router_->StopObservingMediaRoutes();
}

Powered by Google App Engine
This is Rietveld 408576698