1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_PROFILES_PROFILES_STATE_H_
6 #define CHROME_BROWSER_PROFILES_PROFILES_STATE_H_
9 #include "base/strings/string16.h"
12 class PrefRegistrySimple
;
14 namespace base
{ class FilePath
; }
18 // Checks if multiple profiles is enabled.
19 bool IsMultipleProfilesEnabled();
21 // Returns the path to the default profile directory, based on the given
22 // user data directory.
23 base::FilePath
GetDefaultProfileDir(const base::FilePath
& user_data_dir
);
25 // Register multi-profile related preferences in Local State.
26 void RegisterPrefs(PrefRegistrySimple
* registry
);
28 // Returns the display name of the active on-the-record profile (or guest)
29 // used in the avatar button. If there is only one local profile present, it
30 // will return IDS_SINGLE_PROFILE_DISPLAY_NAME, unless the profile has a
31 // user entered custom name.
32 base::string16
GetAvatarNameForProfile(Profile
* profile
);
34 // Update the name of |profile| to |new_profile_name|. This updates the
35 // profile preferences, which triggers an update in the ProfileInfoCache.
36 void UpdateProfileName(Profile
* profile
,
37 const base::string16
& new_profile_name
);
39 // Returns the list of secondary accounts for a specific |profile|, which is
40 // all the email addresses associated with the profile that are not equal to
41 // the |primary_account|.
42 std::vector
<std::string
> GetSecondaryAccountsForProfile(
44 const std::string
& primary_account
);
46 // Returns whether the |browser|'s profile is a non-incognito or guest profile.
47 // The distinction is needed because guest profiles are implemented as
48 // incognito profiles.
49 bool IsRegularOrGuestSession(Browser
* browser
);
51 } // namespace profiles
53 #endif // CHROME_BROWSER_PROFILES_PROFILES_STATE_H_