Index: chrome/browser/profiles/profile_info_cache.cc |
diff --git a/chrome/browser/profiles/profile_info_cache.cc b/chrome/browser/profiles/profile_info_cache.cc |
index 10a3259d968b8d45a1fe6408c1477fd84c449400..8aaa047c963dfd8f409d9fe59c13bb508ecdfc4b 100644 |
--- a/chrome/browser/profiles/profile_info_cache.cc |
+++ b/chrome/browser/profiles/profile_info_cache.cc |
@@ -137,30 +137,6 @@ void DeleteBitmap(const base::FilePath& image_path) { |
base::DeleteFile(image_path, false); |
} |
-bool IsDefaultName(const base::string16& name) { |
- // Check if it's a "First user" old-style name. |
- if (name == l10n_util::GetStringUTF16(IDS_DEFAULT_PROFILE_NAME) || |
- name == l10n_util::GetStringUTF16(IDS_LEGACY_DEFAULT_PROFILE_NAME)) |
- return true; |
- |
- // Check if it's one of the old-style profile names. |
- for (size_t i = 0; i < arraysize(kDefaultNames); ++i) { |
- if (name == l10n_util::GetStringUTF16(kDefaultNames[i])) |
- return true; |
- } |
- |
- // Check whether it's one of the "Person %d" style names. |
- std::string default_name_format = l10n_util::GetStringFUTF8( |
- IDS_NEW_NUMBERED_PROFILE_NAME, base::string16()) + "%d"; |
- |
- int generic_profile_number; // Unused. Just a placeholder for sscanf. |
- int assignments = sscanf(base::UTF16ToUTF8(name).c_str(), |
- default_name_format.c_str(), |
- &generic_profile_number); |
- // Unless it matched the format, this is a custom name. |
- return assignments == 1; |
-} |
- |
} // namespace |
ProfileInfoCache::ProfileInfoCache(PrefService* prefs, |
@@ -177,8 +153,15 @@ ProfileInfoCache::ProfileInfoCache(PrefService* prefs, |
base::string16 name; |
info->GetString(kNameKey, &name); |
sorted_keys_.insert(FindPositionForProfile(it.key(), name), it.key()); |
- bool using_default_name = IsDefaultName(name); |
- info->SetBoolean(kIsUsingDefaultNameKey, using_default_name); |
+ |
+ bool using_default_name; |
+ if (!info->GetBoolean(kIsUsingDefaultNameKey, &using_default_name)) { |
+ // If the preference hasn't been set, and the name is default, assume |
+ // that the user hasn't done this on purpose. |
+ using_default_name = IsDefaultProfileName(name); |
+ info->SetBoolean(kIsUsingDefaultNameKey, using_default_name); |
+ } |
+ |
// For profiles that don't have the "using default avatar" state set yet, |
// assume it's the same as the "using default name" state. |
if (!info->HasKey(kIsUsingDefaultAvatarKey)) { |
@@ -223,7 +206,7 @@ void ProfileInfoCache::AddProfileToCache( |
info->SetString(kSupervisedUserId, supervised_user_id); |
info->SetBoolean(kIsOmittedFromProfileListKey, !supervised_user_id.empty()); |
info->SetBoolean(kProfileIsEphemeral, false); |
- info->SetBoolean(kIsUsingDefaultNameKey, IsDefaultName(name)); |
+ info->SetBoolean(kIsUsingDefaultNameKey, IsDefaultProfileName(name)); |
// Assume newly created profiles use a default avatar. |
info->SetBoolean(kIsUsingDefaultAvatarKey, true); |
cache->SetWithoutPathExpansion(key, info.release()); |
@@ -489,10 +472,10 @@ void ProfileInfoCache::SetNameOfProfileAtIndex(size_t index, |
base::string16 old_display_name = GetNameOfProfileAtIndex(index); |
info->SetString(kNameKey, name); |
- info->SetBoolean(kIsUsingDefaultNameKey, false); |
// This takes ownership of |info|. |
SetInfoForProfileAtIndex(index, info.release()); |
+ |
base::string16 new_display_name = GetNameOfProfileAtIndex(index); |
base::FilePath profile_path = GetPathOfProfileAtIndex(index); |
UpdateSortForProfileIndex(index); |
@@ -538,8 +521,6 @@ void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index, |
// This takes ownership of |info|. |
SetInfoForProfileAtIndex(index, info.release()); |
- SetProfileIsUsingDefaultAvatarAtIndex(index, false); |
- |
base::FilePath profile_path = GetPathOfProfileAtIndex(index); |
// If needed, start downloading the high-res avatar. |
@@ -758,6 +739,30 @@ void ProfileInfoCache::SetProfileIsUsingDefaultAvatarAtIndex( |
SetInfoForProfileAtIndex(index, info.release()); |
} |
+bool ProfileInfoCache::IsDefaultProfileName(const base::string16& name) { |
+ // Check if it's a "First user" old-style name. |
+ if (name == l10n_util::GetStringUTF16(IDS_DEFAULT_PROFILE_NAME) || |
+ name == l10n_util::GetStringUTF16(IDS_LEGACY_DEFAULT_PROFILE_NAME)) |
+ return true; |
+ |
+ // Check if it's one of the old-style profile names. |
+ for (size_t i = 0; i < arraysize(kDefaultNames); ++i) { |
+ if (name == l10n_util::GetStringUTF16(kDefaultNames[i])) |
+ return true; |
+ } |
+ |
+ // Check whether it's one of the "Person %d" style names. |
+ std::string default_name_format = l10n_util::GetStringFUTF8( |
+ IDS_NEW_NUMBERED_PROFILE_NAME, base::ASCIIToUTF16("%d")); |
+ |
+ int generic_profile_number; // Unused. Just a placeholder for sscanf. |
+ int assignments = sscanf(base::UTF16ToUTF8(name).c_str(), |
+ default_name_format.c_str(), |
+ &generic_profile_number); |
+ // Unless it matched the format, this is a custom name. |
+ return assignments == 1; |
+} |
+ |
base::string16 ProfileInfoCache::ChooseNameForNewProfile( |
size_t icon_index) const { |
base::string16 name; |