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

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