Chromium Code Reviews| Index: chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| diff --git a/chrome/browser/ui/toolbar/media_router_contextual_menu.cc b/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| index 4d649f04bdd2eed08ee4b1e67686368dc255d020..52f1a28f86355c21899b41a7c69fb137e4f71e48 100644 |
| --- a/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| +++ b/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| @@ -7,10 +7,16 @@ |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/browser/media/router/media_router_factory.h" |
| #include "chrome/browser/media/router/media_router_mojo_impl.h" |
| +#if defined(GOOGLE_CHROME_BUILD) |
|
sky
2016/01/26 18:15:01
Move conditional includes past other includes. See
apacible
2016/01/26 18:24:11
Done.
|
| +#include "base/prefs/pref_service.h" |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/singleton_tabs.h" |
| #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
| +#if defined(GOOGLE_CHROME_BUILD) |
| +#include "chrome/common/pref_names.h" |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| #include "chrome/grit/generated_resources.h" |
| #include "extensions/common/constants.h" |
| #include "ui/base/l10n/l10n_util.h" |
| @@ -22,6 +28,10 @@ MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, |
| IDS_MEDIA_ROUTER_ABOUT); |
| menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
| +#if defined(GOOGLE_CHROME_BUILD) |
| + menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE, |
| + IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE); |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, |
| IDS_MEDIA_ROUTER_LEARN_MORE); |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, |
| @@ -35,6 +45,12 @@ MediaRouterContextualMenu::~MediaRouterContextualMenu() { |
| } |
| bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { |
| +#if defined(GOOGLE_CHROME_BUILD) |
| + if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) { |
| + return browser_->profile()->GetPrefs()->GetBoolean( |
| + prefs::kMediaRouterEnableCloudServices); |
| + } |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| return false; |
| } |
| @@ -42,6 +58,16 @@ bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { |
| return true; |
| } |
| +bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const { |
| +#if defined(GOOGLE_CHROME_BUILD) |
| + // Cloud services preference is not set or used if sync is disabled. |
| + if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) { |
|
sky
2016/01/26 18:15:01
nit: no {}
apacible
2016/01/26 18:24:11
Done.
|
| + return browser_->profile()->IsSyncAllowed(); |
| + } |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| + return true; |
| +} |
| + |
| bool MediaRouterContextualMenu::GetAcceleratorForCommandId( |
| int command_id, |
| ui::Accelerator* accelerator) { |
| @@ -55,6 +81,11 @@ base::string16 MediaRouterContextualMenu::GetLabelForCommandId( |
| case IDC_MEDIA_ROUTER_ABOUT: |
| string_id = IDS_MEDIA_ROUTER_ABOUT; |
| break; |
| +#if defined(GOOGLE_CHROME_BUILD) |
| + case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE: |
| + string_id = IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE; |
| + break; |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| case IDC_MEDIA_ROUTER_HELP: |
| string_id = IDS_MEDIA_ROUTER_HELP; |
| break; |
| @@ -85,6 +116,19 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id, |
| case IDC_MEDIA_ROUTER_ABOUT: |
| chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); |
| break; |
| +#if defined(GOOGLE_CHROME_BUILD) |
| + case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE: |
| + browser_->profile()->GetPrefs()->SetBoolean( |
| + prefs::kMediaRouterEnableCloudServices, |
| + !browser_->profile()->GetPrefs()->GetBoolean( |
| + prefs::kMediaRouterEnableCloudServices)); |
| + |
| + // If this has been set before, this is a no-op. |
| + browser_->profile()->GetPrefs()->SetBoolean( |
| + prefs::kMediaRouterCloudServicesPrefSet, |
| + true); |
| + break; |
| +#endif // defined(GOOGLE_CHROME_BUILD) |
| case IDC_MEDIA_ROUTER_HELP: |
| chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); |
| base::RecordAction(base::UserMetricsAction( |