Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: chrome/browser/profiles/profile_manager.cc

Issue 1117453002: Add gaia_id to ProfileInfoCache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 account_info =
1262 account_tracker->GetAccountInfo(
1263 signin_manager->GetAuthenticatedAccountId());
1264 base::string16 username = base::UTF8ToUTF16(account_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, account_info.gaia,
1270 username);
1267 return; 1271 return;
1268 } 1272 }
1269 1273
1270 // Profile name and avatar are set by InitProfileUserPrefs and stored in the 1274 // Profile name and avatar are set by InitProfileUserPrefs and stored in the
1271 // profile. Use those values to setup the cache entry. 1275 // profile. Use those values to setup the cache entry.
1272 base::string16 profile_name = 1276 base::string16 profile_name =
1273 base::UTF8ToUTF16(profile->GetPrefs()->GetString(prefs::kProfileName)); 1277 base::UTF8ToUTF16(profile->GetPrefs()->GetString(prefs::kProfileName));
1274 1278
1275 size_t icon_index = profile->GetPrefs()->GetInteger( 1279 size_t icon_index = profile->GetPrefs()->GetInteger(
1276 prefs::kProfileAvatarIndex); 1280 prefs::kProfileAvatarIndex);
1277 1281
1278 std::string supervised_user_id = 1282 std::string supervised_user_id =
1279 profile->GetPrefs()->GetString(prefs::kSupervisedUserId); 1283 profile->GetPrefs()->GetString(prefs::kSupervisedUserId);
1280 1284
1281 cache.AddProfileToCache(profile->GetPath(), 1285 cache.AddProfileToCache(profile->GetPath(),
1282 profile_name, 1286 profile_name,
1287 account_info.gaia,
1283 username, 1288 username,
1284 icon_index, 1289 icon_index,
1285 supervised_user_id); 1290 supervised_user_id);
1286 1291
1287 if (profile->GetPrefs()->GetBoolean(prefs::kForceEphemeralProfiles)) { 1292 if (profile->GetPrefs()->GetBoolean(prefs::kForceEphemeralProfiles)) {
1288 cache.SetProfileIsEphemeralAtIndex( 1293 cache.SetProfileIsEphemeralAtIndex(
1289 cache.GetIndexOfProfileWithPath(profile->GetPath()), true); 1294 cache.GetIndexOfProfileWithPath(profile->GetPath()), true);
1290 } 1295 }
1291 } 1296 }
1292 1297
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1422 } 1427 }
1423 1428
1424 FinishDeletingProfile(profile_to_delete_path, new_active_profile_path); 1429 FinishDeletingProfile(profile_to_delete_path, new_active_profile_path);
1425 if (!original_callback.is_null()) 1430 if (!original_callback.is_null())
1426 original_callback.Run(loaded_profile, status); 1431 original_callback.Run(loaded_profile, status);
1427 } 1432 }
1428 1433
1429 ProfileManagerWithoutInit::ProfileManagerWithoutInit( 1434 ProfileManagerWithoutInit::ProfileManagerWithoutInit(
1430 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) { 1435 const base::FilePath& user_data_dir) : ProfileManager(user_data_dir) {
1431 } 1436 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_list_desktop_unittest.cc ('k') | chrome/browser/profiles/profile_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698