OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This class keeps track of the currently-active profiles in the runtime. | 5 // This class keeps track of the currently-active profiles in the runtime. |
6 | 6 |
7 #ifndef CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ | 7 #ifndef CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ |
8 #define CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ | 8 #define CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ |
9 | 9 |
10 #include <list> | 10 #include <list> |
(...skipping 26 matching lines...) Expand all Loading... |
37 ~ProfileManager() override; | 37 ~ProfileManager() override; |
38 | 38 |
39 #if defined(ENABLE_SESSION_SERVICE) | 39 #if defined(ENABLE_SESSION_SERVICE) |
40 // Invokes SessionServiceFactory::ShutdownForProfile() for all profiles. | 40 // Invokes SessionServiceFactory::ShutdownForProfile() for all profiles. |
41 static void ShutdownSessionServices(); | 41 static void ShutdownSessionServices(); |
42 #endif | 42 #endif |
43 | 43 |
44 // Physically remove deleted profile directories from disk. | 44 // Physically remove deleted profile directories from disk. |
45 static void NukeDeletedProfilesFromDisk(); | 45 static void NukeDeletedProfilesFromDisk(); |
46 | 46 |
47 // Same as instance method but provides the default user_data_dir as well. | |
48 // If the Profile is going to be used to open a new window then consider using | |
49 // GetLastUsedProfileAllowedByPolicy() instead. | |
50 static Profile* GetLastUsedProfile(); | |
51 | |
52 // Same as GetLastUsedProfile() but returns the incognito Profile if | |
53 // incognito mode is forced. This should be used if the last used Profile | |
54 // will be used to open new browser windows. | |
55 static Profile* GetLastUsedProfileAllowedByPolicy(); | |
56 | |
57 // Same as instance method but provides the default user_data_dir as well. | |
58 static std::vector<Profile*> GetLastOpenedProfiles(); | |
59 | |
60 // Get the profile for the user which created the current session. | 47 // Get the profile for the user which created the current session. |
61 // Note that in case of a guest account this will return a 'suitable' profile. | 48 // Note that in case of a guest account this will return a 'suitable' profile. |
62 // This function is temporary and will soon be moved to ash. As such avoid | 49 // This function is temporary and will soon be moved to ash. As such avoid |
63 // using it at all cost. | 50 // using it at all cost. |
64 // TODO(skuhne): Move into ash's new user management function. | 51 // TODO(skuhne): Move into ash's new user management function. |
65 static Profile* GetPrimaryUserProfile(); | 52 static Profile* GetPrimaryUserProfile(); |
66 | 53 |
67 // Get the profile for the currently active user. | 54 // Get the profile for the currently active user. |
68 // Note that in case of a guest account this will return a 'suitable' profile. | 55 // Note that in case of a guest account this will return a 'suitable' profile. |
69 // This function is temporary and will soon be moved to ash. As such avoid | 56 // This function is temporary and will soon be moved to ash. As such avoid |
(...skipping 27 matching lines...) Expand all Loading... |
97 // profile. | 84 // profile. |
98 bool IsValidProfile(Profile* profile); | 85 bool IsValidProfile(Profile* profile); |
99 | 86 |
100 // Returns the directory where the first created profile is stored, | 87 // Returns the directory where the first created profile is stored, |
101 // relative to the user data directory currently in use. | 88 // relative to the user data directory currently in use. |
102 base::FilePath GetInitialProfileDir(); | 89 base::FilePath GetInitialProfileDir(); |
103 | 90 |
104 // Get the Profile last used (the Profile to which owns the most recently | 91 // Get the Profile last used (the Profile to which owns the most recently |
105 // focused window) with this Chrome build. If no signed profile has been | 92 // focused window) with this Chrome build. If no signed profile has been |
106 // stored in Local State, hand back the Default profile. | 93 // stored in Local State, hand back the Default profile. |
107 Profile* GetLastUsedProfile(const base::FilePath& user_data_dir); | 94 // If the Profile is going to be used to open a new window then consider using |
| 95 // GetLastUsedProfileAllowedByPolicy() instead. |
| 96 Profile* GetLastUsedProfile(); |
| 97 |
| 98 // Same as GetLastUsedProfile() but returns the incognito Profile if |
| 99 // incognito mode is forced. This should be used if the last used Profile |
| 100 // will be used to open new browser windows. |
| 101 Profile* GetLastUsedProfileAllowedByPolicy(); |
108 | 102 |
109 // Get the path of the last used profile, or if that's undefined, the default | 103 // Get the path of the last used profile, or if that's undefined, the default |
110 // profile. | 104 // profile. |
111 base::FilePath GetLastUsedProfileDir(const base::FilePath& user_data_dir); | 105 base::FilePath GetLastUsedProfileDir(); |
112 | 106 |
113 // Get the name of the last used profile, or if that's undefined, the default | 107 // Get the name of the last used profile, or if that's undefined, the default |
114 // profile. | 108 // profile. |
115 std::string GetLastUsedProfileName(); | 109 std::string GetLastUsedProfileName(); |
116 | 110 |
117 // Get the Profiles which are currently open, i.e., have open browsers, or | 111 // Get the Profiles which are currently open, i.e., have open browsers, or |
118 // were open the last time Chrome was running. The Profiles appear in the | 112 // were open the last time Chrome was running. The Profiles appear in the |
119 // order they were opened. The last used profile will be on the list, but its | 113 // order they were opened. The last used profile will be on the list, but its |
120 // index on the list will depend on when it was opened (it is not necessarily | 114 // index on the list will depend on when it was opened (it is not necessarily |
121 // the last one). | 115 // the last one). |
122 std::vector<Profile*> GetLastOpenedProfiles( | 116 std::vector<Profile*> GetLastOpenedProfiles(); |
123 const base::FilePath& user_data_dir); | |
124 | 117 |
125 // Returns created and fully initialized profiles. Note, profiles order is NOT | 118 // Returns created and fully initialized profiles. Note, profiles order is NOT |
126 // guaranteed to be related with the creation order. | 119 // guaranteed to be related with the creation order. |
127 std::vector<Profile*> GetLoadedProfiles() const; | 120 std::vector<Profile*> GetLoadedProfiles() const; |
128 | 121 |
129 // If a profile with the given path is currently managed by this object and | 122 // If a profile with the given path is currently managed by this object and |
130 // fully initialized, return a pointer to the corresponding Profile object; | 123 // fully initialized, return a pointer to the corresponding Profile object; |
131 // otherwise return null. | 124 // otherwise return null. |
132 Profile* GetProfileByPath(const base::FilePath& path) const; | 125 Profile* GetProfileByPath(const base::FilePath& path) const; |
133 | 126 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 | 238 |
246 private: | 239 private: |
247 DISALLOW_COPY_AND_ASSIGN(ProfileInfo); | 240 DISALLOW_COPY_AND_ASSIGN(ProfileInfo); |
248 }; | 241 }; |
249 | 242 |
250 // Returns the profile of the active user and / or the off the record profile | 243 // Returns the profile of the active user and / or the off the record profile |
251 // if needed. This adds the profile to the ProfileManager if it doesn't | 244 // if needed. This adds the profile to the ProfileManager if it doesn't |
252 // already exist. The method will return NULL if the profile doesn't exist | 245 // already exist. The method will return NULL if the profile doesn't exist |
253 // and we can't create it. | 246 // and we can't create it. |
254 // The profile used can be overridden by using --login-profile on cros. | 247 // The profile used can be overridden by using --login-profile on cros. |
255 Profile* GetActiveUserOrOffTheRecordProfileFromPath( | 248 Profile* GetActiveUserOrOffTheRecordProfileFromPath(); |
256 const base::FilePath& user_data_dir); | |
257 | 249 |
258 // Adds a pre-existing Profile object to the set managed by this | 250 // Adds a pre-existing Profile object to the set managed by this |
259 // ProfileManager. This ProfileManager takes ownership of the Profile. | 251 // ProfileManager. This ProfileManager takes ownership of the Profile. |
260 // The Profile should not already be managed by this ProfileManager. | 252 // The Profile should not already be managed by this ProfileManager. |
261 // Returns true if the profile was added, false otherwise. | 253 // Returns true if the profile was added, false otherwise. |
262 bool AddProfile(Profile* profile); | 254 bool AddProfile(Profile* profile); |
263 | 255 |
264 // Synchronously creates and returns a profile. This handles both the full | 256 // Synchronously creates and returns a profile. This handles both the full |
265 // creation and adds it to the set managed by this ProfileManager. | 257 // creation and adds it to the set managed by this ProfileManager. |
266 Profile* CreateAndInitializeProfile(const base::FilePath& profile_dir); | 258 Profile* CreateAndInitializeProfile(const base::FilePath& profile_dir); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 class ProfileManagerWithoutInit : public ProfileManager { | 367 class ProfileManagerWithoutInit : public ProfileManager { |
376 public: | 368 public: |
377 explicit ProfileManagerWithoutInit(const base::FilePath& user_data_dir); | 369 explicit ProfileManagerWithoutInit(const base::FilePath& user_data_dir); |
378 | 370 |
379 protected: | 371 protected: |
380 void DoFinalInitForServices(Profile*, bool) override {} | 372 void DoFinalInitForServices(Profile*, bool) override {} |
381 void DoFinalInitLogging(Profile*) override {} | 373 void DoFinalInitLogging(Profile*) override {} |
382 }; | 374 }; |
383 | 375 |
384 #endif // CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ | 376 #endif // CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ |
OLD | NEW |