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

Side by Side 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 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 unified diff | Download patch
OLDNEW
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 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 const char kReportTimeToClickSink[] = "reportTimeToClickSink"; 57 const char kReportTimeToClickSink[] = "reportTimeToClickSink";
58 const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose"; 58 const char kReportTimeToInitialActionClose[] = "reportTimeToInitialActionClose";
59 const char kOnInitialDataReceived[] = "onInitialDataReceived"; 59 const char kOnInitialDataReceived[] = "onInitialDataReceived";
60 60
61 // JS function names. 61 // JS function names.
62 const char kSetInitialData[] = "media_router.ui.setInitialData"; 62 const char kSetInitialData[] = "media_router.ui.setInitialData";
63 const char kOnCreateRouteResponseReceived[] = 63 const char kOnCreateRouteResponseReceived[] =
64 "media_router.ui.onCreateRouteResponseReceived"; 64 "media_router.ui.onCreateRouteResponseReceived";
65 const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData"; 65 const char kSetFirstRunFlowData[] = "media_router.ui.setFirstRunFlowData";
66 const char kSetIssue[] = "media_router.ui.setIssue"; 66 const char kSetIssue[] = "media_router.ui.setIssue";
67 const char kSetSinkList[] = "media_router.ui.setSinkList"; 67 const char kSetSinkListAndIdentity[] = "media_router.ui.setSinkListAndIdentity";
68 const char kSetRouteList[] = "media_router.ui.setRouteList"; 68 const char kSetRouteList[] = "media_router.ui.setRouteList";
69 const char kSetCastModeList[] = "media_router.ui.setCastModeList"; 69 const char kSetCastModeList[] = "media_router.ui.setCastModeList";
70 const char kUpdateMaxHeight[] = "media_router.ui.updateMaxHeight"; 70 const char kUpdateMaxHeight[] = "media_router.ui.updateMaxHeight";
71 const char kWindowOpen[] = "window.open"; 71 const char kWindowOpen[] = "window.open";
72 72
73 scoped_ptr<base::ListValue> SinksToValue( 73 scoped_ptr<base::DictionaryValue> SinksAndIdentityToValue(
74 const std::vector<MediaSinkWithCastModes>& sinks) { 74 const std::vector<MediaSinkWithCastModes>& sinks,
75 scoped_ptr<base::ListValue> value(new base::ListValue); 75 Profile* profile) {
76
77 scoped_ptr<base::DictionaryValue> sink_list_and_identity(
78 new base::DictionaryValue);
79
80 std::string user_domain;
81 #if defined(GOOGLE_CHROME_BUILD)
82 SigninManagerBase* signin_manager =
83 SigninManagerFactory::GetForProfile(profile);
84 AccountInfo accnt_info = signin_manager->GetAuthenticatedAccountInfo();
imcheng 2016/02/18 18:58:54 nit: account_info
amp 2016/02/20 02:00:55 Done.
85 if (accnt_info.IsValid()) {
86 user_domain = accnt_info.hosted_domain;
87 sink_list_and_identity->SetString("userEmail", accnt_info.email);
88 sink_list_and_identity->SetString("userDomain", user_domain);
89 }
90 #endif // defined(GOOGLE_CHROME_BUILD)
91
92 scoped_ptr<base::ListValue> sinks_val(new base::ListValue);
93 bool show_email = false;
94 bool show_domain = false;
76 95
77 for (const MediaSinkWithCastModes& sink_with_cast_modes : sinks) { 96 for (const MediaSinkWithCastModes& sink_with_cast_modes : sinks) {
78 scoped_ptr<base::DictionaryValue> sink_val(new base::DictionaryValue); 97 scoped_ptr<base::DictionaryValue> sink_val(new base::DictionaryValue);
79 98
80 const MediaSink& sink = sink_with_cast_modes.sink; 99 const MediaSink& sink = sink_with_cast_modes.sink;
81 sink_val->SetString("id", sink.id()); 100 sink_val->SetString("id", sink.id());
82 sink_val->SetString("name", sink.name()); 101 sink_val->SetString("name", sink.name());
83 sink_val->SetInteger("iconType", sink.icon_type()); 102 sink_val->SetInteger("iconType", sink.icon_type());
84 if (!sink.description().empty()) 103 if (!sink.description().empty())
85 sink_val->SetString("description", sink.description()); 104 sink_val->SetString("description", sink.description());
86 if (!sink.domain().empty()) 105
87 sink_val->SetString("domain", sink.domain()); 106 if (!user_domain.empty() && !sink.domain().empty()) {
107 std::string domain = sink.domain();
108 // Convert default domains to user domain
109 if (sink.domain() == "default")
110 domain = user_domain;
111
112 sink_val->SetString("domain", domain);
113
114 show_email = true;
115 if (domain != user_domain)
116 show_domain = true;
117 }
88 118
89 int cast_mode_bits = 0; 119 int cast_mode_bits = 0;
90 for (MediaCastMode cast_mode : sink_with_cast_modes.cast_modes) 120 for (MediaCastMode cast_mode : sink_with_cast_modes.cast_modes)
91 cast_mode_bits |= cast_mode; 121 cast_mode_bits |= cast_mode;
92 122
93 sink_val->SetInteger("castModes", cast_mode_bits); 123 sink_val->SetInteger("castModes", cast_mode_bits);
94 value->Append(sink_val.release()); 124 sinks_val->Append(sink_val.release());
95 } 125 }
96 126
97 return value; 127 sink_list_and_identity->Set("sinks", sinks_val.release());
128 sink_list_and_identity->SetBoolean("showEmail", show_email);
129 sink_list_and_identity->SetBoolean("showDomain", show_domain);
130 return sink_list_and_identity;
98 } 131 }
99 132
100 scoped_ptr<base::DictionaryValue> RouteToValue( 133 scoped_ptr<base::DictionaryValue> RouteToValue(
101 const MediaRoute& route, bool canJoin, const std::string& extension_id) { 134 const MediaRoute& route, bool canJoin, const std::string& extension_id) {
102 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue); 135 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
103 dictionary->SetString("id", route.media_route_id()); 136 dictionary->SetString("id", route.media_route_id());
104 dictionary->SetString("sinkId", route.media_sink_id()); 137 dictionary->SetString("sinkId", route.media_sink_id());
105 dictionary->SetString("description", route.description()); 138 dictionary->SetString("description", route.description());
106 dictionary->SetBoolean("isLocal", route.is_local()); 139 dictionary->SetBoolean("isLocal", route.is_local());
107 dictionary->SetBoolean("canJoin", canJoin); 140 dictionary->SetBoolean("canJoin", canJoin);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 media_router_ui_(media_router_ui) { 234 media_router_ui_(media_router_ui) {
202 DCHECK(media_router_ui_); 235 DCHECK(media_router_ui_);
203 } 236 }
204 237
205 MediaRouterWebUIMessageHandler::~MediaRouterWebUIMessageHandler() { 238 MediaRouterWebUIMessageHandler::~MediaRouterWebUIMessageHandler() {
206 } 239 }
207 240
208 void MediaRouterWebUIMessageHandler::UpdateSinks( 241 void MediaRouterWebUIMessageHandler::UpdateSinks(
209 const std::vector<MediaSinkWithCastModes>& sinks) { 242 const std::vector<MediaSinkWithCastModes>& sinks) {
210 DVLOG(2) << "UpdateSinks"; 243 DVLOG(2) << "UpdateSinks";
211 scoped_ptr<base::ListValue> sinks_val(SinksToValue(sinks)); 244 scoped_ptr<base::DictionaryValue> sinks_and_identity_val(
212 web_ui()->CallJavascriptFunction(kSetSinkList, *sinks_val); 245 SinksAndIdentityToValue(sinks, Profile::FromWebUI(web_ui())));
246 web_ui()->CallJavascriptFunction(
247 kSetSinkListAndIdentity, *sinks_and_identity_val);
213 } 248 }
214 249
215 void MediaRouterWebUIMessageHandler::UpdateRoutes( 250 void MediaRouterWebUIMessageHandler::UpdateRoutes(
216 const std::vector<MediaRoute>& routes, 251 const std::vector<MediaRoute>& routes,
217 const std::vector<MediaRoute::Id>& joinable_route_ids) { 252 const std::vector<MediaRoute::Id>& joinable_route_ids) {
218 scoped_ptr<base::ListValue> routes_val(RoutesToValue(routes, 253 scoped_ptr<base::ListValue> routes_val(RoutesToValue(routes,
219 joinable_route_ids, 254 joinable_route_ids,
220 media_router_ui_->GetRouteProviderExtensionId())); 255 media_router_ui_->GetRouteProviderExtensionId()));
221 web_ui()->CallJavascriptFunction(kSetRouteList, *routes_val); 256 web_ui()->CallJavascriptFunction(kSetRouteList, *routes_val);
222 } 257 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 void MediaRouterWebUIMessageHandler::OnRequestInitialData( 371 void MediaRouterWebUIMessageHandler::OnRequestInitialData(
337 const base::ListValue* args) { 372 const base::ListValue* args) {
338 DVLOG(1) << "OnRequestInitialData"; 373 DVLOG(1) << "OnRequestInitialData";
339 media_router_ui_->OnUIInitiallyLoaded(); 374 media_router_ui_->OnUIInitiallyLoaded();
340 base::DictionaryValue initial_data; 375 base::DictionaryValue initial_data;
341 376
342 // "No Cast devices found?" Chromecast help center page. 377 // "No Cast devices found?" Chromecast help center page.
343 initial_data.SetString("deviceMissingUrl", 378 initial_data.SetString("deviceMissingUrl",
344 base::StringPrintf(kHelpPageUrlPrefix, 3249268)); 379 base::StringPrintf(kHelpPageUrlPrefix, 3249268));
345 380
346 scoped_ptr<base::ListValue> sinks(SinksToValue(media_router_ui_->sinks())); 381 scoped_ptr<base::DictionaryValue> sinks_and_identity(SinksAndIdentityToValue(
347 initial_data.Set("sinks", sinks.release()); 382 media_router_ui_->sinks(), Profile::FromWebUI(web_ui())));
383 initial_data.Set("sinksAndIdentity", sinks_and_identity.release());
348 384
349 scoped_ptr<base::ListValue> routes(RoutesToValue(media_router_ui_->routes(), 385 scoped_ptr<base::ListValue> routes(RoutesToValue(media_router_ui_->routes(),
350 media_router_ui_->joinable_route_ids(), 386 media_router_ui_->joinable_route_ids(),
351 media_router_ui_->GetRouteProviderExtensionId())); 387 media_router_ui_->GetRouteProviderExtensionId()));
352 initial_data.Set("routes", routes.release()); 388 initial_data.Set("routes", routes.release());
353 389
354 const std::set<MediaCastMode> cast_modes = media_router_ui_->cast_modes(); 390 const std::set<MediaCastMode> cast_modes = media_router_ui_->cast_modes();
355 scoped_ptr<base::ListValue> cast_modes_list( 391 scoped_ptr<base::ListValue> cast_modes_list(
356 CastModesToValue(cast_modes, 392 CastModesToValue(cast_modes,
357 media_router_ui_->GetPresentationRequestSourceName())); 393 media_router_ui_->GetPresentationRequestSourceName()));
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 first_run_flow_acknowledged); 754 first_run_flow_acknowledged);
719 first_run_flow_data.SetBoolean("showFirstRunFlowCloudPref", show_cloud_pref); 755 first_run_flow_data.SetBoolean("showFirstRunFlowCloudPref", show_cloud_pref);
720 web_ui()->CallJavascriptFunction(kSetFirstRunFlowData, first_run_flow_data); 756 web_ui()->CallJavascriptFunction(kSetFirstRunFlowData, first_run_flow_data);
721 } 757 }
722 758
723 void MediaRouterWebUIMessageHandler::SetWebUIForTest(content::WebUI* web_ui) { 759 void MediaRouterWebUIMessageHandler::SetWebUIForTest(content::WebUI* web_ui) {
724 set_web_ui(web_ui); 760 set_web_ui(web_ui);
725 } 761 }
726 762
727 } // namespace media_router 763 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698