| 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 51b8744a0f4751dcd147f9aca63bc76464b24d68..7e2c3045104fac867237b715847f5aa980f837ee 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 <string>
|
| +
|
| #include "base/logging.h"
|
| #include "base/metrics/user_metrics.h"
|
| #include "chrome/app/chrome_command_ids.h"
|
| @@ -14,6 +16,7 @@
|
| #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/toolbar_actions_model.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "chrome/grit/chromium_strings.h"
|
| #include "chrome/grit/generated_resources.h"
|
| @@ -22,14 +25,16 @@
|
|
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "components/prefs/pref_service.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| #endif // defined(GOOGLE_CHROME_BUILD)
|
|
|
| MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
|
| : browser_(browser),
|
| - menu_model_(this) {
|
| + menu_model_(this),
|
| + component_migration_helper_(ToolbarActionsModel::Get(browser->profile())
|
| + ->component_migration_helper()) {
|
| + DCHECK(component_migration_helper_);
|
| +
|
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_ABOUT,
|
| IDS_MEDIA_ROUTER_ABOUT);
|
| menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
|
| @@ -37,8 +42,9 @@ MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
|
| IDS_MEDIA_ROUTER_LEARN_MORE);
|
| menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_HELP,
|
| IDS_MEDIA_ROUTER_HELP);
|
| - menu_model_.AddItemWithStringId(IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION,
|
| - IDS_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION);
|
| + 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,
|
| @@ -52,7 +58,16 @@ MediaRouterContextualMenu::MediaRouterContextualMenu(Browser* browser)
|
| IDS_MEDIA_ROUTER_REPORT_ISSUE);
|
| }
|
|
|
| -MediaRouterContextualMenu::~MediaRouterContextualMenu() {
|
| +MediaRouterContextualMenu::~MediaRouterContextualMenu() {}
|
| +
|
| +bool MediaRouterContextualMenu::GetAlwaysShowActionPref() const {
|
| + return component_migration_helper_->GetComponentActionPref(
|
| + ComponentToolbarActionsFactory::kMediaRouterActionId);
|
| +}
|
| +
|
| +void MediaRouterContextualMenu::SetAlwaysShowActionPref(bool always_show) {
|
| + component_migration_helper_->SetComponentActionPref(
|
| + ComponentToolbarActionsFactory::kMediaRouterActionId, always_show);
|
| }
|
|
|
| bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
|
| @@ -62,6 +77,9 @@ bool MediaRouterContextualMenu::IsCommandIdChecked(int command_id) const {
|
| prefs::kMediaRouterEnableCloudServices);
|
| }
|
| #endif // defined(GOOGLE_CHROME_BUILD)
|
| + if (command_id == IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION) {
|
| + return GetAlwaysShowActionPref();
|
| + }
|
| return false;
|
| }
|
|
|
| @@ -98,6 +116,9 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id,
|
| case IDC_MEDIA_ROUTER_ABOUT:
|
| chrome::ShowSingletonTab(browser_, GURL(kAboutPageUrl));
|
| break;
|
| + case IDC_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION:
|
| + SetAlwaysShowActionPref(!GetAlwaysShowActionPref());
|
| + break;
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| case IDC_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE:
|
| pref_service = browser_->profile()->GetPrefs();
|
| @@ -105,8 +126,7 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id,
|
| !pref_service->GetBoolean(prefs::kMediaRouterEnableCloudServices));
|
|
|
| // If this has been set before, this is a no-op.
|
| - pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet,
|
| - true);
|
| + pref_service->SetBoolean(prefs::kMediaRouterCloudServicesPrefSet, true);
|
| break;
|
| #endif // defined(GOOGLE_CHROME_BUILD)
|
| case IDC_MEDIA_ROUTER_HELP:
|
| @@ -122,9 +142,6 @@ void MediaRouterContextualMenu::ExecuteCommand(int command_id,
|
| chrome::ShowSingletonTab(browser_, GURL(chrome::kChromeUICastURL));
|
| break;
|
| #endif
|
| - case IDC_MEDIA_ROUTER_REMOVE_TOOLBAR_ACTION:
|
| - RemoveMediaRouterComponentAction();
|
| - break;
|
| case IDC_MEDIA_ROUTER_REPORT_ISSUE:
|
| ReportIssue();
|
| break;
|
| @@ -149,8 +166,3 @@ void MediaRouterContextualMenu::ReportIssue() {
|
| "/feedback.html");
|
| chrome::ShowSingletonTab(browser_, GURL(feedback_url));
|
| }
|
| -
|
| -void MediaRouterContextualMenu::RemoveMediaRouterComponentAction() {
|
| - ToolbarActionsModel::Get(browser_->profile())->component_migration_helper()
|
| - ->OnActionRemoved(ComponentToolbarActionsFactory::kMediaRouterActionId);
|
| -}
|
|
|