| 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()));
|
|
|