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

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: 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
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"
14 #include "chrome/grit/generated_resources.h" 17 #include "chrome/grit/generated_resources.h"
18 #include "chrome/grit/google_chrome_strings.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_FROM_CHROME,
34 IDS_EXTENSIONS_UNINSTALL);
apacible 2016/01/22 16:53:55 Does this fall back to Chromium's IDS_EXTENSIONS_U
mark a. foltz 2016/01/22 18:01:55 I changed the #include to chromium_strings.h which
apacible 2016/01/22 18:30:46 Acknowledged.
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;
(...skipping 12 matching lines...) Expand all
51 base::string16 MediaRouterContextualMenu::GetLabelForCommandId( 57 base::string16 MediaRouterContextualMenu::GetLabelForCommandId(
52 int command_id) const { 58 int command_id) const {
53 int string_id; 59 int string_id;
54 switch (command_id) { 60 switch (command_id) {
55 case IDC_MEDIA_ROUTER_ABOUT: 61 case IDC_MEDIA_ROUTER_ABOUT:
56 string_id = IDS_MEDIA_ROUTER_ABOUT; 62 string_id = IDS_MEDIA_ROUTER_ABOUT;
57 break; 63 break;
58 case IDC_MEDIA_ROUTER_HELP: 64 case IDC_MEDIA_ROUTER_HELP:
59 string_id = IDS_MEDIA_ROUTER_HELP; 65 string_id = IDS_MEDIA_ROUTER_HELP;
60 break; 66 break;
67 case IDC_MEDIA_ROUTER_REMOVE_FROM_CHROME:
68 string_id = IDS_EXTENSIONS_UNINSTALL;
69 break;
61 case IDC_MEDIA_ROUTER_LEARN_MORE: 70 case IDC_MEDIA_ROUTER_LEARN_MORE:
62 string_id = IDS_MEDIA_ROUTER_LEARN_MORE; 71 string_id = IDS_MEDIA_ROUTER_LEARN_MORE;
63 break; 72 break;
64 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 73 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
65 string_id = IDS_MEDIA_ROUTER_REPORT_ISSUE; 74 string_id = IDS_MEDIA_ROUTER_REPORT_ISSUE;
66 break; 75 break;
67 default: 76 default:
68 NOTREACHED(); 77 NOTREACHED();
69 return base::string16(); 78 return base::string16();
70 } 79 }
(...skipping 15 matching lines...) Expand all
86 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl)); 95 chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
87 break; 96 break;
88 case IDC_MEDIA_ROUTER_HELP: 97 case IDC_MEDIA_ROUTER_HELP:
89 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); 98 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl));
90 base::RecordAction(base::UserMetricsAction( 99 base::RecordAction(base::UserMetricsAction(
91 "MediaRouter_Ui_Navigate_Help")); 100 "MediaRouter_Ui_Navigate_Help"));
92 break; 101 break;
93 case IDC_MEDIA_ROUTER_LEARN_MORE: 102 case IDC_MEDIA_ROUTER_LEARN_MORE:
94 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); 103 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl));
95 break; 104 break;
105 case IDC_MEDIA_ROUTER_REMOVE_FROM_CHROME:
106 RemoveMediaRouterComponentAction();
107 break;
96 case IDC_MEDIA_ROUTER_REPORT_ISSUE: 108 case IDC_MEDIA_ROUTER_REPORT_ISSUE:
97 ReportIssue(); 109 ReportIssue();
98 break; 110 break;
99 default: 111 default:
100 NOTREACHED(); 112 NOTREACHED();
101 } 113 }
102 } 114 }
103 115
104 void MediaRouterContextualMenu::ReportIssue() { 116 void MediaRouterContextualMenu::ReportIssue() {
105 // Opens feedback page loaded from the media router extension. 117 // Opens feedback page loaded from the media router extension.
106 // This is temporary until feedback UI is redesigned. 118 // This is temporary until feedback UI is redesigned.
107 media_router::MediaRouterMojoImpl* media_router = 119 media_router::MediaRouterMojoImpl* media_router =
108 static_cast<media_router::MediaRouterMojoImpl*>( 120 static_cast<media_router::MediaRouterMojoImpl*>(
109 media_router::MediaRouterFactory::GetApiForBrowserContext( 121 media_router::MediaRouterFactory::GetApiForBrowserContext(
110 static_cast<content::BrowserContext*>(browser_->profile()))); 122 static_cast<content::BrowserContext*>(browser_->profile())));
111 if (media_router->media_route_provider_extension_id().empty()) 123 if (media_router->media_route_provider_extension_id().empty())
112 return; 124 return;
113 std::string feedback_url(extensions::kExtensionScheme + 125 std::string feedback_url(extensions::kExtensionScheme +
114 std::string(url::kStandardSchemeSeparator) + 126 std::string(url::kStandardSchemeSeparator) +
115 media_router->media_route_provider_extension_id() + 127 media_router->media_route_provider_extension_id() +
116 "/feedback.html"); 128 "/feedback.html");
117 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); 129 chrome::ShowSingletonTab(browser_, GURL(feedback_url));
118 } 130 }
131
132 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() {
133 extensions::ComponentMigrationHelper* const component_migration_helper =
134 ToolbarActionsModel::Get(browser_->profile())
135 ->component_migration_helper();
136 component_migration_helper->OnActionRemoved(
137 ComponentToolbarActionsFactory::kMediaRouterActionId);
138 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698