| Index: chrome/browser/ui/browser_command_controller_base.cc
|
| diff --git a/chrome/browser/ui/browser_command_controller_base.cc b/chrome/browser/ui/browser_command_controller_base.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7c4dffb42f99724c0efb01ca25c1e67f521758f5
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/browser_command_controller_base.cc
|
| @@ -0,0 +1,58 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/ui/browser_command_controller_base.h"
|
| +
|
| +#include "chrome/app/chrome_command_ids.h"
|
| +#include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/command_updater.h"
|
| +#include "chrome/browser/defaults.h"
|
| +#include "chrome/browser/extensions/extension_service.h"
|
| +#include "chrome/browser/prefs/incognito_mode_prefs.h"
|
| +#include "chrome/browser/prefs/pref_service.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/common/pref_names.h"
|
| +
|
| +namespace chrome {
|
| +
|
| +void BrowserCommandControllerBase::UpdateCommandsForIncognitoAvailability(
|
| + CommandUpdater* command_updater,
|
| + Profile* profile) {
|
| + IncognitoModePrefs::Availability incognito_availability =
|
| + IncognitoModePrefs::GetAvailability(profile->GetPrefs());
|
| + command_updater->UpdateCommandEnabled(
|
| + IDC_NEW_WINDOW,
|
| + incognito_availability != IncognitoModePrefs::FORCED);
|
| + command_updater->UpdateCommandEnabled(
|
| + IDC_NEW_INCOGNITO_WINDOW,
|
| + incognito_availability != IncognitoModePrefs::DISABLED);
|
| +
|
| + // Bookmark manager and settings page/subpages are forced to open in normal
|
| + // mode. For this reason we disable these commands when incognito is forced.
|
| + const bool command_enabled =
|
| + incognito_availability != IncognitoModePrefs::FORCED;
|
| + command_updater->UpdateCommandEnabled(
|
| + IDC_SHOW_BOOKMARK_MANAGER,
|
| + browser_defaults::bookmarks_enabled && command_enabled);
|
| + ExtensionService* extension_service = profile->GetExtensionService();
|
| + bool enable_extensions =
|
| + extension_service && extension_service->extensions_enabled();
|
| + command_updater->UpdateCommandEnabled(IDC_MANAGE_EXTENSIONS,
|
| + enable_extensions && command_enabled);
|
| +
|
| + command_updater->UpdateCommandEnabled(IDC_IMPORT_SETTINGS, command_enabled);
|
| + command_updater->UpdateCommandEnabled(IDC_OPTIONS, command_enabled);
|
| +}
|
| +
|
| +void BrowserCommandControllerBase::UpdateOpenFileState(
|
| + CommandUpdater* command_updater) {
|
| + bool enabled = true;
|
| + PrefService* local_state = g_browser_process->local_state();
|
| + if (local_state)
|
| + enabled = local_state->GetBoolean(prefs::kAllowFileSelectionDialogs);
|
| +
|
| + command_updater->UpdateCommandEnabled(IDC_OPEN_FILE, enabled);
|
| +}
|
| +
|
| +} // namespace chrome
|
|
|