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 9b537efe5ad534ea3a50c3094bbca51c94602648..b4da44a360259469ba5a3edda5a4c923271a8606 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 |
@@ -178,7 +178,8 @@ std::unique_ptr<base::DictionaryValue> RouteToValue( |
std::unique_ptr<base::ListValue> CastModesToValue( |
const CastModeSet& cast_modes, |
- const std::string& source_host) { |
+ const std::string& source_host, |
+ base::Optional<MediaCastMode> forced_cast_mode) { |
std::unique_ptr<base::ListValue> value(new base::ListValue); |
for (const MediaCastMode& cast_mode : cast_modes) { |
@@ -188,6 +189,8 @@ std::unique_ptr<base::ListValue> CastModesToValue( |
cast_mode_val->SetString( |
"description", MediaCastModeToDescription(cast_mode, source_host)); |
cast_mode_val->SetString("host", source_host); |
+ cast_mode_val->SetBoolean( |
+ "isForced", forced_cast_mode && forced_cast_mode == cast_mode); |
value->Append(std::move(cast_mode_val)); |
} |
@@ -275,10 +278,11 @@ void MediaRouterWebUIMessageHandler::UpdateRoutes( |
void MediaRouterWebUIMessageHandler::UpdateCastModes( |
const CastModeSet& cast_modes, |
- const std::string& source_host) { |
+ const std::string& source_host, |
+ base::Optional<MediaCastMode> forced_cast_mode) { |
DVLOG(2) << "UpdateCastModes"; |
std::unique_ptr<base::ListValue> cast_modes_val( |
- CastModesToValue(cast_modes, source_host)); |
+ CastModesToValue(cast_modes, source_host, forced_cast_mode)); |
web_ui()->CallJavascriptFunctionUnsafe(kSetCastModeList, *cast_modes_val); |
} |
@@ -485,7 +489,8 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData( |
const std::set<MediaCastMode> cast_modes = media_router_ui_->cast_modes(); |
std::unique_ptr<base::ListValue> cast_modes_list(CastModesToValue( |
- cast_modes, media_router_ui_->GetPresentationRequestSourceName())); |
+ cast_modes, media_router_ui_->GetPresentationRequestSourceName(), |
+ media_router_ui_->forced_cast_mode())); |
initial_data.Set("castModes", std::move(cast_modes_list)); |
// If the cast mode last chosen for the current origin is tab mirroring, |