OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ |
6 #define CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/callback_forward.h" | 13 #include "base/callback_forward.h" |
14 #include "base/files/file_path.h" | 14 #include "base/files/file_path.h" |
15 #include "base/macros.h" | 15 #include "base/macros.h" |
16 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" |
17 #include "chrome/browser/browsing_data/browsing_data_remover.h" | |
18 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" | 17 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" |
19 #include "components/user_manager/user_manager.h" | 18 #include "components/user_manager/user_manager.h" |
| 19 #include "content/public/browser/browsing_data_remover.h" |
20 | 20 |
21 class ArcActiveDirectoryEnrollmentTokenFetcherBrowserTest; | 21 class ArcActiveDirectoryEnrollmentTokenFetcherBrowserTest; |
22 class ArcAppTest; | 22 class ArcAppTest; |
23 class SessionControllerClientTest; | 23 class SessionControllerClientTest; |
24 class Profile; | 24 class Profile; |
25 | 25 |
26 namespace base { | 26 namespace base { |
27 class FilePath; | 27 class FilePath; |
28 } | 28 } |
29 | 29 |
(...skipping 24 matching lines...) Expand all Loading... |
54 // Whenever active user is changed (either add another user into session or | 54 // Whenever active user is changed (either add another user into session or |
55 // switch between users), ActiveUserHashChanged() will be called thus | 55 // switch between users), ActiveUserHashChanged() will be called thus |
56 // internal state |active_user_id_hash_| will be updated. | 56 // internal state |active_user_id_hash_| will be updated. |
57 // Typical use cases for using this class: | 57 // Typical use cases for using this class: |
58 // 1. Get "signin profile" which is a special type of profile that is only used | 58 // 1. Get "signin profile" which is a special type of profile that is only used |
59 // during signin flow: GetSigninProfile() | 59 // during signin flow: GetSigninProfile() |
60 // 2. Get profile dir of an active user, used by ProfileManager: | 60 // 2. Get profile dir of an active user, used by ProfileManager: |
61 // GetActiveUserProfileDir() | 61 // GetActiveUserProfileDir() |
62 // 3. Get mapping from user_id_hash to Profile instance/profile path etc. | 62 // 3. Get mapping from user_id_hash to Profile instance/profile path etc. |
63 class ProfileHelper | 63 class ProfileHelper |
64 : public BrowsingDataRemover::Observer, | 64 : public content::BrowsingDataRemover::Observer, |
65 public OAuth2LoginManager::Observer, | 65 public OAuth2LoginManager::Observer, |
66 public user_manager::UserManager::UserSessionStateObserver { | 66 public user_manager::UserManager::UserSessionStateObserver { |
67 public: | 67 public: |
68 ProfileHelper(); | 68 ProfileHelper(); |
69 ~ProfileHelper() override; | 69 ~ProfileHelper() override; |
70 | 70 |
71 // Returns ProfileHelper instance. This class is not singleton and is owned | 71 // Returns ProfileHelper instance. This class is not singleton and is owned |
72 // by BrowserProcess/BrowserProcessPlatformPart. This method keeps that | 72 // by BrowserProcess/BrowserProcessPlatformPart. This method keeps that |
73 // knowledge in one place. | 73 // knowledge in one place. |
74 static ProfileHelper* Get(); | 74 static ProfileHelper* Get(); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 // Identifies path to active user profile on Chrome OS. | 209 // Identifies path to active user profile on Chrome OS. |
210 std::string active_user_id_hash_; | 210 std::string active_user_id_hash_; |
211 | 211 |
212 // List of callbacks called after signin profile clearance. | 212 // List of callbacks called after signin profile clearance. |
213 std::vector<base::Closure> on_clear_callbacks_; | 213 std::vector<base::Closure> on_clear_callbacks_; |
214 | 214 |
215 // Called when a single stage of profile clearing is finished. | 215 // Called when a single stage of profile clearing is finished. |
216 base::Closure on_clear_profile_stage_finished_; | 216 base::Closure on_clear_profile_stage_finished_; |
217 | 217 |
218 // A currently running browsing data remover. | 218 // A currently running browsing data remover. |
219 BrowsingDataRemover* browsing_data_remover_; | 219 content::BrowsingDataRemover* browsing_data_remover_; |
220 | 220 |
221 // Used for testing by unit tests and FakeUserManager/MockUserManager. | 221 // Used for testing by unit tests and FakeUserManager/MockUserManager. |
222 std::map<const user_manager::User*, Profile*> user_to_profile_for_testing_; | 222 std::map<const user_manager::User*, Profile*> user_to_profile_for_testing_; |
223 | 223 |
224 // When this list is not empty GetUserByProfile() will find user that has | 224 // When this list is not empty GetUserByProfile() will find user that has |
225 // the same user_id as |profile|->GetProfileName(). | 225 // the same user_id as |profile|->GetProfileName(). |
226 user_manager::UserList user_list_for_testing_; | 226 user_manager::UserList user_list_for_testing_; |
227 | 227 |
228 // If true testing code path is used in GetUserByProfile() even if | 228 // If true testing code path is used in GetUserByProfile() even if |
229 // user_list_for_testing_ list is empty. In that case primary user will always | 229 // user_list_for_testing_ list is empty. In that case primary user will always |
230 // be returned. | 230 // be returned. |
231 static bool enable_profile_to_user_testing; | 231 static bool enable_profile_to_user_testing; |
232 | 232 |
233 // If true and enable_profile_to_user_testing is true then primary user will | 233 // If true and enable_profile_to_user_testing is true then primary user will |
234 // always be returned by GetUserByProfile(). | 234 // always be returned by GetUserByProfile(). |
235 static bool always_return_primary_user_for_testing; | 235 static bool always_return_primary_user_for_testing; |
236 | 236 |
237 std::unique_ptr<FileFlusher> profile_flusher_; | 237 std::unique_ptr<FileFlusher> profile_flusher_; |
238 | 238 |
239 base::WeakPtrFactory<ProfileHelper> weak_factory_; | 239 base::WeakPtrFactory<ProfileHelper> weak_factory_; |
240 | 240 |
241 DISALLOW_COPY_AND_ASSIGN(ProfileHelper); | 241 DISALLOW_COPY_AND_ASSIGN(ProfileHelper); |
242 }; | 242 }; |
243 | 243 |
244 } // namespace chromeos | 244 } // namespace chromeos |
245 | 245 |
246 #endif // CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ | 246 #endif // CHROME_BROWSER_CHROMEOS_PROFILES_PROFILE_HELPER_H_ |
OLD | NEW |