| 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..a24fdb8c8633baab0fd437ebc0b0450975b8327a 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,9 +26,17 @@
|
| #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())
|
| @@ -40,9 +50,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 +90,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 {
|
|
|