Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3709)

Unified Diff: chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc

Issue 2724513002: (Not for review) Dummy C++ side Custom Controls implementation (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {
« no previous file with comments | « chrome/browser/ui/webui/media_router/media_router_webui_message_handler.h ('k') | extensions/renderer/dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698