diff options
author | rustema@google.com <rustema@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 05:28:27 +0000 |
---|---|---|
committer | rustema@google.com <rustema@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 05:28:27 +0000 |
commit | 4e94ab3d72e4fd1cf76be4014721985dde1b724b (patch) | |
tree | c13ad27f4de1f44ee054929ead4960ca90039b90 /chrome/browser/prefs/incognito_mode_prefs.h | |
parent | 85acecb3f21d0905acae3fbbb27f904f15a6b878 (diff) | |
download | chromium_src-4e94ab3d72e4fd1cf76be4014721985dde1b724b.zip chromium_src-4e94ab3d72e4fd1cf76be4014721985dde1b724b.tar.gz chromium_src-4e94ab3d72e4fd1cf76be4014721985dde1b724b.tar.bz2 |
Converted IncognitoForced boolean policy into IncognitoModeAvailability enum policy.
Enum may take 3 values:
* ENABLED (default) - both normal and incognito modes are allowed.
* DISABLED - incognito mode cannot be used.
* FORCED - browsing is only possible in incognito mode.
Mapped IncognitoEnabled::false to IncognitoModeAvailability::DISABLED when IncognitoModeAvailability policy/pref is not set.
Removed IncognitoEnabled pref (no longer used).
BUG=69580
TEST=
Review URL: http://codereview.chromium.org/7520023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95580 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prefs/incognito_mode_prefs.h')
-rw-r--r-- | chrome/browser/prefs/incognito_mode_prefs.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/chrome/browser/prefs/incognito_mode_prefs.h b/chrome/browser/prefs/incognito_mode_prefs.h new file mode 100644 index 0000000..907ac96 --- /dev/null +++ b/chrome/browser/prefs/incognito_mode_prefs.h @@ -0,0 +1,53 @@ +// Copyright (c) 2011 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. + +#ifndef CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ +#define CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ +#pragma once + +#include "base/basictypes.h" + +class PrefService; + +// Specifies Incognito mode availability preferences. +class IncognitoModePrefs { + public: + // Possible values for Incognito mode availability. Please, do not change + // the order of entries since numeric values are exposed to users. + enum Availability { + // Incognito mode enabled. Users may open pages in both Incognito mode and + // normal mode (the default behaviour). + ENABLED = 0, + // Incognito mode disabled. Users may not open pages in Incognito mode. + // Only normal mode is available for browsing. + DISABLED, + // Incognito mode forced. Users may open pages *ONLY* in Incognito mode. + // Normal mode is not available for browsing. + FORCED, + + AVAILABILITY_NUM_TYPES + }; + + // Register incognito related preferences. + static void RegisterUserPrefs(PrefService* prefs); + + // Returns kIncognitoModeAvailability preference value stored + // in the given pref service. + static Availability GetAvailability(const PrefService* prefs); + + // Sets kIncognitoModeAvailability preference to the specified availability + // value. + static void SetAvailability(PrefService* prefs, + const Availability availability); + + // Converts in_value into the corresponding Availability value. Returns true + // if conversion is successful (in_value is valid). Otherwise, returns false + // and *out_value is set to ENABLED. + static bool IntToAvailability(int in_value, Availability* out_value); + + private: + DISALLOW_IMPLICIT_CONSTRUCTORS(IncognitoModePrefs); +}; + +#endif // CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ |