Chromium Code Reviews| 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 6cb115dc827082b3932c6c3664ecf25fc08ee7b1..2c9d684b765d85dfe2d49f02b80ea918e3094404 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 |
| @@ -59,12 +59,14 @@ const char kReportSelectedCastMode[] = "reportSelectedCastMode"; |
| const char kReportSinkCount[] = "reportSinkCount"; |
| const char kReportTimeToClickSink[] = "reportTimeToClickSink"; |
| const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose"; |
| +const char kSearchSinksAndCreateRoute[] = "searchSinksAndCreateRoute"; |
| const char kOnInitialDataReceived[] = "onInitialDataReceived"; |
| // JS function names. |
| const char kSetInitialData[] = "media_router.ui.setInitialData"; |
| const char kOnCreateRouteResponseReceived[] = |
| "media_router.ui.onCreateRouteResponseReceived"; |
| +const char kReceiveSearchResult[] = "media_router.ui.receiveSearchResult"; |
| const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData"; |
| const char kSetIssue[] = "media_router.ui.setIssue"; |
| const char kSetSinkListAndIdentity[] = "media_router.ui.setSinkListAndIdentity"; |
| @@ -286,6 +288,13 @@ void MediaRouterWebUIMessageHandler::OnCreateRouteResponseReceived( |
| } |
| } |
| +void MediaRouterWebUIMessageHandler::ReturnSearchResult( |
| + const std::string& sink_id) { |
| + DVLOG(2) << "ReturnSearchResult"; |
| + web_ui()->CallJavascriptFunction(kReceiveSearchResult, |
| + base::StringValue(sink_id)); |
| +} |
| + |
| void MediaRouterWebUIMessageHandler::UpdateIssue(const Issue* issue) { |
| DVLOG(2) << "UpdateIssue"; |
| web_ui()->CallJavascriptFunction(kSetIssue, |
| @@ -377,6 +386,10 @@ void MediaRouterWebUIMessageHandler::RegisterMessages() { |
| &MediaRouterWebUIMessageHandler::OnReportTimeToInitialActionClose, |
| base::Unretained(this))); |
| web_ui()->RegisterMessageCallback( |
| + kSearchSinksAndCreateRoute, |
| + base::Bind(&MediaRouterWebUIMessageHandler::OnSearchSinksAndCreateRoute, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback( |
| kOnInitialDataReceived, |
| base::Bind(&MediaRouterWebUIMessageHandler::OnInitialDataReceived, |
| base::Unretained(this))); |
| @@ -729,6 +742,39 @@ void MediaRouterWebUIMessageHandler::OnReportTimeToInitialActionClose( |
| base::TimeDelta::FromMillisecondsD(time_to_close)); |
| } |
| +void MediaRouterWebUIMessageHandler::OnSearchSinksAndCreateRoute( |
| + const base::ListValue* args) { |
| + DVLOG(1) << "OnSearchSinksAndCreateRoute"; |
| + const base::DictionaryValue* args_dict = nullptr; |
| + std::string sink_id; |
| + std::string search_criteria; |
| + std::string domain; |
| + int cast_mode_num = -1; |
| + if (!args->GetDictionary(0, &args_dict) || |
| + !args_dict->GetString("sinkId", &sink_id) || |
| + !args_dict->GetString("searchCriteria", &search_criteria) || |
| + !args_dict->GetString("domain", &domain) || |
| + !args_dict->GetInteger("selectedCastMode", &cast_mode_num)) { |
| + DVLOG(1) << "Unable to extract args"; |
| + return; |
| + } |
| + |
| + if (search_criteria.empty()) { |
| + DVLOG(1) << "Media Router UI did not provide valid search criteria. " |
| + "Aborting."; |
|
apacible
2016/04/06 21:27:02
return;
btolsch
2016/04/08 09:31:25
Done.
|
| + } |
| + |
| + if (!IsValidCastModeNum(cast_mode_num)) { |
| + DVLOG(1) << "Invalid cast mode: " << cast_mode_num << ". Aborting."; |
| + return; |
| + } |
| + |
| + // TODO(btolsch): Check result and add an issue if it failed. |
| + media_router_ui_->SearchSinksAndCreateRoute( |
| + sink_id, search_criteria, domain, |
| + static_cast<MediaCastMode>(cast_mode_num)); |
| +} |
| + |
| void MediaRouterWebUIMessageHandler::OnInitialDataReceived( |
| const base::ListValue* args) { |
| DVLOG(1) << "OnInitialDataReceived"; |