| 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 a67ddf38427968a092a8f0070681b808724f59c9..2c2bd23b27722ec4588e7714adc47ea7061e7d4a 100644
|
| --- a/chrome/browser/ui/toolbar/media_router_contextual_menu.cc
|
| +++ b/chrome/browser/ui/toolbar/media_router_contextual_menu.cc
|
| @@ -20,12 +20,21 @@
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/models/menu_model_delegate.h"
|
|
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| +#include "base/prefs/pref_service.h"
|
| +#include "chrome/common/pref_names.h"
|
| +#endif // defined(GOOGLE_CHROME_BUILD)
|
| +
|
| MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
|
| : browser_(browser),
|
| menu_model_(this) {
|
| 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,
|
| @@ -41,6 +50,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;
|
| }
|
|
|
| @@ -48,6 +63,15 @@ 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)
|
| + return browser_->profile()->IsSyncAllowed();
|
| +#endif // defined(GOOGLE_CHROME_BUILD)
|
| + return true;
|
| +}
|
| +
|
| bool MediaRouterContextualMenu::GetAcceleratorForCommandId(
|
| int command_id,
|
| ui::Accelerator* accelerator) {
|
| @@ -63,10 +87,24 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id,
|
| const char kCastLearnMorePageUrl[] =
|
| "https://www.google.com/chrome/devices/chromecast/learn.html";
|
|
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + PrefService* pref_service;
|
| +#endif // defined(GOOGLE_CHROME_BUILD)
|
| switch (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:
|
| + pref_service = browser_->profile()->GetPrefs();
|
| + pref_service->SetBoolean(prefs::kMediaRouterEnableCloudServices,
|
| + !pref_service->GetBoolean(prefs::kMediaRouterEnableCloudServices));
|
| +
|
| + // If this has been set before, this is a no-op.
|
| + pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet,
|
| + true);
|
| + break;
|
| +#endif // defined(GOOGLE_CHROME_BUILD)
|
| case IDC_MEDIA_ROUTER_HELP:
|
| chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
|
| base::RecordAction(base::UserMetricsAction(
|
|
|