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

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: 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/media/router/media_router_factory.h" 8 #include "chrome/browser/media/router/media_router_factory.h"
9 #include "chrome/browser/media/router/media_router_mojo_impl.h" 9 #include "chrome/browser/media/router/media_router_mojo_impl.h"
10 #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.
11 #include "base/prefs/pref_service.h"
12 #endif // defined(GOOGLE_CHROME_BUILD)
10 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/browser.h" 14 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/singleton_tabs.h" 15 #include "chrome/browser/ui/singleton_tabs.h"
13 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" 16 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h"
17 #if defined(GOOGLE_CHROME_BUILD)
18 #include "chrome/common/pref_names.h"
19 #endif // defined(GOOGLE_CHROME_BUILD)
14 #include "chrome/grit/generated_resources.h" 20 #include "chrome/grit/generated_resources.h"
15 #include "extensions/common/constants.h" 21 #include "extensions/common/constants.h"
16 #include "ui/base/l10n/l10n_util.h" 22 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/base/models/menu_model_delegate.h" 23 #include "ui/base/models/menu_model_delegate.h"
18 24
19 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) 25 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
20 : browser_(browser), 26 : browser_(browser),
21 menu_model_(this) { 27 menu_model_(this) {
22 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, 28 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT,
23 IDS_MEDIA_ROUTER_ABOUT); 29 IDS_MEDIA_ROUTER_ABOUT);
24 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 30 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
31 #if defined(GOOGLE_CHROME_BUILD)
32 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE,
33 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE);
34 #endif // defined(GOOGLE_CHROME_BUILD)
25 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, 35 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE,
26 IDS_MEDIA_ROUTER_LEARN_MORE); 36 IDS_MEDIA_ROUTER_LEARN_MORE);
27 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, 37 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP,
28 IDS_MEDIA_ROUTER_HELP); 38 IDS_MEDIA_ROUTER_HELP);
29 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 39 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
30 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, 40 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE,
31 IDS_MEDIA_ROUTER_REPORT_ISSUE); 41 IDS_MEDIA_ROUTER_REPORT_ISSUE);
32 } 42 }
33 43
34 MediaRouterContextualMenu::~MediaRouterContextualMenu() { 44 MediaRouterContextualMenu::~MediaRouterContextualMenu() {
35 } 45 }
36 46
37 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { 47 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
48 #if defined(GOOGLE_CHROME_BUILD)
49 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) {
50 return browser_->profile()->GetPrefs()->GetBoolean(
51 prefs::kMediaRouterEnableCloudServices);
52 }
53 #endif // defined(GOOGLE_CHROME_BUILD)
38 return false; 54 return false;
39 } 55 }
40 56
41 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { 57 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const {
42 return true; 58 return true;
43 } 59 }
44 60
61 bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const {
62 #if defined(GOOGLE_CHROME_BUILD)
63 // Cloud services preference is not set or used if sync is disabled.
64 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.
65 return browser_->profile()->IsSyncAllowed();
66 }
67 #endif // defined(GOOGLE_CHROME_BUILD)
68 return true;
69 }
70
45 bool MediaRouterContextualMenu::GetAcceleratorForCommandId( 71 bool MediaRouterContextualMenu::GetAcceleratorForCommandId(
46 int command_id, 72 int command_id,
47 ui::Accelerator* accelerator) { 73 ui::Accelerator* accelerator) {
48 return false; 74 return false;
49 } 75 }
50 76
51 base::string16 MediaRouterContextualMenu::GetLabelForCommandId( 77 base::string16 MediaRouterContextualMenu::GetLabelForCommandId(
52 int command_id) const { 78 int command_id) const {
53 int string_id; 79 int string_id;
54 switch (command_id) { 80 switch (command_id) {
55 case IDC_MEDIA_ROUTER_ABOUT: 81 case IDC_MEDIA_ROUTER_ABOUT:
56 string_id = IDS_MEDIA_ROUTER_ABOUT; 82 string_id = IDS_MEDIA_ROUTER_ABOUT;
57 break; 83 break;
84 #if defined(GOOGLE_CHROME_BUILD)
85 case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE:
86 string_id = IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE;
87 break;
88 #endif // defined(GOOGLE_CHROME_BUILD)
58 case IDC_MEDIA_ROUTER_HELP: 89 case IDC_MEDIA_ROUTER_HELP:
59 string_id = IDS_MEDIA_ROUTER_HELP; 90 string_id = IDS_MEDIA_ROUTER_HELP;
60 break; 91 break;
61 case IDC_MEDIA_ROUTER_LEARN_MORE: 92 case IDC_MEDIA_ROUTER_LEARN_MORE:
62 string_id = IDS_MEDIA_ROUTER_LEARN_MORE; 93 string_id = IDS_MEDIA_ROUTER_LEARN_MORE;
63 break; 94 break;
64 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 95 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
65 string_id = IDS_MEDIA_ROUTER_REPORT_ISSUE; 96 string_id = IDS_MEDIA_ROUTER_REPORT_ISSUE;
66 break; 97 break;
67 default: 98 default:
(...skipping 10 matching lines...) Expand all
78 "https://www.google.com/chrome/devices/chromecast/"; 109 "https://www.google.com/chrome/devices/chromecast/";
79 const char kCastHelpCenterPageUrl[] = 110 const char kCastHelpCenterPageUrl[] =
80 "https://support.google.com/chromecast#topic=3058948"; 111 "https://support.google.com/chromecast#topic=3058948";
81 const char kCastLearnMorePageUrl[] = 112 const char kCastLearnMorePageUrl[] =
82 "https://www.google.com/chrome/devices/chromecast/learn.html"; 113 "https://www.google.com/chrome/devices/chromecast/learn.html";
83 114
84 switch (command_id) { 115 switch (command_id) {
85 case IDC_MEDIA_ROUTER_ABOUT: 116 case IDC_MEDIA_ROUTER_ABOUT:
86 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); 117 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
87 break; 118 break;
119 #if defined(GOOGLE_CHROME_BUILD)
120 case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE:
121 browser_->profile()->GetPrefs()->SetBoolean(
122 prefs::kMediaRouterEnableCloudServices,
123 !browser_->profile()->GetPrefs()->GetBoolean(
124 prefs::kMediaRouterEnableCloudServices));
125
126 // If this has been set before, this is a no-op.
127 browser_->profile()->GetPrefs()->SetBoolean(
128 prefs::kMediaRouterCloudServicesPrefSet,
129 true);
130 break;
131 #endif // defined(GOOGLE_CHROME_BUILD)
88 case IDC_MEDIA_ROUTER_HELP: 132 case IDC_MEDIA_ROUTER_HELP:
89 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); 133 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
90 base::RecordAction(base::UserMetricsAction( 134 base::RecordAction(base::UserMetricsAction(
91 "MediaRouter_Ui_Navigate_Help")); 135 "MediaRouter_Ui_Navigate_Help"));
92 break; 136 break;
93 case IDC_MEDIA_ROUTER_LEARN_MORE: 137 case IDC_MEDIA_ROUTER_LEARN_MORE:
94 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); 138 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl));
95 break; 139 break;
96 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 140 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
97 ReportIssue(); 141 ReportIssue();
(...skipping 11 matching lines...) Expand all
109 media_router::MediaRouterFactory::GetApiForBrowserContext( 153 media_router::MediaRouterFactory::GetApiForBrowserContext(
110 static_cast<content::BrowserContext*>(browser_->profile()))); 154 static_cast<content::BrowserContext*>(browser_->profile())));
111 if (media_router->media_route_provider_extension_id().empty()) 155 if (media_router->media_route_provider_extension_id().empty())
112 return; 156 return;
113 std::string feedback_url(extensions::kExtensionScheme + 157 std::string feedback_url(extensions::kExtensionScheme +
114 std::string(url::kStandardSchemeSeparator) + 158 std::string(url::kStandardSchemeSeparator) +
115 media_router->media_route_provider_extension_id() + 159 media_router->media_route_provider_extension_id() +
116 "/feedback.html"); 160 "/feedback.html");
117 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); 161 chrome::ShowSingletonTab(browser_, GURL(feedback_url));
118 } 162 }
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