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

Side by Side Diff: chrome/browser/ui/toolbar/media_router_contextual_menu.cc

Issue 1582143002: [Media Router] Add enable cloud services menu item to contextual menu. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 11 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
« no previous file with comments | « chrome/browser/ui/toolbar/media_router_contextual_menu.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/logging.h" 5 #include "base/logging.h"
6 #include "base/metrics/user_metrics.h" 6 #include "base/metrics/user_metrics.h"
7 #include "chrome/app/chrome_command_ids.h" 7 #include "chrome/app/chrome_command_ids.h"
8 #include "chrome/browser/extensions/component_migration_helper.h" 8 #include "chrome/browser/extensions/component_migration_helper.h"
9 #include "chrome/browser/media/router/media_router_factory.h" 9 #include "chrome/browser/media/router/media_router_factory.h"
10 #include "chrome/browser/media/router/media_router_mojo_impl.h" 10 #include "chrome/browser/media/router/media_router_mojo_impl.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/singleton_tabs.h" 13 #include "chrome/browser/ui/singleton_tabs.h"
14 #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h" 14 #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h"
15 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" 15 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h"
16 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" 16 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
17 #include "chrome/grit/chromium_strings.h" 17 #include "chrome/grit/chromium_strings.h"
18 #include "chrome/grit/generated_resources.h" 18 #include "chrome/grit/generated_resources.h"
19 #include "extensions/common/constants.h" 19 #include "extensions/common/constants.h"
20 #include "ui/base/l10n/l10n_util.h" 20 #include "ui/base/l10n/l10n_util.h"
21 #include "ui/base/models/menu_model_delegate.h" 21 #include "ui/base/models/menu_model_delegate.h"
22 22
23 #if defined(GOOGLE_CHROME_BUILD)
24 #include "base/prefs/pref_service.h"
25 #include "chrome/common/pref_names.h"
26 #endif // defined(GOOGLE_CHROME_BUILD)
27
23 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) 28 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
24 : browser_(browser), 29 : browser_(browser),
25 menu_model_(this) { 30 menu_model_(this) {
26 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, 31 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT,
27 IDS_MEDIA_ROUTER_ABOUT); 32 IDS_MEDIA_ROUTER_ABOUT);
28 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 33 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
34 #if defined(GOOGLE_CHROME_BUILD)
35 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE,
36 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE);
37 #endif // defined(GOOGLE_CHROME_BUILD)
29 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, 38 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE,
30 IDS_MEDIA_ROUTER_LEARN_MORE); 39 IDS_MEDIA_ROUTER_LEARN_MORE);
31 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, 40 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP,
32 IDS_MEDIA_ROUTER_HELP); 41 IDS_MEDIA_ROUTER_HELP);
33 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION, 42 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION,
34 IDS_EXTENSIONS_UNINSTALL); 43 IDS_EXTENSIONS_UNINSTALL);
35 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 44 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
36 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, 45 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE,
37 IDS_MEDIA_ROUTER_REPORT_ISSUE); 46 IDS_MEDIA_ROUTER_REPORT_ISSUE);
38 } 47 }
39 48
40 MediaRouterContextualMenu::~MediaRouterContextualMenu() { 49 MediaRouterContextualMenu::~MediaRouterContextualMenu() {
41 } 50 }
42 51
43 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { 52 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
53 #if defined(GOOGLE_CHROME_BUILD)
54 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) {
55 return browser_->profile()->GetPrefs()->GetBoolean(
56 prefs::kMediaRouterEnableCloudServices);
57 }
58 #endif // defined(GOOGLE_CHROME_BUILD)
44 return false; 59 return false;
45 } 60 }
46 61
47 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { 62 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const {
48 return true; 63 return true;
49 } 64 }
50 65
66 bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const {
67 #if defined(GOOGLE_CHROME_BUILD)
68 // Cloud services preference is not set or used if sync is disabled.
69 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE)
70 return browser_->profile()->IsSyncAllowed();
71 #endif // defined(GOOGLE_CHROME_BUILD)
72 return true;
73 }
74
51 bool MediaRouterContextualMenu::GetAcceleratorForCommandId( 75 bool MediaRouterContextualMenu::GetAcceleratorForCommandId(
52 int command_id, 76 int command_id,
53 ui::Accelerator* accelerator) { 77 ui::Accelerator* accelerator) {
54 return false; 78 return false;
55 } 79 }
56 80
57 void MediaRouterContextualMenu::ExecuteCommand(int command_id, 81 void MediaRouterContextualMenu::ExecuteCommand(int command_id,
58 int event_flags) { 82 int event_flags) {
59 const char kAboutPageUrl[] = 83 const char kAboutPageUrl[] =
60 "https://www.google.com/chrome/devices/chromecast/"; 84 "https://www.google.com/chrome/devices/chromecast/";
61 const char kCastHelpCenterPageUrl[] = 85 const char kCastHelpCenterPageUrl[] =
62 "https://support.google.com/chromecast#topic=3058948"; 86 "https://support.google.com/chromecast#topic=3058948";
63 const char kCastLearnMorePageUrl[] = 87 const char kCastLearnMorePageUrl[] =
64 "https://www.google.com/chrome/devices/chromecast/learn.html"; 88 "https://www.google.com/chrome/devices/chromecast/learn.html";
65 89
90 #if defined(GOOGLE_CHROME_BUILD)
91 PrefService* pref_service;
92 #endif // defined(GOOGLE_CHROME_BUILD)
66 switch (command_id) { 93 switch (command_id) {
67 case IDC_MEDIA_ROUTER_ABOUT: 94 case IDC_MEDIA_ROUTER_ABOUT:
68 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); 95 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
69 break; 96 break;
97 #if defined(GOOGLE_CHROME_BUILD)
98 case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE:
99 pref_service = browser_->profile()->GetPrefs();
100 pref_service->SetBoolean(prefs::kMediaRouterEnableCloudServices,
101 !pref_service->GetBoolean(prefs::kMediaRouterEnableCloudServices));
102
103 // If this has been set before, this is a no-op.
104 pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet,
105 true);
106 break;
107 #endif // defined(GOOGLE_CHROME_BUILD)
70 case IDC_MEDIA_ROUTER_HELP: 108 case IDC_MEDIA_ROUTER_HELP:
71 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); 109 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
72 base::RecordAction(base::UserMetricsAction( 110 base::RecordAction(base::UserMetricsAction(
73 "MediaRouter_Ui_Navigate_Help")); 111 "MediaRouter_Ui_Navigate_Help"));
74 break; 112 break;
75 case IDC_MEDIA_ROUTER_LEARN_MORE: 113 case IDC_MEDIA_ROUTER_LEARN_MORE:
76 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); 114 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl));
77 break; 115 break;
78 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION: 116 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION:
79 RemoveMediaRouterComponentAction(); 117 RemoveMediaRouterComponentAction();
(...skipping 19 matching lines...) Expand all
99 std::string(url::kStandardSchemeSeparator) + 137 std::string(url::kStandardSchemeSeparator) +
100 media_router->media_route_provider_extension_id() + 138 media_router->media_route_provider_extension_id() +
101 "/feedback.html"); 139 "/feedback.html");
102 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); 140 chrome::ShowSingletonTab(browser_, GURL(feedback_url));
103 } 141 }
104 142
105 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() { 143 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() {
106 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper() 144 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper()
107 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId); 145 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId);
108 } 146 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/media_router_contextual_menu.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698