| 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 3ffe291cb00ca5b0714dbec46f5577e8cef00204..623d81b066a128ea9f233e63d60f77e4ad8034f9 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
|
| @@ -62,6 +62,13 @@ const char kReportTimeToClickSink[] = "reportTimeToClickSink";
|
| const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose";
|
| const char kSearchSinksAndCreateRoute[] = "searchSinksAndCreateRoute";
|
| const char kOnInitialDataReceived[] = "onInitialDataReceived";
|
| +const char kOnRouteDetailsClosed[] = "onRouteDetailsClosed";
|
| +const char kOnRouteDetailsOpened[] = "onRouteDetailsOpened";
|
| +const char kPauseRoute[] = "pauseRoute";
|
| +const char kPlayRoute[] = "playRoute";
|
| +const char kSeekRoute[] = "seekRoute";
|
| +const char kSetRouteMute[] = "setRouteMute";
|
| +const char kSetRouteVolume[] = "setRouteVolume";
|
|
|
| // JS function names.
|
| const char kSetInitialData[] = "media_router.ui.setInitialData";
|
| @@ -74,6 +81,7 @@ const char kSetSinkListAndIdentity[] = "media_router.ui.setSinkListAndIdentity";
|
| const char kSetRouteList[] = "media_router.ui.setRouteList";
|
| const char kSetCastModeList[] = "media_router.ui.setCastModeList";
|
| const char kUpdateMaxHeight[] = "media_router.ui.updateMaxHeight";
|
| +const char kUpdateRouteStatus[] = "media_router.ui.updateRouteStatus";
|
| const char kWindowOpen[] = "window.open";
|
|
|
| std::unique_ptr<base::DictionaryValue> SinksAndIdentityToValue(
|
| @@ -316,6 +324,24 @@ void MediaRouterWebUIMessageHandler::UpdateMaxDialogHeight(int height) {
|
| base::FundamentalValue(height));
|
| }
|
|
|
| +void MediaRouterWebUIMessageHandler::UpdateMediaRouteStatus(
|
| + const MediaStatus& status) {
|
| + base::DictionaryValue status_value;
|
| + status_value.SetString("title", status.title);
|
| + status_value.SetString("status", status.status);
|
| + status_value.SetBoolean("canPlayPause", status.can_play_pause);
|
| + status_value.SetBoolean("canMute", status.can_mute);
|
| + status_value.SetBoolean("canSetVolume", status.can_set_volume);
|
| + status_value.SetBoolean("canSeek", status.can_seek);
|
| + status_value.SetBoolean("isPaused", status.is_paused);
|
| + status_value.SetBoolean("isMuted", status.is_muted);
|
| + status_value.SetInteger("duration", status.duration);
|
| + status_value.SetInteger("currentTime", status.current_time);
|
| + status_value.SetDouble("volume", status.volume);
|
| + web_ui()->CallJavascriptFunctionUnsafe(kUpdateRouteStatus,
|
| + std::move(status_value));
|
| +}
|
| +
|
| void MediaRouterWebUIMessageHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback(
|
| kRequestInitialData,
|
| @@ -402,6 +428,34 @@ void MediaRouterWebUIMessageHandler::RegisterMessages() {
|
| kOnInitialDataReceived,
|
| base::Bind(&MediaRouterWebUIMessageHandler::OnInitialDataReceived,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kOnRouteDetailsClosed,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnRouteDetailsClosed,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kOnRouteDetailsOpened,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnRouteDetailsOpened,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kPauseRoute,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnPauseRoute,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kPlayRoute,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnPlayRoute,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kSeekRoute,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnSeekRoute,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kSetRouteMute,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnSetRouteMute,
|
| + base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback(
|
| + kSetRouteVolume,
|
| + base::Bind(&MediaRouterWebUIMessageHandler::OnSetRouteVolume,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void MediaRouterWebUIMessageHandler::OnRequestInitialData(
|
| @@ -791,6 +845,66 @@ void MediaRouterWebUIMessageHandler::OnInitialDataReceived(
|
| MaybeUpdateFirstRunFlowData();
|
| }
|
|
|
| +void MediaRouterWebUIMessageHandler::OnRouteDetailsClosed(
|
| + const base::ListValue* args) {
|
| + media_router_ui_->OnUIDetailsViewClosed();
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnRouteDetailsOpened(
|
| + const base::ListValue* args) {
|
| + const base::DictionaryValue* args_dict = nullptr;
|
| + std::string route_id;
|
| + if (!args->GetDictionary(0, &args_dict) ||
|
| + !args_dict->GetString("routeId", &route_id)) {
|
| + DVLOG(1) << "Unable to extract media route ID";
|
| + return;
|
| + }
|
| + media_router_ui_->OnUIDetailsViewOpened(route_id);
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnPauseRoute(const base::ListValue* args) {
|
| + media_router_ui_->PauseRoute();
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnPlayRoute(const base::ListValue* args) {
|
| + media_router_ui_->PlayRoute();
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnSeekRoute(const base::ListValue* args) {
|
| + const base::DictionaryValue* args_dict = nullptr;
|
| + double time;
|
| + if (!args->GetDictionary(0, &args_dict) ||
|
| + !args_dict->GetDouble("time", &time)) {
|
| + DVLOG(1) << "Unable to extract time";
|
| + return;
|
| + }
|
| + media_router_ui_->SeekRoute(time);
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnSetRouteMute(
|
| + const base::ListValue* args) {
|
| + const base::DictionaryValue* args_dict = nullptr;
|
| + bool mute;
|
| + if (!args->GetDictionary(0, &args_dict) ||
|
| + !args_dict->GetBoolean("mute", &mute)) {
|
| + DVLOG(1) << "Unable to extract mute";
|
| + return;
|
| + }
|
| + media_router_ui_->SetRouteMute(mute);
|
| +}
|
| +
|
| +void MediaRouterWebUIMessageHandler::OnSetRouteVolume(
|
| + const base::ListValue* args) {
|
| + const base::DictionaryValue* args_dict = nullptr;
|
| + double volume;
|
| + if (!args->GetDictionary(0, &args_dict) ||
|
| + !args_dict->GetDouble("volume", &volume)) {
|
| + DVLOG(1) << "Unable to extract volume";
|
| + return;
|
| + }
|
| + media_router_ui_->SetRouteVolume(volume);
|
| +}
|
| +
|
| bool MediaRouterWebUIMessageHandler::ActOnIssueType(
|
| IssueInfo::Action action_type,
|
| const base::DictionaryValue* args) {
|
|
|