incognito_mode_prefs.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ 6#define CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ 7 8#include "base/basictypes.h" 9 10class CommandLine; 11class PrefService; 12class PrefRegistrySyncable; 13 14// Specifies Incognito mode availability preferences. 15class IncognitoModePrefs { 16 public: 17 // Possible values for Incognito mode availability. Please, do not change 18 // the order of entries since numeric values are exposed to users. 19 enum Availability { 20 // Incognito mode enabled. Users may open pages in both Incognito mode and 21 // normal mode (the default behaviour). 22 ENABLED = 0, 23 // Incognito mode disabled. Users may not open pages in Incognito mode. 24 // Only normal mode is available for browsing. 25 DISABLED, 26 // Incognito mode forced. Users may open pages *ONLY* in Incognito mode. 27 // Normal mode is not available for browsing. 28 FORCED, 29 30 AVAILABILITY_NUM_TYPES 31 }; 32 33 // Register incognito related preferences. 34 static void RegisterUserPrefs(PrefRegistrySyncable* registry); 35 36 // Returns kIncognitoModeAvailability preference value stored 37 // in the given pref service. 38 static Availability GetAvailability(const PrefService* prefs); 39 40 // Sets kIncognitoModeAvailability preference to the specified availability 41 // value. 42 static void SetAvailability(PrefService* prefs, 43 const Availability availability); 44 45 // Converts in_value into the corresponding Availability value. Returns true 46 // if conversion is successful (in_value is valid). Otherwise, returns false 47 // and *out_value is set to ENABLED. 48 static bool IntToAvailability(int in_value, Availability* out_value); 49 50 // Returns true if the browser should start in incognito mode. 51 static bool ShouldLaunchIncognito(const CommandLine& command_line, 52 const PrefService* prefs); 53 54 private: 55 DISALLOW_IMPLICIT_CONSTRUCTORS(IncognitoModePrefs); 56}; 57 58#endif // CHROME_BROWSER_PREFS_INCOGNITO_MODE_PREFS_H_ 59