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

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

Issue 1680743006: [Media Router] Show user email in header if cloud sink is present. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address final comments Created 4 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 7fa7f2a4e44ad03d96ae7f4ceb22d1e3bc7331e8..336dbe1e7be0a15f11bf1b86a2f58939633240c3 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
@@ -64,15 +64,27 @@ const char kOnCreateRouteResponseReceived[] =
"media_router.ui.onCreateRouteResponseReceived";
const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData";
const char kSetIssue[] = "media_router.ui.setIssue";
-const char kSetSinkList[] = "media_router.ui.setSinkList";
+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 kWindowOpen[] = "window.open";
-scoped_ptr<base::ListValue> SinksToValue(
- const std::vector<MediaSinkWithCastModes>& sinks) {
- scoped_ptr<base::ListValue> value(new base::ListValue);
+scoped_ptr<base::DictionaryValue> SinksAndIdentityToValue(
+ const std::vector<MediaSinkWithCastModes>& sinks,
+ const AccountInfo& account_info) {
+ scoped_ptr<base::DictionaryValue> sink_list_and_identity(
+ new base::DictionaryValue);
+ bool show_email = false;
+ bool show_domain = false;
+ std::string user_domain;
+ if (account_info.IsValid()) {
+ user_domain = account_info.hosted_domain;
+ sink_list_and_identity->SetString("userEmail", account_info.email);
+ sink_list_and_identity->SetString("userDomain", user_domain);
+ }
+
+ scoped_ptr<base::ListValue> sinks_val(new base::ListValue);
for (const MediaSinkWithCastModes& sink_with_cast_modes : sinks) {
scoped_ptr<base::DictionaryValue> sink_val(new base::DictionaryValue);
@@ -83,18 +95,37 @@ scoped_ptr<base::ListValue> SinksToValue(
sink_val->SetInteger("iconType", sink.icon_type());
if (!sink.description().empty())
sink_val->SetString("description", sink.description());
- if (!sink.domain().empty())
- sink_val->SetString("domain", sink.domain());
+
+ if (!user_domain.empty() && !sink.domain().empty()) {
+ std::string domain = sink.domain();
+ // Convert default domains to user domain
+ if (sink.domain() == "default") {
+ domain = user_domain;
+ if (domain == "NO_HOSTED_DOMAIN") {
+ // Default domain will be empty for non-dasher accounts.
+ domain.clear();
+ }
+ }
+
+ sink_val->SetString("domain", domain);
+
+ show_email = true;
+ if (!domain.empty() && domain != user_domain)
+ show_domain = true;
+ }
int cast_mode_bits = 0;
for (MediaCastMode cast_mode : sink_with_cast_modes.cast_modes)
cast_mode_bits |= cast_mode;
sink_val->SetInteger("castModes", cast_mode_bits);
- value->Append(sink_val.release());
+ sinks_val->Append(sink_val.release());
}
- return value;
+ sink_list_and_identity->Set("sinks", sinks_val.release());
+ sink_list_and_identity->SetBoolean("showEmail", show_email);
+ sink_list_and_identity->SetBoolean("showDomain", show_domain);
+ return sink_list_and_identity;
}
scoped_ptr<base::DictionaryValue> RouteToValue(
@@ -208,8 +239,10 @@ MediaRouterWebUIMessageHandler::~MediaRouterWebUIMessageHandler() {
void MediaRouterWebUIMessageHandler::UpdateSinks(
const std::vector<MediaSinkWithCastModes>& sinks) {
DVLOG(2) << "UpdateSinks";
- scoped_ptr<base::ListValue> sinks_val(SinksToValue(sinks));
- web_ui()->CallJavascriptFunction(kSetSinkList, *sinks_val);
+ scoped_ptr<base::DictionaryValue> sinks_and_identity_val(
+ SinksAndIdentityToValue(sinks, GetAccountInfo()));
+ web_ui()->CallJavascriptFunction(kSetSinkListAndIdentity,
+ *sinks_and_identity_val);
}
void MediaRouterWebUIMessageHandler::UpdateRoutes(
@@ -343,8 +376,9 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData(
initial_data.SetString("deviceMissingUrl",
base::StringPrintf(kHelpPageUrlPrefix, 3249268));
- scoped_ptr<base::ListValue> sinks(SinksToValue(media_router_ui_->sinks()));
- initial_data.Set("sinks", sinks.release());
+ scoped_ptr<base::DictionaryValue> sinks_and_identity(
+ SinksAndIdentityToValue(media_router_ui_->sinks(), GetAccountInfo()));
+ initial_data.Set("sinksAndIdentity", sinks_and_identity.release());
scoped_ptr<base::ListValue> routes(RoutesToValue(media_router_ui_->routes(),
media_router_ui_->joinable_route_ids(),
@@ -427,10 +461,10 @@ void MediaRouterWebUIMessageHandler::OnAcknowledgeFirstRunFlow(
return;
}
- Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
- prefs::kMediaRouterEnableCloudServices, enabled_cloud_services);
- Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
- prefs::kMediaRouterCloudServicesPrefSet, true);
+ PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs();
+ pref_service->SetBoolean(prefs::kMediaRouterEnableCloudServices,
+ enabled_cloud_services);
+ pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet, true);
#endif // defined(GOOGLE_CHROME_BUILD)
}
@@ -720,6 +754,16 @@ void MediaRouterWebUIMessageHandler::MaybeUpdateFirstRunFlowData() {
web_ui()->CallJavascriptFunction(kSetFirstRunFlowData, first_run_flow_data);
}
+AccountInfo MediaRouterWebUIMessageHandler::GetAccountInfo() {
+#if defined(GOOGLE_CHROME_BUILD)
+ SigninManagerBase* signin_manager =
+ SigninManagerFactory::GetForProfile(Profile::FromWebUI(web_ui()));
+ return signin_manager->GetAuthenticatedAccountInfo();
+#else
+ return AccountInfo();
+#endif // defined(GOOGLE_CHROME_BUILD)
+}
+
void MediaRouterWebUIMessageHandler::SetWebUIForTest(content::WebUI* web_ui) {
set_web_ui(web_ui);
}

Powered by Google App Engine
This is Rietveld 408576698