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

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

Issue 1612203002: [Media Router] Adds a contextual menu item to remove the MR component action. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to pkasting@ comments Created 4 years, 10 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/media/router/media_router_factory.h" 9 #include "chrome/browser/media/router/media_router_factory.h"
9 #include "chrome/browser/media/router/media_router_mojo_impl.h" 10 #include "chrome/browser/media/router/media_router_mojo_impl.h"
10 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
12 #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"
13 #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"
17 #include "chrome/grit/chromium_strings.h"
14 #include "chrome/grit/generated_resources.h" 18 #include "chrome/grit/generated_resources.h"
15 #include "extensions/common/constants.h" 19 #include "extensions/common/constants.h"
16 #include "ui/base/l10n/l10n_util.h" 20 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/base/models/menu_model_delegate.h" 21 #include "ui/base/models/menu_model_delegate.h"
18 22
19 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) 23 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
20 : browser_(browser), 24 : browser_(browser),
21 menu_model_(this) { 25 menu_model_(this) {
22 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, 26 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT,
23 IDS_MEDIA_ROUTER_ABOUT); 27 IDS_MEDIA_ROUTER_ABOUT);
24 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 28 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
25 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, 29 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE,
26 IDS_MEDIA_ROUTER_LEARN_MORE); 30 IDS_MEDIA_ROUTER_LEARN_MORE);
27 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, 31 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP,
28 IDS_MEDIA_ROUTER_HELP); 32 IDS_MEDIA_ROUTER_HELP);
33 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION,
34 IDS_EXTENSIONS_UNINSTALL);
29 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 35 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
30 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, 36 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE,
31 IDS_MEDIA_ROUTER_REPORT_ISSUE); 37 IDS_MEDIA_ROUTER_REPORT_ISSUE);
32 } 38 }
33 39
34 MediaRouterContextualMenu::~MediaRouterContextualMenu() { 40 MediaRouterContextualMenu::~MediaRouterContextualMenu() {
35 } 41 }
36 42
37 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { 43 bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
38 return false; 44 return false;
39 } 45 }
40 46
41 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { 47 bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const {
42 return true; 48 return true;
43 } 49 }
44 50
45 bool MediaRouterContextualMenu::GetAcceleratorForCommandId( 51 bool MediaRouterContextualMenu::GetAcceleratorForCommandId(
46 int command_id, 52 int command_id,
47 ui::Accelerator* accelerator) { 53 ui::Accelerator* accelerator) {
48 return false; 54 return false;
49 } 55 }
50 56
51 base::string16 MediaRouterContextualMenu::GetLabelForCommandId(
52 int command_id) const {
53 int string_id;
54 switch (command_id) {
55 case IDC_MEDIA_ROUTER_ABOUT:
56 string_id = IDS_MEDIA_ROUTER_ABOUT;
57 break;
58 case IDC_MEDIA_ROUTER_HELP:
59 string_id = IDS_MEDIA_ROUTER_HELP;
60 break;
61 case IDC_MEDIA_ROUTER_LEARN_MORE:
62 string_id = IDS_MEDIA_ROUTER_LEARN_MORE;
63 break;
64 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
65 string_id = IDS_MEDIA_ROUTER_REPORT_ISSUE;
66 break;
67 default:
68 NOTREACHED();
69 return base::string16();
70 }
71
72 return l10n_util::GetStringUTF16(string_id);
73 }
74
75 void MediaRouterContextualMenu::ExecuteCommand(int command_id, 57 void MediaRouterContextualMenu::ExecuteCommand(int command_id,
76 int event_flags) { 58 int event_flags) {
77 const char kAboutPageUrl[] = 59 const char kAboutPageUrl[] =
78 "https://www.google.com/chrome/devices/chromecast/"; 60 "https://www.google.com/chrome/devices/chromecast/";
79 const char kCastHelpCenterPageUrl[] = 61 const char kCastHelpCenterPageUrl[] =
80 "https://support.google.com/chromecast#topic=3058948"; 62 "https://support.google.com/chromecast#topic=3058948";
81 const char kCastLearnMorePageUrl[] = 63 const char kCastLearnMorePageUrl[] =
82 "https://www.google.com/chrome/devices/chromecast/learn.html"; 64 "https://www.google.com/chrome/devices/chromecast/learn.html";
83 65
84 switch (command_id) { 66 switch (command_id) {
85 case IDC_MEDIA_ROUTER_ABOUT: 67 case IDC_MEDIA_ROUTER_ABOUT:
86 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); 68 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
87 break; 69 break;
88 case IDC_MEDIA_ROUTER_HELP: 70 case IDC_MEDIA_ROUTER_HELP:
89 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); 71 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
90 base::RecordAction(base::UserMetricsAction( 72 base::RecordAction(base::UserMetricsAction(
91 "MediaRouter_Ui_Navigate_Help")); 73 "MediaRouter_Ui_Navigate_Help"));
92 break; 74 break;
93 case IDC_MEDIA_ROUTER_LEARN_MORE: 75 case IDC_MEDIA_ROUTER_LEARN_MORE:
94 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); 76 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl));
95 break; 77 break;
78 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION:
79 RemoveMediaRouterComponentAction();
80 break;
96 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 81 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
97 ReportIssue(); 82 ReportIssue();
98 break; 83 break;
99 default: 84 default:
100 NOTREACHED(); 85 NOTREACHED();
101 } 86 }
102 } 87 }
103 88
104 void MediaRouterContextualMenu::ReportIssue() { 89 void MediaRouterContextualMenu::ReportIssue() {
105 // Opens feedback page loaded from the media router extension. 90 // Opens feedback page loaded from the media router extension.
106 // This is temporary until feedback UI is redesigned. 91 // This is temporary until feedback UI is redesigned.
107 media_router::MediaRouterMojoImpl* media_router = 92 media_router::MediaRouterMojoImpl* media_router =
108 static_cast<media_router::MediaRouterMojoImpl*>( 93 static_cast<media_router::MediaRouterMojoImpl*>(
109 media_router::MediaRouterFactory::GetApiForBrowserContext( 94 media_router::MediaRouterFactory::GetApiForBrowserContext(
110 static_cast<content::BrowserContext*>(browser_->profile()))); 95 static_cast<content::BrowserContext*>(browser_->profile())));
111 if (media_router->media_route_provider_extension_id().empty()) 96 if (media_router->media_route_provider_extension_id().empty())
112 return; 97 return;
113 std::string feedback_url(extensions::kExtensionScheme + 98 std::string feedback_url(extensions::kExtensionScheme +
114 std::string(url::kStandardSchemeSeparator) + 99 std::string(url::kStandardSchemeSeparator) +
115 media_router->media_route_provider_extension_id() + 100 media_router->media_route_provider_extension_id() +
116 "/feedback.html"); 101 "/feedback.html");
117 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); 102 chrome::ShowSingletonTab(browser_, GURL(feedback_url));
118 } 103 }
104
105 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() {
106 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper()
107 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId);
108 }
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