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 #include "chrome/browser/profiles/profile_manager.h" | 5 #include "chrome/browser/profiles/profile_manager.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
413 info = iter->second.get(); | 413 info = iter->second.get(); |
414 } else { | 414 } else { |
415 // Initiate asynchronous creation process. | 415 // Initiate asynchronous creation process. |
416 info = RegisterProfile(CreateProfileAsyncHelper(profile_path, this), false); | 416 info = RegisterProfile(CreateProfileAsyncHelper(profile_path, this), false); |
417 ProfileInfoCache& cache = GetProfileInfoCache(); | 417 ProfileInfoCache& cache = GetProfileInfoCache(); |
418 // Get the icon index from the user's icon url | 418 // Get the icon index from the user's icon url |
419 size_t icon_index; | 419 size_t icon_index; |
420 std::string icon_url_std = base::UTF16ToASCII(icon_url); | 420 std::string icon_url_std = base::UTF16ToASCII(icon_url); |
421 if (profiles::IsDefaultAvatarIconUrl(icon_url_std, &icon_index)) { | 421 if (profiles::IsDefaultAvatarIconUrl(icon_url_std, &icon_index)) { |
422 // add profile to cache with user selected name and avatar | 422 // add profile to cache with user selected name and avatar |
423 cache.AddProfileToCache(profile_path, name, base::string16(), icon_index, | 423 cache.AddProfileToCache(profile_path, name, std::string(), |
424 supervised_user_id); | 424 base::string16(), icon_index, supervised_user_id); |
425 } | 425 } |
426 | 426 |
427 if (!supervised_user_id.empty()) { | 427 if (!supervised_user_id.empty()) { |
428 content::RecordAction( | 428 content::RecordAction( |
429 UserMetricsAction("ManagedMode_LocallyManagedUserCreated")); | 429 UserMetricsAction("ManagedMode_LocallyManagedUserCreated")); |
430 } | 430 } |
431 | 431 |
432 ProfileMetrics::UpdateReportedProfilesStatistics(this); | 432 ProfileMetrics::UpdateReportedProfilesStatistics(this); |
433 } | 433 } |
434 | 434 |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1196 NonMaliciousDownloadCount() == 0); | 1196 NonMaliciousDownloadCount() == 0); |
1197 BrowserList::CloseAllBrowsersWithProfile(profile); | 1197 BrowserList::CloseAllBrowsersWithProfile(profile); |
1198 | 1198 |
1199 // Disable sync for doomed profile. | 1199 // Disable sync for doomed profile. |
1200 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( | 1200 if (ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( |
1201 profile)) { | 1201 profile)) { |
1202 ProfileSyncServiceFactory::GetInstance()->GetForProfile( | 1202 ProfileSyncServiceFactory::GetInstance()->GetForProfile( |
1203 profile)->DisableForUser(); | 1203 profile)->DisableForUser(); |
1204 } | 1204 } |
1205 | 1205 |
1206 bool profile_is_signed_in = !cache.GetUserNameOfProfileAtIndex( | 1206 ProfileMetrics::LogProfileDelete(cache.ProfileIsAuthenticatedAtIndex( |
1207 cache.GetIndexOfProfileWithPath(profile_dir)).empty(); | 1207 cache.GetIndexOfProfileWithPath(profile_dir))); |
1208 ProfileMetrics::LogProfileDelete(profile_is_signed_in); | |
1209 // Some platforms store passwords in keychains. They should be removed. | 1208 // Some platforms store passwords in keychains. They should be removed. |
1210 scoped_refptr<password_manager::PasswordStore> password_store = | 1209 scoped_refptr<password_manager::PasswordStore> password_store = |
1211 PasswordStoreFactory::GetForProfile( | 1210 PasswordStoreFactory::GetForProfile( |
1212 profile, ServiceAccessType::EXPLICIT_ACCESS).get(); | 1211 profile, ServiceAccessType::EXPLICIT_ACCESS).get(); |
1213 if (password_store.get()) { | 1212 if (password_store.get()) { |
1214 password_store->RemoveLoginsCreatedBetween(base::Time(), | 1213 password_store->RemoveLoginsCreatedBetween(base::Time(), |
1215 base::Time::Max()); | 1214 base::Time::Max()); |
1216 } | 1215 } |
1217 | 1216 |
1218 // The Profile Data doesn't get wiped until Chrome closes. Since we promised | 1217 // The Profile Data doesn't get wiped until Chrome closes. Since we promised |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1250 void ProfileManager::AddProfileToCache(Profile* profile) { | 1249 void ProfileManager::AddProfileToCache(Profile* profile) { |
1251 TRACE_EVENT0("browser", "ProfileManager::AddProfileToCache"); | 1250 TRACE_EVENT0("browser", "ProfileManager::AddProfileToCache"); |
1252 if (profile->IsGuestSession() || profile->IsSystemProfile()) | 1251 if (profile->IsGuestSession() || profile->IsSystemProfile()) |
1253 return; | 1252 return; |
1254 ProfileInfoCache& cache = GetProfileInfoCache(); | 1253 ProfileInfoCache& cache = GetProfileInfoCache(); |
1255 if (profile->GetPath().DirName() != cache.GetUserDataDir()) | 1254 if (profile->GetPath().DirName() != cache.GetUserDataDir()) |
1256 return; | 1255 return; |
1257 | 1256 |
1258 SigninManagerBase* signin_manager = | 1257 SigninManagerBase* signin_manager = |
1259 SigninManagerFactory::GetForProfile(profile); | 1258 SigninManagerFactory::GetForProfile(profile); |
1260 base::string16 username = base::UTF8ToUTF16( | 1259 AccountTrackerService* account_tracker = |
1261 signin_manager->GetAuthenticatedUsername()); | 1260 AccountTrackerServiceFactory::GetForProfile(profile); |
1261 AccountTrackerService::AccountInfo info = | |
noms (inactive)
2015/05/06 01:05:54
nit: s/info/account_info maybe? 30 lines later inf
Roger Tawa OOO till Jul 10th
2015/05/11 16:09:57
Done.
| |
1262 account_tracker->GetAccountInfo( | |
1263 signin_manager->GetAuthenticatedAccountId()); | |
1264 base::string16 username = base::UTF8ToUTF16(info.email); | |
1262 | 1265 |
1263 size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath()); | 1266 size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath()); |
1264 if (profile_index != std::string::npos) { | 1267 if (profile_index != std::string::npos) { |
1265 // The ProfileInfoCache's username must match the Signin Manager's username. | 1268 // The ProfileInfoCache's info must match the Signin Manager. |
1266 cache.SetUserNameOfProfileAtIndex(profile_index, username); | 1269 cache.SetAuthInfoOfProfileAtIndex(profile_index, info.gaia, username); |
1267 return; | 1270 return; |
1268 } | 1271 } |
1269 | 1272 |
1270 // Profile name and avatar are set by InitProfileUserPrefs and stored in the | 1273 // Profile name and avatar are set by InitProfileUserPrefs and stored in the |
1271 // profile. Use those values to setup the cache entry. | 1274 // profile. Use those values to setup the cache entry. |
1272 base::string16 profile_name = | 1275 base::string16 profile_name = |
1273 base::UTF8ToUTF16(profile->GetPrefs()->GetString(prefs::kProfileName)); | 1276 base::UTF8ToUTF16(profile->GetPrefs()->GetString(prefs::kProfileName)); |
1274 | 1277 |
1275 size_t icon_index = profile->GetPrefs()->GetInteger( | 1278 size_t icon_index = profile->GetPrefs()->GetInteger( |
1276 prefs::kProfileAvatarIndex); | 1279 prefs::kProfileAvatarIndex); |
1277 | 1280 |
1278 std::string supervised_user_id = | 1281 std::string supervised_user_id = |
1279 profile->GetPrefs()->GetString(prefs::kSupervisedUserId); | 1282 profile->GetPrefs()->GetString(prefs::kSupervisedUserId); |
1280 | 1283 |
1281 cache.AddProfileToCache(profile->GetPath(), | 1284 cache.AddProfileToCache(profile->GetPath(), |
1282 profile_name, | 1285 profile_name, |
1286 info.gaia, | |
1283 username, | 1287 username, |
1284 icon_index, | 1288 icon_index, |
1285 supervised_user_id); | 1289 supervised_user_id); |
1286 | 1290 |
1287 if (profile->GetPrefs()->GetBoolean(prefs::kForceEphemeralProfiles)) { | 1291 if (profile->GetPrefs()->GetBoolean(prefs::kForceEphemeralProfiles)) { |
1288 cache.SetProfileIsEphemeralAtIndex( | 1292 cache.SetProfileIsEphemeralAtIndex( |
1289 cache.GetIndexOfProfileWithPath(profile->GetPath()), true); | 1293 cache.GetIndexOfProfileWithPath(profile->GetPath()), true); |
1290 } | 1294 } |
1291 } | 1295 } |
1292 | 1296 |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1422 } | 1426 } |
1423 | 1427 |
1424 FinishDeletingProfile(profile_to_delete_path, new_active_profile_path); | 1428 FinishDeletingProfile(profile_to_delete_path, new_active_profile_path); |
1425 if (!original_callback.is_null()) | 1429 if (!original_callback.is_null()) |
1426 original_callback.Run(loaded_profile, status); | 1430 original_callback.Run(loaded_profile, status); |
1427 } | 1431 } |
1428 | 1432 |
1429 ProfileManagerWithoutInit::ProfileManagerWithoutInit( | 1433 ProfileManagerWithoutInit::ProfileManagerWithoutInit( |
1430 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) { | 1434 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) { |
1431 } | 1435 } |
OLD | NEW |