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 4a71e0241bcbee7aa1392ac1a059a5ccc6f984b9..eecbbd2d15940165bc5eb9f40fd21f706cfbb681 100644 |
--- a/chrome/browser/profiles/profile_info_cache.cc |
+++ b/chrome/browser/profiles/profile_info_cache.cc |
@@ -29,7 +29,7 @@ const int kDefaultAvatarIconResources[] = { |
IDR_PROFILE_AVATAR_3, |
}; |
-const int kDefaultAvatarIconsCount = arraysize(kDefaultAvatarIconResources); |
+const size_t kDefaultAvatarIconsCount = arraysize(kDefaultAvatarIconResources); |
// Checks if the given URL points to one of the default avatar icons. if it is, |
// returns true and its index through |icon_index|. If not, returns false. |
@@ -42,7 +42,8 @@ bool IsDefaultAvatarIconUrl(const std::string& url, size_t* icon_index) { |
if (base::StringToInt(url.begin() + strlen(kDefaultUrlPrefix), |
url.end(), |
&int_value)) { |
- if (int_value < 0 || int_value >= kDefaultAvatarIconsCount) |
+ if (int_value < 0 || |
+ int_value >= static_cast<int>(kDefaultAvatarIconsCount)) |
return false; |
*icon_index = int_value; |
return true; |
@@ -51,12 +52,6 @@ bool IsDefaultAvatarIconUrl(const std::string& url, size_t* icon_index) { |
return false; |
} |
-// Returns a URL for the default avatar icon with specified index. |
-std::string GetDefaultAvatarIconUrl(int icon_index) { |
- DCHECK_LT(icon_index, kDefaultAvatarIconsCount); |
- return StringPrintf("%s%d", kDefaultUrlPrefix, icon_index); |
-} |
- |
} // namespace |
ProfileInfoCache::ProfileInfoCache(PrefService* prefs, |
@@ -108,6 +103,18 @@ size_t ProfileInfoCache::GetNumberOfProfiles() const { |
return sorted_keys_.size(); |
} |
+size_t ProfileInfoCache::GetIndexOfProfileWithPath( |
+ const FilePath& profile_path) const { |
+ if (profile_path.DirName() != user_data_dir_) |
+ return std::string::npos; |
+ std::string search_key = profile_path.BaseName().MaybeAsASCII(); |
+ for (size_t i = 0; i < sorted_keys_.size(); ++i) { |
+ if (sorted_keys_[i] == search_key) |
+ return i; |
+ } |
+ return std::string::npos; |
+} |
+ |
string16 ProfileInfoCache::GetNameOfProfileAtIndex(size_t index) const { |
string16 name; |
GetInfoForProfileAtIndex(index)->GetString(kNameKey, &name); |
@@ -126,17 +133,21 @@ FilePath ProfileInfoCache::GetPathOfProfileAtIndex(size_t index) const { |
const gfx::Image& ProfileInfoCache::GetAvatarIconOfProfileAtIndex( |
size_t index) const { |
+ int resource_id = GetDefaultAvatarIconResourceIDAtIndex( |
+ GetAvatarIconIndexOfProfileAtIndex(index)); |
+ return ResourceBundle::GetSharedInstance().GetImageNamed(resource_id); |
+} |
+ |
+size_t ProfileInfoCache::GetAvatarIconIndexOfProfileAtIndex(size_t index) |
+ const { |
std::string icon_url; |
GetInfoForProfileAtIndex(index)->GetString(kAvatarIconKey, &icon_url); |
size_t icon_index = 0; |
- if (IsDefaultAvatarIconUrl(icon_url, &icon_index)) { |
- int resource_id = GetDefaultAvatarIconResourceIDAtIndex(icon_index); |
- return ResourceBundle::GetSharedInstance().GetImageNamed(resource_id); |
- } |
+ if (IsDefaultAvatarIconUrl(icon_url, &icon_index)) |
+ return icon_index; |
DLOG(WARNING) << "Unknown avatar icon: " << icon_url; |
- return ResourceBundle::GetSharedInstance().GetImageNamed( |
- GetDefaultAvatarIconResourceIDAtIndex(0)); |
+ return GetDefaultAvatarIconResourceIDAtIndex(0); |
} |
void ProfileInfoCache::SetNameOfProfileAtIndex(size_t index, |
@@ -164,6 +175,11 @@ int ProfileInfoCache::GetDefaultAvatarIconResourceIDAtIndex(size_t index) { |
return kDefaultAvatarIconResources[index]; |
} |
+std::string ProfileInfoCache::GetDefaultAvatarIconUrl(size_t index) { |
+ DCHECK_LT(index, kDefaultAvatarIconsCount); |
+ return StringPrintf("%s%zu", kDefaultUrlPrefix, index); |
+} |
+ |
const DictionaryValue* ProfileInfoCache::GetInfoForProfileAtIndex( |
size_t index) const { |
DCHECK_LT(index, GetNumberOfProfiles()); |