Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / profiles / profiles_state.h
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.
4
5 #ifndef CHROME_BROWSER_PROFILES_PROFILES_STATE_H_
6 #define CHROME_BROWSER_PROFILES_PROFILES_STATE_H_
7
8 #include <vector>
9 #include "base/strings/string16.h"
10
11 class Browser;
12 class PrefRegistrySimple;
13 class Profile;
14 namespace base { class FilePath; }
15
16 namespace profiles {
17
18 // Checks if multiple profiles is enabled.
19 bool IsMultipleProfilesEnabled();
20
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);
24
25 // Returns the path to the preferences file given the user profile directory.
26 base::FilePath GetProfilePrefsPath(const base::FilePath& profile_dir);
27
28 // Register multi-profile related preferences in Local State.
29 void RegisterPrefs(PrefRegistrySimple* registry);
30
31 // Returns the display name of the active on-the-record profile (or guest).
32 base::string16 GetActiveProfileDisplayName(Browser* browser);
33
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);
38
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(
43     Profile* profile,
44     const std::string& primary_account);
45
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);
50
51 }  // namespace profiles
52
53 #endif  // CHROME_BROWSER_PROFILES_PROFILES_STATE_H_