| 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());
|
|
|