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

Unified Diff: chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added Unit Tests Created 5 years, 1 month 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/ui/webui/media_router/media_router_webui_message_handler.cc
diff --git a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc
index 9c9092ec8a6cba272760df5e17922870690fdfb4..bd1c280bcec88b4152191d2233bf2b7818b24c36 100644
--- a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc
+++ b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc
@@ -27,6 +27,7 @@ const char kRequestInitialData[] = "requestInitialData";
const char kCreateRoute[] = "requestRoute";
const char kActOnIssue[] = "actOnIssue";
const char kCloseRoute[] = "closeRoute";
+const char kJoinRoute[] = "joinRoute";
const char kCloseDialog[] = "closeDialog";
const char kReportSinkCount[] = "reportSinkCount";
@@ -179,11 +180,15 @@ void MediaRouterWebUIMessageHandler::UpdateSinks(
}
void MediaRouterWebUIMessageHandler::UpdateRoutes(
- const std::vector<MediaRoute>& routes) {
- DVLOG(2) << "UpdateRoutes";
+ const std::vector<MediaRoute>& routes,
+ const std::vector<MediaRoute>& joinable_routes) {
scoped_ptr<base::ListValue> routes_val(RoutesToValue(routes,
media_router_ui_->GetRouteProviderExtensionId()));
- web_ui()->CallJavascriptFunction(kSetRouteList, *routes_val);
+ scoped_ptr<base::ListValue> joinable_routes_val(
+ RoutesToValue(joinable_routes,
+ media_router_ui_->GetRouteProviderExtensionId()));
+ web_ui()->CallJavascriptFunction(
+ kSetRouteList, *routes_val, *joinable_routes_val);
}
void MediaRouterWebUIMessageHandler::UpdateCastModes(
@@ -249,6 +254,10 @@ void MediaRouterWebUIMessageHandler::RegisterMessages() {
base::Bind(&MediaRouterWebUIMessageHandler::OnCloseRoute,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
+ kJoinRoute,
+ base::Bind(&MediaRouterWebUIMessageHandler::OnJoinRoute,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
kCloseDialog,
base::Bind(&MediaRouterWebUIMessageHandler::OnCloseDialog,
base::Unretained(this)));
@@ -274,6 +283,12 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData(
media_router_ui_->GetRouteProviderExtensionId()));
initial_data.Set("routes", routes.release());
+
+ scoped_ptr<base::ListValue> joinable_routes(
+ RoutesToValue(media_router_ui_->joinable_routes(),
+ media_router_ui_->GetRouteProviderExtensionId()));
+ initial_data.Set("joinableRoutes", joinable_routes.release());
+
const std::set<MediaCastMode> cast_modes = media_router_ui_->cast_modes();
scoped_ptr<base::ListValue> cast_modes_list(
CastModesToValue(cast_modes, media_router_ui_->GetFrameURLHost()));
@@ -360,8 +375,21 @@ void MediaRouterWebUIMessageHandler::OnActOnIssue(
media_router_ui_->ClearIssue(issue_id);
}
-void MediaRouterWebUIMessageHandler::OnCloseRoute(
- const base::ListValue* args) {
+void MediaRouterWebUIMessageHandler::OnJoinRoute(const base::ListValue* args) {
+ DVLOG(1) << "OnJoinRoute";
+ const base::DictionaryValue* args_dict = nullptr;
+ std::string route_id;
+ std::string sink_id;
+ if (!args->GetDictionary(0, &args_dict) ||
+ !args_dict->GetString("sinkId", &sink_id) ||
+ !args_dict->GetString("routeId", &route_id)) {
+ DVLOG(1) << "Unable to extract args.";
+ return;
+ }
+ media_router_ui_->JoinRoute(sink_id, route_id);
imcheng 2015/11/19 18:55:08 Do we need to check HasPendingRouteRequest() simil
matt.boetger 2015/11/24 19:45:24 Done.
+}
+
+void MediaRouterWebUIMessageHandler::OnCloseRoute(const base::ListValue* args) {
DVLOG(1) << "OnCloseRoute";
const base::DictionaryValue* args_dict = nullptr;
std::string route_id;

Powered by Google App Engine
This is Rietveld 408576698