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

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

Issue 2938173004: [Media Router] Add a supports_web_ui_controller attribute to MediaRoute (Closed)
Patch Set: Rebase Created 3 years, 6 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 7346b300e8d6172baf7679efd98a43671c7faeae..0b8a30b9a8ac456b26f105deb9598a3ac57570b4 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
@@ -94,8 +94,7 @@ const char kWindowOpen[] = "window.open";
std::unique_ptr<base::DictionaryValue> SinksAndIdentityToValue(
const std::vector<MediaSinkWithCastModes>& sinks,
const AccountInfo& account_info) {
- std::unique_ptr<base::DictionaryValue> sink_list_and_identity(
- new base::DictionaryValue);
+ auto sink_list_and_identity = base::MakeUnique<base::DictionaryValue>();
bool show_email = false;
bool show_domain = false;
std::string user_domain;
@@ -104,10 +103,10 @@ std::unique_ptr<base::DictionaryValue> SinksAndIdentityToValue(
sink_list_and_identity->SetString("userEmail", account_info.email);
}
- std::unique_ptr<base::ListValue> sinks_val(new base::ListValue);
+ auto sinks_val = base::MakeUnique<base::ListValue>();
for (const MediaSinkWithCastModes& sink_with_cast_modes : sinks) {
- std::unique_ptr<base::DictionaryValue> sink_val(new base::DictionaryValue);
+ auto sink_val = base::MakeUnique<base::DictionaryValue>();
const MediaSink& sink = sink_with_cast_modes.sink;
sink_val->SetString("id", sink.id());
@@ -157,12 +156,16 @@ std::unique_ptr<base::DictionaryValue> RouteToValue(
bool can_join,
const std::string& extension_id,
bool incognito,
- int current_cast_mode) {
- std::unique_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
+ int current_cast_mode,
+ bool is_web_ui_route_controller_available) {
+ auto dictionary = base::MakeUnique<base::DictionaryValue>();
dictionary->SetString("id", route.media_route_id());
dictionary->SetString("sinkId", route.media_sink_id());
dictionary->SetString("description", route.description());
dictionary->SetBoolean("isLocal", route.is_local());
+ dictionary->SetBoolean("supportsWebUiController",
+ is_web_ui_route_controller_available &&
+ route.supports_media_route_controller());
dictionary->SetBoolean("canJoin", can_join);
if (current_cast_mode > 0) {
dictionary->SetInteger("currentCastMode", current_cast_mode);
@@ -184,11 +187,10 @@ std::unique_ptr<base::ListValue> CastModesToValue(
const CastModeSet& cast_modes,
const std::string& source_host,
base::Optional<MediaCastMode> forced_cast_mode) {
- std::unique_ptr<base::ListValue> value(new base::ListValue);
+ auto value = base::MakeUnique<base::ListValue>();
for (const MediaCastMode& cast_mode : cast_modes) {
- std::unique_ptr<base::DictionaryValue> cast_mode_val(
- new base::DictionaryValue);
+ auto cast_mode_val = base::MakeUnique<base::DictionaryValue>();
cast_mode_val->SetInteger("type", cast_mode);
cast_mode_val->SetString(
"description", MediaCastModeToDescription(cast_mode, source_host));
@@ -204,7 +206,7 @@ std::unique_ptr<base::ListValue> CastModesToValue(
// Returns an Issue dictionary created from |issue| that can be used in WebUI.
std::unique_ptr<base::DictionaryValue> IssueToValue(const Issue& issue) {
const IssueInfo& issue_info = issue.info();
- std::unique_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
+ auto dictionary = base::MakeUnique<base::DictionaryValue>();
dictionary->SetInteger("id", issue.id());
dictionary->SetString("title", issue_info.title);
dictionary->SetString("message", issue_info.message);
@@ -256,6 +258,8 @@ MediaRouterWebUIMessageHandler::MediaRouterWebUIMessageHandler(
: incognito_(
Profile::FromWebUI(media_router_ui->web_ui())->IsOffTheRecord()),
dialog_closing_(false),
+ is_web_ui_route_controller_available_(base::FeatureList::IsEnabled(
+ features::kMediaRouterUIRouteController)),
media_router_ui_(media_router_ui) {}
MediaRouterWebUIMessageHandler::~MediaRouterWebUIMessageHandler() {}
@@ -298,7 +302,7 @@ void MediaRouterWebUIMessageHandler::OnCreateRouteResponseReceived(
route->media_route_id(), media_router_ui_->routes_and_cast_modes());
std::unique_ptr<base::DictionaryValue> route_value(RouteToValue(
*route, false, media_router_ui_->GetRouteProviderExtensionId(),
- incognito_, current_cast_mode));
+ incognito_, current_cast_mode, is_web_ui_route_controller_available_));
web_ui()->CallJavascriptFunctionUnsafe(kOnCreateRouteResponseReceived,
base::Value(sink_id), *route_value,
base::Value(route->for_display()));
@@ -513,10 +517,6 @@ void MediaRouterWebUIMessageHandler::OnRequestInitialData(
media_router_ui_->UserSelectedTabMirroringForCurrentOrigin();
initial_data.SetBoolean("useTabMirroring", use_tab_mirroring);
- initial_data.SetBoolean(
- "useWebUiRouteControls",
- base::FeatureList::IsEnabled(features::kMediaRouterUIRouteController));
-
web_ui()->CallJavascriptFunctionUnsafe(kSetInitialData, initial_data);
media_router_ui_->UIInitialized();
}
@@ -977,7 +977,7 @@ bool MediaRouterWebUIMessageHandler::ActOnIssueType(
std::string learn_more_url = GetLearnMoreUrl(args);
if (learn_more_url.empty())
return false;
- std::unique_ptr<base::ListValue> open_args(new base::ListValue);
+ auto open_args = base::MakeUnique<base::ListValue>();
open_args->AppendString(learn_more_url);
web_ui()->CallJavascriptFunctionUnsafe(kWindowOpen, *open_args);
return true;
@@ -1060,7 +1060,7 @@ std::unique_ptr<base::ListValue> MediaRouterWebUIMessageHandler::RoutesToValue(
const std::vector<MediaRoute::Id>& joinable_route_ids,
const std::unordered_map<MediaRoute::Id, MediaCastMode>& current_cast_modes)
const {
- std::unique_ptr<base::ListValue> value(new base::ListValue);
+ auto value = base::MakeUnique<base::ListValue>();
const std::string& extension_id =
media_router_ui_->GetRouteProviderExtensionId();
@@ -1069,8 +1069,9 @@ std::unique_ptr<base::ListValue> MediaRouterWebUIMessageHandler::RoutesToValue(
base::ContainsValue(joinable_route_ids, route.media_route_id());
int current_cast_mode =
CurrentCastModeForRouteId(route.media_route_id(), current_cast_modes);
- std::unique_ptr<base::DictionaryValue> route_val(RouteToValue(
- route, can_join, extension_id, incognito_, current_cast_mode));
+ std::unique_ptr<base::DictionaryValue> route_val(
+ RouteToValue(route, can_join, extension_id, incognito_,
+ current_cast_mode, is_web_ui_route_controller_available_));
value->Append(std::move(route_val));
}
« no previous file with comments | « chrome/browser/ui/webui/media_router/media_router_webui_message_handler.h ('k') | chrome/common/media_router/media_route.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698