Chromium Code Reviews| Index: chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| diff --git a/chrome/browser/ui/toolbar/media_router_contextual_menu.cc b/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| index a7d5bc4e4561162925ce00183d61af0ea2578ae5..7a07c7be8941c26ba3a4cbdfd9bb39695c9a7db5 100644 |
| --- a/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| +++ b/chrome/browser/ui/toolbar/media_router_contextual_menu.cc |
| @@ -2,6 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
| + |
| #include <string> |
| #include "base/logging.h" |
| @@ -15,7 +17,7 @@ |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/singleton_tabs.h" |
| #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h" |
| -#include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
| +#include "chrome/browser/ui/toolbar/media_router_action_controller.h" |
| #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| @@ -24,13 +26,22 @@ |
| #include "components/signin/core/browser/signin_manager.h" |
| #include "extensions/common/constants.h" |
| #include "ui/base/models/menu_model_delegate.h" |
| - |
| +#include "ui/gfx/color_palette.h" |
| +#include "ui/gfx/paint_vector_icon.h" |
| MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) |
| + : MediaRouterContextualMenu( |
| + browser, |
| + MediaRouterActionController::IsActionShownByPolicy( |
| + browser->profile())) {} |
| + |
| +MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser, |
| + bool shown_by_policy) |
| : browser_(browser), |
| menu_model_(this), |
| component_migration_helper_(ToolbarActionsModel::Get(browser->profile()) |
| - ->component_migration_helper()) { |
| + ->component_migration_helper()), |
| + shown_by_policy_(shown_by_policy) { |
|
msw
2017/01/05 01:14:57
This member isn't needed if it's only accessed in
takumif
2017/01/06 22:06:57
Right, removed.
|
| DCHECK(component_migration_helper_); |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT, |
| @@ -40,9 +51,18 @@ MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser) |
| IDS_MEDIA_ROUTER_LEARN_MORE); |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP, |
| IDS_MEDIA_ROUTER_HELP); |
| - menu_model_.AddCheckItemWithStringId( |
| - IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION, |
| - IDS_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION); |
| + if (shown_by_policy_) { |
| + menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_SHOWN_BY_POLICY, |
| + IDS_MEDIA_ROUTER_SHOWN_BY_POLICY); |
| + menu_model_.SetIcon( |
| + menu_model_.GetIndexOfCommandId(IDC_MEDIA_ROUTER_SHOWN_BY_POLICY), |
| + gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BUSINESS, 16, |
| + gfx::kChromeIconGrey))); |
| + } else { |
| + menu_model_.AddCheckItemWithStringId( |
| + IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION, |
| + IDS_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION); |
| + } |
| menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
| #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) |
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_MANAGE_DEVICES, |
| @@ -71,14 +91,13 @@ bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const { |
| return browser_->profile()->GetPrefs()->GetBoolean( |
| prefs::kMediaRouterEnableCloudServices); |
| } |
| - if (command_id == IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION) { |
| + if (command_id == IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION) |
| return GetAlwaysShowActionPref(); |
| - } |
| return false; |
| } |
| bool MediaRouterContextualMenu::IsCommandIdEnabled(int command_id) const { |
| - return true; |
| + return command_id != IDC_MEDIA_ROUTER_SHOWN_BY_POLICY; |
| } |
| bool MediaRouterContextualMenu::IsCommandIdVisible(int command_id) const { |