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

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

Issue 2260343002: Revert of Show the Cast toolbar icon ephemerally when Cast is in use (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
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/mojo/media_router_mojo_impl.h" 10 #include "chrome/browser/media/router/mojo/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_action.h"
16 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" 15 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h"
17 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" 16 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
18 #include "chrome/common/pref_names.h"
19 #include "chrome/common/url_constants.h" 17 #include "chrome/common/url_constants.h"
20 #include "chrome/grit/chromium_strings.h" 18 #include "chrome/grit/chromium_strings.h"
21 #include "chrome/grit/generated_resources.h" 19 #include "chrome/grit/generated_resources.h"
22 #include "components/prefs/pref_service.h"
23 #include "extensions/common/constants.h" 20 #include "extensions/common/constants.h"
24 #include "ui/base/l10n/l10n_util.h" 21 #include "ui/base/l10n/l10n_util.h"
25 #include "ui/base/models/menu_model_delegate.h" 22 #include "ui/base/models/menu_model_delegate.h"
26 23
27 #if defined(GOOGLE_CHROME_BUILD) 24 #if defined(GOOGLE_CHROME_BUILD)
28 #include "chrome/browser/signin/signin_manager_factory.h" 25 #include "chrome/browser/signin/signin_manager_factory.h"
26 #include "chrome/common/pref_names.h"
27 #include "components/prefs/pref_service.h"
29 #include "components/signin/core/browser/signin_manager.h" 28 #include "components/signin/core/browser/signin_manager.h"
30 #endif // defined(GOOGLE_CHROME_BUILD) 29 #endif // defined(GOOGLE_CHROME_BUILD)
31 30
32 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser, 31 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
33 MediaRouterAction* action)
34 : browser_(browser), 32 : browser_(browser),
35 menu_model_(this), 33 menu_model_(this) {
36 action_(action) {
37 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, 34 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT,
38 IDS_MEDIA_ROUTER_ABOUT); 35 IDS_MEDIA_ROUTER_ABOUT);
39 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 36 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
40 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, 37 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE,
41 IDS_MEDIA_ROUTER_LEARN_MORE); 38 IDS_MEDIA_ROUTER_LEARN_MORE);
42 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, 39 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP,
43 IDS_MEDIA_ROUTER_HELP); 40 IDS_MEDIA_ROUTER_HELP);
44 menu_model_.AddCheckItemWithStringId( 41 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION,
45 IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION, 42 IDS_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION);
46 IDS_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION);
47 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 43 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
48 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) 44 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
49 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_MANAGE_DEVICES, 45 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_MANAGE_DEVICES,
50 IDS_MEDIA_ROUTER_MANAGE_DEVICES); 46 IDS_MEDIA_ROUTER_MANAGE_DEVICES);
51 #endif 47 #endif
52 #if defined(GOOGLE_CHROME_BUILD) 48 #if defined(GOOGLE_CHROME_BUILD)
53 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE, 49 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE,
54 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE); 50 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE);
55 #endif // defined(GOOGLE_CHROME_BUILD) 51 #endif // defined(GOOGLE_CHROME_BUILD)
56 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, 52 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE,
57 IDS_MEDIA_ROUTER_REPORT_ISSUE); 53 IDS_MEDIA_ROUTER_REPORT_ISSUE);
58 } 54 }
59 55
60 MediaRouterContextualMenu::~MediaRouterContextualMenu() { 56 MediaRouterContextualMenu::~MediaRouterContextualMenu() {
61 } 57 }
62 58
63 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { 59 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
64 #if defined(GOOGLE_CHROME_BUILD) 60 #if defined(GOOGLE_CHROME_BUILD)
65 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) { 61 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) {
66 return browser_->profile()->GetPrefs()->GetBoolean( 62 return browser_->profile()->GetPrefs()->GetBoolean(
67 prefs::kMediaRouterEnableCloudServices); 63 prefs::kMediaRouterEnableCloudServices);
68 } 64 }
69 #endif // defined(GOOGLE_CHROME_BUILD) 65 #endif // defined(GOOGLE_CHROME_BUILD)
70 if (command_id == IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION) {
71 return browser_->profile()->GetPrefs()->GetBoolean(
72 prefs::kMediaRouterAlwaysShowActionIcon);
73 }
74 return false; 66 return false;
75 } 67 }
76 68
77 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { 69 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const {
78 return true; 70 return true;
79 } 71 }
80 72
81 bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const { 73 bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const {
82 #if defined(GOOGLE_CHROME_BUILD) 74 #if defined(GOOGLE_CHROME_BUILD)
83 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) { 75 if (command_id == IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE) {
(...skipping 10 matching lines...) Expand all
94 void MediaRouterContextualMenu::ExecuteCommand(int command_id, 86 void MediaRouterContextualMenu::ExecuteCommand(int command_id,
95 int event_flags) { 87 int event_flags) {
96 const char kAboutPageUrl[] = 88 const char kAboutPageUrl[] =
97 "https://www.google.com/chrome/devices/chromecast/"; 89 "https://www.google.com/chrome/devices/chromecast/";
98 const char kCastHelpCenterPageUrl[] = 90 const char kCastHelpCenterPageUrl[] =
99 "https://support.google.com/chromecast/topic/3447927"; 91 "https://support.google.com/chromecast/topic/3447927";
100 const char kCastLearnMorePageUrl[] = 92 const char kCastLearnMorePageUrl[] =
101 "https://support.google.com/chromecast/answer/2998338"; 93 "https://support.google.com/chromecast/answer/2998338";
102 94
103 #if defined(GOOGLE_CHROME_BUILD) 95 #if defined(GOOGLE_CHROME_BUILD)
96 PrefService* pref_service;
104 #endif // defined(GOOGLE_CHROME_BUILD) 97 #endif // defined(GOOGLE_CHROME_BUILD)
105 switch (command_id) { 98 switch (command_id) {
106 case IDC_MEDIA_ROUTER_ABOUT: 99 case IDC_MEDIA_ROUTER_ABOUT:
107 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); 100 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
108 break; 101 break;
109 case IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION:
110 DCHECK(action_);
111 action_->ToggleVisibilityPreference();
112 break;
113 #if defined(GOOGLE_CHROME_BUILD) 102 #if defined(GOOGLE_CHROME_BUILD)
114 case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE: { 103 case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE:
115 PrefService* pref_service = browser_->profile()->GetPrefs(); 104 pref_service = browser_->profile()->GetPrefs();
116 pref_service->SetBoolean(prefs::kMediaRouterEnableCloudServices, 105 pref_service->SetBoolean(prefs::kMediaRouterEnableCloudServices,
117 !pref_service->GetBoolean(prefs::kMediaRouterEnableCloudServices)); 106 !pref_service->GetBoolean(prefs::kMediaRouterEnableCloudServices));
118 107
119 // If this has been set before, this is a no-op. 108 // If this has been set before, this is a no-op.
120 pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet, true); 109 pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet,
110 true);
121 break; 111 break;
122 }
123 #endif // defined(GOOGLE_CHROME_BUILD) 112 #endif // defined(GOOGLE_CHROME_BUILD)
124 case IDC_MEDIA_ROUTER_HELP: 113 case IDC_MEDIA_ROUTER_HELP:
125 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); 114 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
126 base::RecordAction(base::UserMetricsAction( 115 base::RecordAction(base::UserMetricsAction(
127 "MediaRouter_Ui_Navigate_Help")); 116 "MediaRouter_Ui_Navigate_Help"));
128 break; 117 break;
129 case IDC_MEDIA_ROUTER_LEARN_MORE: 118 case IDC_MEDIA_ROUTER_LEARN_MORE:
130 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); 119 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl));
131 break; 120 break;
132 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) 121 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
133 case IDC_MEDIA_ROUTER_MANAGE_DEVICES: 122 case IDC_MEDIA_ROUTER_MANAGE_DEVICES:
134 chrome::ShowSingletonTab(browser_, GURL(chrome::kChromeUICastURL)); 123 chrome::ShowSingletonTab(browser_, GURL(chrome::kChromeUICastURL));
135 break; 124 break;
136 #endif 125 #endif
126 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION:
127 RemoveMediaRouterComponentAction();
128 break;
137 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 129 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
138 ReportIssue(); 130 ReportIssue();
139 break; 131 break;
140 default: 132 default:
141 NOTREACHED(); 133 NOTREACHED();
142 } 134 }
143 } 135 }
144 136
145 void MediaRouterContextualMenu::ReportIssue() { 137 void MediaRouterContextualMenu::ReportIssue() {
146 // Opens feedback page loaded from the media router extension. 138 // Opens feedback page loaded from the media router extension.
147 // This is temporary until feedback UI is redesigned. 139 // This is temporary until feedback UI is redesigned.
148 // TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl 140 // TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl
149 media_router::MediaRouterMojoImpl* media_router = 141 media_router::MediaRouterMojoImpl* media_router =
150 static_cast<media_router::MediaRouterMojoImpl*>( 142 static_cast<media_router::MediaRouterMojoImpl*>(
151 media_router::MediaRouterFactory::GetApiForBrowserContext( 143 media_router::MediaRouterFactory::GetApiForBrowserContext(
152 static_cast<content::BrowserContext*>(browser_->profile()))); 144 static_cast<content::BrowserContext*>(browser_->profile())));
153 if (media_router->media_route_provider_extension_id().empty()) 145 if (media_router->media_route_provider_extension_id().empty())
154 return; 146 return;
155 std::string feedback_url(extensions::kExtensionScheme + 147 std::string feedback_url(extensions::kExtensionScheme +
156 std::string(url::kStandardSchemeSeparator) + 148 std::string(url::kStandardSchemeSeparator) +
157 media_router->media_route_provider_extension_id() + 149 media_router->media_route_provider_extension_id() +
158 "/feedback.html"); 150 "/feedback.html");
159 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); 151 chrome::ShowSingletonTab(browser_, GURL(feedback_url));
160 } 152 }
153
154 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() {
155 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper()
156 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId);
157 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/media_router_contextual_menu.h ('k') | chrome/browser/ui/toolbar/toolbar_actions_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698