 Chromium Code Reviews
 Chromium Code Reviews Issue 2104463002:
  [Media Router] Add a context menu item to access the chrome://cast page  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 2104463002:
  [Media Router] Add a context menu item to access the chrome://cast page  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| OLD | NEW | 
|---|---|
| 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_contextual_menu.h" | 15 #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" | 
| 16 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" | 16 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" | 
| 17 #include "chrome/common/url_constants.h" | |
| 17 #include "chrome/grit/chromium_strings.h" | 18 #include "chrome/grit/chromium_strings.h" | 
| 18 #include "chrome/grit/generated_resources.h" | 19 #include "chrome/grit/generated_resources.h" | 
| 19 #include "extensions/common/constants.h" | 20 #include "extensions/common/constants.h" | 
| 20 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" | 
| 21 #include "ui/base/models/menu_model_delegate.h" | 22 #include "ui/base/models/menu_model_delegate.h" | 
| 22 | 23 | 
| 23 #if defined(GOOGLE_CHROME_BUILD) | 24 #if defined(GOOGLE_CHROME_BUILD) | 
| 24 #include "chrome/browser/signin/signin_manager_factory.h" | 25 #include "chrome/browser/signin/signin_manager_factory.h" | 
| 25 #include "chrome/browser/sync/profile_sync_service_factory.h" | 26 #include "chrome/browser/sync/profile_sync_service_factory.h" | 
| 26 #include "chrome/common/pref_names.h" | 27 #include "chrome/common/pref_names.h" | 
| 27 #include "components/browser_sync/browser/profile_sync_service.h" | 28 #include "components/browser_sync/browser/profile_sync_service.h" | 
| 28 #include "components/prefs/pref_service.h" | 29 #include "components/prefs/pref_service.h" | 
| 29 #include "components/signin/core/browser/signin_manager.h" | 30 #include "components/signin/core/browser/signin_manager.h" | 
| 30 #endif // defined(GOOGLE_CHROME_BUILD) | 31 #endif // defined(GOOGLE_CHROME_BUILD) | 
| 31 | 32 | 
| 32 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) | 33 MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) | 
| 33 : browser_(browser), | 34 : browser_(browser), | 
| 34 menu_model_(this) { | 35 menu_model_(this) { | 
| 35 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, | 36 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, | 
| 36 IDS_MEDIA_ROUTER_ABOUT); | 37 IDS_MEDIA_ROUTER_ABOUT); | 
| 37 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 38 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 
| 38 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, | 39 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_LEARN_MORE, | 
| 39 IDS_MEDIA_ROUTER_LEARN_MORE); | 40 IDS_MEDIA_ROUTER_LEARN_MORE); | 
| 40 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, | 41 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, | 
| 41 IDS_MEDIA_ROUTER_HELP); | 42 IDS_MEDIA_ROUTER_HELP); | 
| 42 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION, | 43 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION, | 
| 43 IDS_EXTENSIONS_UNINSTALL); | 44 IDS_EXTENSIONS_UNINSTALL); | 
| 44 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 45 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); | 
| 46 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) | |
| 
msw
2016/06/27 20:51:37
q: Is this not supported on Linux desktop?
 
sheretov
2016/06/27 21:16:59
Correct: not supported on Linux.
https://cs.chrom
 | |
| 47 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_MANAGE_DEVICES, | |
| 48 IDS_MEDIA_ROUTER_MANAGE_DEVICES); | |
| 49 #endif | |
| 45 #if defined(GOOGLE_CHROME_BUILD) | 50 #if defined(GOOGLE_CHROME_BUILD) | 
| 46 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE, | 51 menu_model_.AddCheckItemWithStringId(IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE, | 
| 47 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE); | 52 IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE); | 
| 48 #endif // defined(GOOGLE_CHROME_BUILD) | 53 #endif // defined(GOOGLE_CHROME_BUILD) | 
| 49 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, | 54 menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REPORT_ISSUE, | 
| 50 IDS_MEDIA_ROUTER_REPORT_ISSUE); | 55 IDS_MEDIA_ROUTER_REPORT_ISSUE); | 
| 51 } | 56 } | 
| 52 | 57 | 
| 53 MediaRouterContextualMenu::~MediaRouterContextualMenu() { | 58 MediaRouterContextualMenu::~MediaRouterContextualMenu() { | 
| 54 } | 59 } | 
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 119 break; | 124 break; | 
| 120 #endif // defined(GOOGLE_CHROME_BUILD) | 125 #endif // defined(GOOGLE_CHROME_BUILD) | 
| 121 case IDC_MEDIA_ROUTER_HELP: | 126 case IDC_MEDIA_ROUTER_HELP: | 
| 122 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); | 127 chrome::ShowSingletonTab(browser_, GURL(kCastHelpCenterPageUrl)); | 
| 123 base::RecordAction(base::UserMetricsAction( | 128 base::RecordAction(base::UserMetricsAction( | 
| 124 "MediaRouter_Ui_Navigate_Help")); | 129 "MediaRouter_Ui_Navigate_Help")); | 
| 125 break; | 130 break; | 
| 126 case IDC_MEDIA_ROUTER_LEARN_MORE: | 131 case IDC_MEDIA_ROUTER_LEARN_MORE: | 
| 127 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); | 132 chrome::ShowSingletonTab(browser_, GURL(kCastLearnMorePageUrl)); | 
| 128 break; | 133 break; | 
| 134 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) | |
| 135 case IDC_MEDIA_ROUTER_MANAGE_DEVICES: | |
| 136 chrome::ShowSingletonTab(browser_, GURL(chrome::kChromeUICastURL)); | |
| 137 break; | |
| 138 #endif | |
| 129 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION: | 139 case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION: | 
| 130 RemoveMediaRouterComponentAction(); | 140 RemoveMediaRouterComponentAction(); | 
| 131 break; | 141 break; | 
| 132 case IDC_MEDIA_ROUTER_REPORT_ISSUE: | 142 case IDC_MEDIA_ROUTER_REPORT_ISSUE: | 
| 133 ReportIssue(); | 143 ReportIssue(); | 
| 134 break; | 144 break; | 
| 135 default: | 145 default: | 
| 136 NOTREACHED(); | 146 NOTREACHED(); | 
| 137 } | 147 } | 
| 138 } | 148 } | 
| (...skipping 12 matching lines...) Expand all Loading... | |
| 151 std::string(url::kStandardSchemeSeparator) + | 161 std::string(url::kStandardSchemeSeparator) + | 
| 152 media_router->media_route_provider_extension_id() + | 162 media_router->media_route_provider_extension_id() + | 
| 153 "/feedback.html"); | 163 "/feedback.html"); | 
| 154 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); | 164 chrome::ShowSingletonTab(browser_, GURL(feedback_url)); | 
| 155 } | 165 } | 
| 156 | 166 | 
| 157 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() { | 167 void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() { | 
| 158 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper() | 168 ToolbarActionsModel::Get(browser_->profile())->component_migration_helper() | 
| 159 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId); | 169 ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId); | 
| 160 } | 170 } | 
| OLD | NEW |