Chromium Code Reviews| 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_info_cache.h" | 5 #include "chrome/browser/profiles/profile_info_cache.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/i18n/case_conversion.h" | 9 #include "base/i18n/case_conversion.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 252 | 252 |
| 253 FOR_EACH_OBSERVER(ProfileInfoCacheObserver, | 253 FOR_EACH_OBSERVER(ProfileInfoCacheObserver, |
| 254 observer_list_, | 254 observer_list_, |
| 255 OnProfileWillBeRemoved(profile_path)); | 255 OnProfileWillBeRemoved(profile_path)); |
| 256 | 256 |
| 257 DictionaryPrefUpdate update(prefs_, prefs::kProfileInfoCache); | 257 DictionaryPrefUpdate update(prefs_, prefs::kProfileInfoCache); |
| 258 base::DictionaryValue* cache = update.Get(); | 258 base::DictionaryValue* cache = update.Get(); |
| 259 std::string key = CacheKeyFromProfilePath(profile_path); | 259 std::string key = CacheKeyFromProfilePath(profile_path); |
| 260 cache->Remove(key, NULL); | 260 cache->Remove(key, NULL); |
| 261 sorted_keys_.erase(std::find(sorted_keys_.begin(), sorted_keys_.end(), key)); | 261 sorted_keys_.erase(std::find(sorted_keys_.begin(), sorted_keys_.end(), key)); |
| 262 profile_attributes_entries_.erase(profile_path); | |
| 262 | 263 |
| 263 FOR_EACH_OBSERVER(ProfileInfoCacheObserver, | 264 FOR_EACH_OBSERVER(ProfileInfoCacheObserver, |
| 264 observer_list_, | 265 observer_list_, |
| 265 OnProfileWasRemoved(profile_path, name)); | 266 OnProfileWasRemoved(profile_path, name)); |
| 266 } | 267 } |
| 267 | 268 |
| 268 size_t ProfileInfoCache::GetNumberOfProfiles() const { | 269 size_t ProfileInfoCache::GetNumberOfProfiles() const { |
| 269 return sorted_keys_.size(); | 270 return sorted_keys_.size(); |
| 270 } | 271 } |
| 271 | 272 |
| (...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1231 std::vector<base::FilePath>::const_iterator it; | 1232 std::vector<base::FilePath>::const_iterator it; |
| 1232 for (it = profiles_to_rename.begin(); it != profiles_to_rename.end(); ++it) { | 1233 for (it = profiles_to_rename.begin(); it != profiles_to_rename.end(); ++it) { |
| 1233 size_t profile_index = GetIndexOfProfileWithPath(*it); | 1234 size_t profile_index = GetIndexOfProfileWithPath(*it); |
| 1234 SetProfileIsUsingDefaultNameAtIndex(profile_index, true); | 1235 SetProfileIsUsingDefaultNameAtIndex(profile_index, true); |
| 1235 // This will assign a new "Person %d" type name and re-sort the cache. | 1236 // This will assign a new "Person %d" type name and re-sort the cache. |
| 1236 SetNameOfProfileAtIndex(profile_index, ChooseNameForNewProfile( | 1237 SetNameOfProfileAtIndex(profile_index, ChooseNameForNewProfile( |
| 1237 GetAvatarIconIndexOfProfileAtIndex(profile_index))); | 1238 GetAvatarIconIndexOfProfileAtIndex(profile_index))); |
| 1238 } | 1239 } |
| 1239 #endif | 1240 #endif |
| 1240 } | 1241 } |
| 1242 | |
| 1243 void ProfileInfoCache::AddProfile( | |
| 1244 const base::FilePath& profile_path, | |
| 1245 const base::string16& name, | |
| 1246 const std::string& gaia_id, | |
| 1247 const base::string16& user_name, | |
| 1248 size_t icon_index, | |
| 1249 const std::string& supervised_user_id) { | |
| 1250 AddProfileToCache( | |
| 1251 profile_path, name, gaia_id, user_name, icon_index, supervised_user_id); | |
| 1252 } | |
| 1253 | |
| 1254 void ProfileInfoCache::DeleteProfile(const base::FilePath& profile_path) { | |
| 1255 DeleteProfileFromCache(profile_path); | |
| 1256 } | |
| 1257 | |
| 1258 std::vector<ProfileAttributesEntry*> | |
| 1259 ProfileInfoCache::GetAllProfilesAttributes() { | |
| 1260 std::vector<ProfileAttributesEntry*> ret; | |
| 1261 for (size_t i = 0; i < GetNumberOfProfiles(); ++i) { | |
| 1262 ProfileAttributesEntry* entry; | |
| 1263 if (GetProfileAttributesWithPath(GetPathOfProfileAtIndex(i), &entry)) { | |
| 1264 ret.push_back(entry); | |
| 1265 } | |
| 1266 } | |
| 1267 return ret; | |
| 1268 } | |
| 1269 | |
| 1270 bool ProfileInfoCache::GetProfileAttributesWithPath( | |
| 1271 const base::FilePath& path, ProfileAttributesEntry** entry) { | |
| 1272 if (GetNumberOfProfiles() == 0) { | |
|
Mike Lerman
2015/07/08 18:26:35
nit: braces unneeded here - the condition's really
anthonyvd
2015/07/09 17:02:14
Done.
| |
| 1273 return false; | |
| 1274 } | |
| 1275 | |
| 1276 size_t index = GetIndexOfProfileWithPath(path); | |
|
Mike Lerman
2015/07/08 18:26:35
inline GetIndexOfProfileWithPath into the conditio
anthonyvd
2015/07/09 17:02:14
Done.
| |
| 1277 if (index == std::string::npos) { | |
| 1278 return false; | |
| 1279 } | |
| 1280 | |
| 1281 if (profile_attributes_entries_.find(path) == | |
| 1282 profile_attributes_entries_.end()) { | |
| 1283 // The profile info is in the cache but its entry isn't created yet, insert | |
| 1284 // it in the map. | |
| 1285 profile_attributes_entries_[path].Initialize(this, path); | |
| 1286 } | |
| 1287 | |
| 1288 *entry = &profile_attributes_entries_[path]; | |
| 1289 return true; | |
| 1290 } | |
| OLD | NEW |