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

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

Issue 1273423004: Shows a launch spinner next to a sink once it is selected to create a route. The launch spinner sur… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Kevin's comments Created 5 years, 4 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/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 512ae99f8fa9edd70c009c6c17a91333ea5fad5c..bc93b474ea2bd1bcbe6c3c3a12b43b5fbc6c6ecf 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
@@ -26,7 +26,8 @@ const char kCloseDialog[] = "closeDialog";
// JS function names.
const char kSetInitialData[] = "media_router.ui.setInitialData";
-const char kAddRoute[] = "media_router.ui.addRoute";
+const char kOnCreateRouteResponseReceived[] =
+ "media_router.ui.onCreateRouteResponseReceived";
const char kSetIssue[] = "media_router.ui.setIssue";
const char kSetSinkList[] = "media_router.ui.setSinkList";
const char kSetRouteList[] = "media_router.ui.setRouteList";
@@ -34,7 +35,8 @@ const char kSetCastModeList[] = "media_router.ui.setCastModeList";
const char kWindowOpen[] = "window.open";
scoped_ptr<base::ListValue> SinksToValue(
- const std::vector<MediaSinkWithCastModes>& sinks) {
+ const std::vector<MediaSinkWithCastModes>& sinks,
+ const std::set<MediaSink::Id>& sink_ids_in_launch) {
scoped_ptr<base::ListValue> value(new base::ListValue);
for (const MediaSinkWithCastModes& sink_with_cast_modes : sinks) {
@@ -43,6 +45,8 @@ scoped_ptr<base::ListValue> SinksToValue(
const MediaSink& sink = sink_with_cast_modes.sink;
sink_val->SetString("id", sink.id());
sink_val->SetString("name", sink.name());
+ sink_val->SetBoolean("isLaunching", sink_ids_in_launch.find(sink.id()) !=
+ sink_ids_in_launch.end());
scoped_ptr<base::ListValue> cast_modes_val(new base::ListValue);
for (MediaCastMode cast_mode : sink_with_cast_modes.cast_modes)
@@ -151,7 +155,8 @@ MediaRouterWebUIMessageHandler::~MediaRouterWebUIMessageHandler() {
void MediaRouterWebUIMessageHandler::UpdateSinks(
const std::vector<MediaSinkWithCastModes>& sinks) {
DVLOG(2) << "UpdateSinks";
- scoped_ptr<base::ListValue> sinks_val(SinksToValue(sinks));
+ scoped_ptr<base::ListValue> sinks_val(
+ SinksToValue(sinks, GetMediaRouterUI()->GetSinkIdsInLaunch()));
web_ui()->CallJavascriptFunction(kSetSinkList, *sinks_val);
}
@@ -171,10 +176,19 @@ void MediaRouterWebUIMessageHandler::UpdateCastModes(
web_ui()->CallJavascriptFunction(kSetCastModeList, *cast_modes_val);
}
-void MediaRouterWebUIMessageHandler::AddRoute(const MediaRoute& route) {
- DVLOG(2) << "AddRoute";
- scoped_ptr<base::DictionaryValue> route_value(RouteToValue(route));
- web_ui()->CallJavascriptFunction(kAddRoute, *route_value);
+void MediaRouterWebUIMessageHandler::OnCreateRouteResponseReceived(
+ const MediaSink::Id& sink_id,
+ const MediaRoute* route) {
+ DVLOG(2) << "OnCreateRouteResponseReceived";
+ if (route) {
+ scoped_ptr<base::DictionaryValue> route_value(RouteToValue(*route));
+ web_ui()->CallJavascriptFunction(kOnCreateRouteResponseReceived,
+ base::StringValue(sink_id), *route_value);
+ } else {
+ web_ui()->CallJavascriptFunction(kOnCreateRouteResponseReceived,
+ base::StringValue(sink_id),
+ *base::Value::CreateNullValue());
+ }
}
void MediaRouterWebUIMessageHandler::UpdateIssue(const Issue* issue) {
@@ -222,7 +236,8 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData(
initial_data.SetString("headerTextTooltip",
media_router_ui->GetInitialHeaderTextTooltip());
- scoped_ptr<base::ListValue> sinks(SinksToValue(media_router_ui->sinks()));
+ scoped_ptr<base::ListValue> sinks(SinksToValue(
+ media_router_ui->sinks(), media_router_ui->GetSinkIdsInLaunch()));
initial_data.Set("sinks", sinks.release());
scoped_ptr<base::ListValue> routes(RoutesToValue(media_router_ui->routes()));

Powered by Google App Engine
This is Rietveld 408576698