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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 | 103 |
104 // Get the Profile last used (the Profile to which owns the most recently | 104 // 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 | 105 // focused window) with this Chrome build. If no signed profile has been |
106 // stored in Local State, hand back the Default profile. | 106 // stored in Local State, hand back the Default profile. |
107 Profile* GetLastUsedProfile(const base::FilePath& user_data_dir); | 107 Profile* GetLastUsedProfile(const base::FilePath& user_data_dir); |
108 | 108 |
109 // Get the path of the last used profile, or if that's undefined, the default | 109 // Get the path of the last used profile, or if that's undefined, the default |
110 // profile. | 110 // profile. |
111 base::FilePath GetLastUsedProfileDir(const base::FilePath& user_data_dir); | 111 base::FilePath GetLastUsedProfileDir(const base::FilePath& user_data_dir); |
112 | 112 |
| 113 // Get the name of the last used profile, or if that's undefined, the default |
| 114 // profile. |
| 115 std::string GetLastUsedProfileName(); |
| 116 |
113 // Get the Profiles which are currently open, i.e., have open browsers, or | 117 // Get the Profiles which are currently open, i.e., have open browsers, or |
114 // were open the last time Chrome was running. The Profiles appear in the | 118 // were open the last time Chrome was running. The Profiles appear in the |
115 // order they were opened. The last used profile will be on the list, but its | 119 // order they were opened. The last used profile will be on the list, but its |
116 // index on the list will depend on when it was opened (it is not necessarily | 120 // index on the list will depend on when it was opened (it is not necessarily |
117 // the last one). | 121 // the last one). |
118 std::vector<Profile*> GetLastOpenedProfiles( | 122 std::vector<Profile*> GetLastOpenedProfiles( |
119 const base::FilePath& user_data_dir); | 123 const base::FilePath& user_data_dir); |
120 | 124 |
121 // Returns created and fully initialized profiles. Note, profiles order is NOT | 125 // Returns created and fully initialized profiles. Note, profiles order is NOT |
122 // guaranteed to be related with the creation order. | 126 // guaranteed to be related with the creation order. |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 // Returns a ProfileShortcut Manager that enables the caller to create | 165 // Returns a ProfileShortcut Manager that enables the caller to create |
162 // profile specfic desktop shortcuts. | 166 // profile specfic desktop shortcuts. |
163 ProfileShortcutManager* profile_shortcut_manager(); | 167 ProfileShortcutManager* profile_shortcut_manager(); |
164 | 168 |
165 // Schedules the profile at the given path to be deleted on shutdown. If we're | 169 // Schedules the profile at the given path to be deleted on shutdown. If we're |
166 // deleting the last profile, a new one will be created in its place, and in | 170 // deleting the last profile, a new one will be created in its place, and in |
167 // that case the callback will be called when profile creation is complete. | 171 // that case the callback will be called when profile creation is complete. |
168 void ScheduleProfileForDeletion(const base::FilePath& profile_dir, | 172 void ScheduleProfileForDeletion(const base::FilePath& profile_dir, |
169 const CreateCallback& callback); | 173 const CreateCallback& callback); |
170 | 174 |
171 // Called on start-up if there are any stale ephemeral profiles to be deleted. | |
172 // This can be the case if the browser has crashed and the clean-up code had | |
173 // no chance to run then. | |
174 static void CleanUpStaleProfiles( | |
175 const std::vector<base::FilePath>& profile_paths); | |
176 | |
177 // Autoloads profiles if they are running background apps. | 175 // Autoloads profiles if they are running background apps. |
178 void AutoloadProfiles(); | 176 void AutoloadProfiles(); |
179 | 177 |
| 178 // Checks if any ephemeral profiles are left behind (e.g. because of a browser |
| 179 // crash) and schedule them for deletion. |
| 180 void CleanUpEphemeralProfiles(); |
| 181 |
180 // Initializes user prefs of |profile|. This includes profile name and | 182 // Initializes user prefs of |profile|. This includes profile name and |
181 // avatar values. | 183 // avatar values. |
182 void InitProfileUserPrefs(Profile* profile); | 184 void InitProfileUserPrefs(Profile* profile); |
183 | 185 |
184 // Register and add testing profile to the ProfileManager. Use ONLY in tests. | 186 // Register and add testing profile to the ProfileManager. Use ONLY in tests. |
185 // This allows the creation of Profiles outside of the standard creation path | 187 // This allows the creation of Profiles outside of the standard creation path |
186 // for testing. If |addToCache|, adds to ProfileInfoCache as well. | 188 // for testing. If |addToCache|, adds to ProfileInfoCache as well. |
187 // If |start_deferred_task_runners|, starts the deferred task runners. | 189 // If |start_deferred_task_runners|, starts the deferred task runners. |
188 // Use ONLY in tests. | 190 // Use ONLY in tests. |
189 void RegisterTestingProfile(Profile* profile, | 191 void RegisterTestingProfile(Profile* profile, |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 class ProfileManagerWithoutInit : public ProfileManager { | 374 class ProfileManagerWithoutInit : public ProfileManager { |
373 public: | 375 public: |
374 explicit ProfileManagerWithoutInit(const base::FilePath& user_data_dir); | 376 explicit ProfileManagerWithoutInit(const base::FilePath& user_data_dir); |
375 | 377 |
376 protected: | 378 protected: |
377 void DoFinalInitForServices(Profile*, bool) override {} | 379 void DoFinalInitForServices(Profile*, bool) override {} |
378 void DoFinalInitLogging(Profile*) override {} | 380 void DoFinalInitLogging(Profile*) override {} |
379 }; | 381 }; |
380 | 382 |
381 #endif // CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ | 383 #endif // CHROME_BROWSER_PROFILES_PROFILE_MANAGER_H_ |
OLD | NEW |