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

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: Compile fix again x2 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 4824c69b1bf99829e1ba3d89ed4e4b0188b7e916..8ba7ef10d724b8c610721a71ea591531851ddb5b 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/media_router_mojo_impl.cc
@@ -8,6 +8,7 @@
#include "base/guid.h"
#include "base/logging.h"
#include "base/observer_list.h"
+#include "base/strings/stringprintf.h"
#include "chrome/browser/media/router/media_router_mojo_impl_factory.h"
#include "chrome/browser/media/router/media_router_type_converters.h"
#include "chrome/browser/media/router/media_routes_observer.h"
@@ -22,12 +23,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 +160,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_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_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) {
@@ -272,14 +299,32 @@ 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("mr_");
+ presentation_id += base::GenerateGUID();
+ 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);
}
@@ -292,29 +337,29 @@ void MediaRouterMojoImpl::DoSendSessionMessage(
}
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();
}
« no previous file with comments | « chrome/browser/media/router/media_router_mojo_impl.h ('k') | chrome/browser/media/router/media_router_mojo_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698