OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle
r.h" | 5 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle
r.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 const char kReportInitialState[] = "reportInitialState"; | 55 const char kReportInitialState[] = "reportInitialState"; |
56 const char kReportNavigateToView[] = "reportNavigateToView"; | 56 const char kReportNavigateToView[] = "reportNavigateToView"; |
57 const char kReportRouteCreationOutcome[] = "reportRouteCreationOutcome"; | 57 const char kReportRouteCreationOutcome[] = "reportRouteCreationOutcome"; |
58 const char kReportRouteCreation[] = "reportRouteCreation"; | 58 const char kReportRouteCreation[] = "reportRouteCreation"; |
59 const char kReportSelectedCastMode[] = "reportSelectedCastMode"; | 59 const char kReportSelectedCastMode[] = "reportSelectedCastMode"; |
60 const char kReportSinkCount[] = "reportSinkCount"; | 60 const char kReportSinkCount[] = "reportSinkCount"; |
61 const char kReportTimeToClickSink[] = "reportTimeToClickSink"; | 61 const char kReportTimeToClickSink[] = "reportTimeToClickSink"; |
62 const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose"; | 62 const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose"; |
63 const char kSearchSinksAndCreateRoute[] = "searchSinksAndCreateRoute"; | 63 const char kSearchSinksAndCreateRoute[] = "searchSinksAndCreateRoute"; |
64 const char kOnInitialDataReceived[] = "onInitialDataReceived"; | 64 const char kOnInitialDataReceived[] = "onInitialDataReceived"; |
| 65 const char kOnRouteDetailsClosed[] = "onRouteDetailsClosed"; |
| 66 const char kOnRouteDetailsOpened[] = "onRouteDetailsOpened"; |
| 67 const char kPauseRoute[] = "pauseRoute"; |
| 68 const char kPlayRoute[] = "playRoute"; |
| 69 const char kSeekRoute[] = "seekRoute"; |
| 70 const char kSetRouteMute[] = "setRouteMute"; |
| 71 const char kSetRouteVolume[] = "setRouteVolume"; |
65 | 72 |
66 // JS function names. | 73 // JS function names. |
67 const char kSetInitialData[] = "media_router.ui.setInitialData"; | 74 const char kSetInitialData[] = "media_router.ui.setInitialData"; |
68 const char kOnCreateRouteResponseReceived[] = | 75 const char kOnCreateRouteResponseReceived[] = |
69 "media_router.ui.onCreateRouteResponseReceived"; | 76 "media_router.ui.onCreateRouteResponseReceived"; |
70 const char kReceiveSearchResult[] = "media_router.ui.receiveSearchResult"; | 77 const char kReceiveSearchResult[] = "media_router.ui.receiveSearchResult"; |
71 const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData"; | 78 const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData"; |
72 const char kSetIssue[] = "media_router.ui.setIssue"; | 79 const char kSetIssue[] = "media_router.ui.setIssue"; |
73 const char kSetSinkListAndIdentity[] = "media_router.ui.setSinkListAndIdentity"; | 80 const char kSetSinkListAndIdentity[] = "media_router.ui.setSinkListAndIdentity"; |
74 const char kSetRouteList[] = "media_router.ui.setRouteList"; | 81 const char kSetRouteList[] = "media_router.ui.setRouteList"; |
75 const char kSetCastModeList[] = "media_router.ui.setCastModeList"; | 82 const char kSetCastModeList[] = "media_router.ui.setCastModeList"; |
76 const char kUpdateMaxHeight[] = "media_router.ui.updateMaxHeight"; | 83 const char kUpdateMaxHeight[] = "media_router.ui.updateMaxHeight"; |
| 84 const char kUpdateRouteStatus[] = "media_router.ui.updateRouteStatus"; |
77 const char kWindowOpen[] = "window.open"; | 85 const char kWindowOpen[] = "window.open"; |
78 | 86 |
79 std::unique_ptr<base::DictionaryValue> SinksAndIdentityToValue( | 87 std::unique_ptr<base::DictionaryValue> SinksAndIdentityToValue( |
80 const std::vector<MediaSinkWithCastModes>& sinks, | 88 const std::vector<MediaSinkWithCastModes>& sinks, |
81 const AccountInfo& account_info) { | 89 const AccountInfo& account_info) { |
82 std::unique_ptr<base::DictionaryValue> sink_list_and_identity( | 90 std::unique_ptr<base::DictionaryValue> sink_list_and_identity( |
83 new base::DictionaryValue); | 91 new base::DictionaryValue); |
84 bool show_email = false; | 92 bool show_email = false; |
85 bool show_domain = false; | 93 bool show_domain = false; |
86 std::string user_domain; | 94 std::string user_domain; |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 web_ui()->CallJavascriptFunctionUnsafe(kSetIssue, | 317 web_ui()->CallJavascriptFunctionUnsafe(kSetIssue, |
310 *base::Value::CreateNullValue()); | 318 *base::Value::CreateNullValue()); |
311 } | 319 } |
312 | 320 |
313 void MediaRouterWebUIMessageHandler::UpdateMaxDialogHeight(int height) { | 321 void MediaRouterWebUIMessageHandler::UpdateMaxDialogHeight(int height) { |
314 DVLOG(2) << "UpdateMaxDialogHeight"; | 322 DVLOG(2) << "UpdateMaxDialogHeight"; |
315 web_ui()->CallJavascriptFunctionUnsafe(kUpdateMaxHeight, | 323 web_ui()->CallJavascriptFunctionUnsafe(kUpdateMaxHeight, |
316 base::FundamentalValue(height)); | 324 base::FundamentalValue(height)); |
317 } | 325 } |
318 | 326 |
| 327 void MediaRouterWebUIMessageHandler::UpdateMediaRouteStatus( |
| 328 const MediaStatus& status) { |
| 329 base::DictionaryValue status_value; |
| 330 status_value.SetString("title", status.title); |
| 331 status_value.SetString("status", status.status); |
| 332 status_value.SetBoolean("canPlayPause", status.can_play_pause); |
| 333 status_value.SetBoolean("canMute", status.can_mute); |
| 334 status_value.SetBoolean("canSetVolume", status.can_set_volume); |
| 335 status_value.SetBoolean("canSeek", status.can_seek); |
| 336 status_value.SetBoolean("isPaused", status.is_paused); |
| 337 status_value.SetBoolean("isMuted", status.is_muted); |
| 338 status_value.SetInteger("duration", status.duration); |
| 339 status_value.SetInteger("currentTime", status.current_time); |
| 340 status_value.SetDouble("volume", status.volume); |
| 341 web_ui()->CallJavascriptFunctionUnsafe(kUpdateRouteStatus, |
| 342 std::move(status_value)); |
| 343 } |
| 344 |
319 void MediaRouterWebUIMessageHandler::RegisterMessages() { | 345 void MediaRouterWebUIMessageHandler::RegisterMessages() { |
320 web_ui()->RegisterMessageCallback( | 346 web_ui()->RegisterMessageCallback( |
321 kRequestInitialData, | 347 kRequestInitialData, |
322 base::Bind(&MediaRouterWebUIMessageHandler::OnRequestInitialData, | 348 base::Bind(&MediaRouterWebUIMessageHandler::OnRequestInitialData, |
323 base::Unretained(this))); | 349 base::Unretained(this))); |
324 web_ui()->RegisterMessageCallback( | 350 web_ui()->RegisterMessageCallback( |
325 kCreateRoute, | 351 kCreateRoute, |
326 base::Bind(&MediaRouterWebUIMessageHandler::OnCreateRoute, | 352 base::Bind(&MediaRouterWebUIMessageHandler::OnCreateRoute, |
327 base::Unretained(this))); | 353 base::Unretained(this))); |
328 web_ui()->RegisterMessageCallback( | 354 web_ui()->RegisterMessageCallback( |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 &MediaRouterWebUIMessageHandler::OnReportTimeToInitialActionClose, | 421 &MediaRouterWebUIMessageHandler::OnReportTimeToInitialActionClose, |
396 base::Unretained(this))); | 422 base::Unretained(this))); |
397 web_ui()->RegisterMessageCallback( | 423 web_ui()->RegisterMessageCallback( |
398 kSearchSinksAndCreateRoute, | 424 kSearchSinksAndCreateRoute, |
399 base::Bind(&MediaRouterWebUIMessageHandler::OnSearchSinksAndCreateRoute, | 425 base::Bind(&MediaRouterWebUIMessageHandler::OnSearchSinksAndCreateRoute, |
400 base::Unretained(this))); | 426 base::Unretained(this))); |
401 web_ui()->RegisterMessageCallback( | 427 web_ui()->RegisterMessageCallback( |
402 kOnInitialDataReceived, | 428 kOnInitialDataReceived, |
403 base::Bind(&MediaRouterWebUIMessageHandler::OnInitialDataReceived, | 429 base::Bind(&MediaRouterWebUIMessageHandler::OnInitialDataReceived, |
404 base::Unretained(this))); | 430 base::Unretained(this))); |
| 431 web_ui()->RegisterMessageCallback( |
| 432 kOnRouteDetailsClosed, |
| 433 base::Bind(&MediaRouterWebUIMessageHandler::OnRouteDetailsClosed, |
| 434 base::Unretained(this))); |
| 435 web_ui()->RegisterMessageCallback( |
| 436 kOnRouteDetailsOpened, |
| 437 base::Bind(&MediaRouterWebUIMessageHandler::OnRouteDetailsOpened, |
| 438 base::Unretained(this))); |
| 439 web_ui()->RegisterMessageCallback( |
| 440 kPauseRoute, |
| 441 base::Bind(&MediaRouterWebUIMessageHandler::OnPauseRoute, |
| 442 base::Unretained(this))); |
| 443 web_ui()->RegisterMessageCallback( |
| 444 kPlayRoute, |
| 445 base::Bind(&MediaRouterWebUIMessageHandler::OnPlayRoute, |
| 446 base::Unretained(this))); |
| 447 web_ui()->RegisterMessageCallback( |
| 448 kSeekRoute, |
| 449 base::Bind(&MediaRouterWebUIMessageHandler::OnSeekRoute, |
| 450 base::Unretained(this))); |
| 451 web_ui()->RegisterMessageCallback( |
| 452 kSetRouteMute, |
| 453 base::Bind(&MediaRouterWebUIMessageHandler::OnSetRouteMute, |
| 454 base::Unretained(this))); |
| 455 web_ui()->RegisterMessageCallback( |
| 456 kSetRouteVolume, |
| 457 base::Bind(&MediaRouterWebUIMessageHandler::OnSetRouteVolume, |
| 458 base::Unretained(this))); |
405 } | 459 } |
406 | 460 |
407 void MediaRouterWebUIMessageHandler::OnRequestInitialData( | 461 void MediaRouterWebUIMessageHandler::OnRequestInitialData( |
408 const base::ListValue* args) { | 462 const base::ListValue* args) { |
409 DVLOG(1) << "OnRequestInitialData"; | 463 DVLOG(1) << "OnRequestInitialData"; |
410 media_router_ui_->OnUIInitiallyLoaded(); | 464 media_router_ui_->OnUIInitiallyLoaded(); |
411 base::DictionaryValue initial_data; | 465 base::DictionaryValue initial_data; |
412 | 466 |
413 // "No Cast devices found?" Chromecast help center page. | 467 // "No Cast devices found?" Chromecast help center page. |
414 initial_data.SetString("deviceMissingUrl", | 468 initial_data.SetString("deviceMissingUrl", |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 static_cast<MediaCastMode>(cast_mode_num)); | 838 static_cast<MediaCastMode>(cast_mode_num)); |
785 } | 839 } |
786 | 840 |
787 void MediaRouterWebUIMessageHandler::OnInitialDataReceived( | 841 void MediaRouterWebUIMessageHandler::OnInitialDataReceived( |
788 const base::ListValue* args) { | 842 const base::ListValue* args) { |
789 DVLOG(1) << "OnInitialDataReceived"; | 843 DVLOG(1) << "OnInitialDataReceived"; |
790 media_router_ui_->OnUIInitialDataReceived(); | 844 media_router_ui_->OnUIInitialDataReceived(); |
791 MaybeUpdateFirstRunFlowData(); | 845 MaybeUpdateFirstRunFlowData(); |
792 } | 846 } |
793 | 847 |
| 848 void MediaRouterWebUIMessageHandler::OnRouteDetailsClosed( |
| 849 const base::ListValue* args) { |
| 850 media_router_ui_->OnUIDetailsViewClosed(); |
| 851 } |
| 852 |
| 853 void MediaRouterWebUIMessageHandler::OnRouteDetailsOpened( |
| 854 const base::ListValue* args) { |
| 855 const base::DictionaryValue* args_dict = nullptr; |
| 856 std::string route_id; |
| 857 if (!args->GetDictionary(0, &args_dict) || |
| 858 !args_dict->GetString("routeId", &route_id)) { |
| 859 DVLOG(1) << "Unable to extract media route ID"; |
| 860 return; |
| 861 } |
| 862 media_router_ui_->OnUIDetailsViewOpened(route_id); |
| 863 } |
| 864 |
| 865 void MediaRouterWebUIMessageHandler::OnPauseRoute(const base::ListValue* args) { |
| 866 media_router_ui_->PauseRoute(); |
| 867 } |
| 868 |
| 869 void MediaRouterWebUIMessageHandler::OnPlayRoute(const base::ListValue* args) { |
| 870 media_router_ui_->PlayRoute(); |
| 871 } |
| 872 |
| 873 void MediaRouterWebUIMessageHandler::OnSeekRoute(const base::ListValue* args) { |
| 874 const base::DictionaryValue* args_dict = nullptr; |
| 875 double time; |
| 876 if (!args->GetDictionary(0, &args_dict) || |
| 877 !args_dict->GetDouble("time", &time)) { |
| 878 DVLOG(1) << "Unable to extract time"; |
| 879 return; |
| 880 } |
| 881 media_router_ui_->SeekRoute(time); |
| 882 } |
| 883 |
| 884 void MediaRouterWebUIMessageHandler::OnSetRouteMute( |
| 885 const base::ListValue* args) { |
| 886 const base::DictionaryValue* args_dict = nullptr; |
| 887 bool mute; |
| 888 if (!args->GetDictionary(0, &args_dict) || |
| 889 !args_dict->GetBoolean("mute", &mute)) { |
| 890 DVLOG(1) << "Unable to extract mute"; |
| 891 return; |
| 892 } |
| 893 media_router_ui_->SetRouteMute(mute); |
| 894 } |
| 895 |
| 896 void MediaRouterWebUIMessageHandler::OnSetRouteVolume( |
| 897 const base::ListValue* args) { |
| 898 const base::DictionaryValue* args_dict = nullptr; |
| 899 double volume; |
| 900 if (!args->GetDictionary(0, &args_dict) || |
| 901 !args_dict->GetDouble("volume", &volume)) { |
| 902 DVLOG(1) << "Unable to extract volume"; |
| 903 return; |
| 904 } |
| 905 media_router_ui_->SetRouteVolume(volume); |
| 906 } |
| 907 |
794 bool MediaRouterWebUIMessageHandler::ActOnIssueType( | 908 bool MediaRouterWebUIMessageHandler::ActOnIssueType( |
795 IssueInfo::Action action_type, | 909 IssueInfo::Action action_type, |
796 const base::DictionaryValue* args) { | 910 const base::DictionaryValue* args) { |
797 if (action_type == IssueInfo::Action::LEARN_MORE) { | 911 if (action_type == IssueInfo::Action::LEARN_MORE) { |
798 std::string learn_more_url = GetLearnMoreUrl(args); | 912 std::string learn_more_url = GetLearnMoreUrl(args); |
799 if (learn_more_url.empty()) | 913 if (learn_more_url.empty()) |
800 return false; | 914 return false; |
801 std::unique_ptr<base::ListValue> open_args(new base::ListValue); | 915 std::unique_ptr<base::ListValue> open_args(new base::ListValue); |
802 open_args->AppendString(learn_more_url); | 916 open_args->AppendString(learn_more_url); |
803 web_ui()->CallJavascriptFunctionUnsafe(kWindowOpen, *open_args); | 917 web_ui()->CallJavascriptFunctionUnsafe(kWindowOpen, *open_args); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
896 } | 1010 } |
897 | 1011 |
898 return value; | 1012 return value; |
899 } | 1013 } |
900 | 1014 |
901 void MediaRouterWebUIMessageHandler::SetWebUIForTest(content::WebUI* web_ui) { | 1015 void MediaRouterWebUIMessageHandler::SetWebUIForTest(content::WebUI* web_ui) { |
902 set_web_ui(web_ui); | 1016 set_web_ui(web_ui); |
903 } | 1017 } |
904 | 1018 |
905 } // namespace media_router | 1019 } // namespace media_router |
OLD | NEW |