| Index: chrome/browser/profiles/profile_info_cache.cc
|
| ===================================================================
|
| --- chrome/browser/profiles/profile_info_cache.cc (revision 112717)
|
| +++ chrome/browser/profiles/profile_info_cache.cc (working copy)
|
| @@ -205,9 +205,14 @@
|
|
|
| sorted_keys_.insert(FindPositionForProfile(key, name), key);
|
|
|
| + gfx::Image& avatar_img = ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + GetDefaultAvatarIconResourceIDAtIndex(icon_index));
|
| +
|
| FOR_EACH_OBSERVER(ProfileInfoCacheObserver,
|
| observer_list_,
|
| - OnProfileAdded(name, UTF8ToUTF16(key)));
|
| + OnProfileAdded(name, UTF8ToUTF16(key),
|
| + profile_path.value(),
|
| + &avatar_img));
|
|
|
| content::NotificationService::current()->Notify(
|
| chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
|
| @@ -425,9 +430,22 @@
|
| void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index,
|
| size_t icon_index) {
|
| scoped_ptr<DictionaryValue> info(GetInfoForProfileAtIndex(index)->DeepCopy());
|
| + string16 name;
|
| + info->GetString(kNameKey, &name);
|
| info->SetString(kAvatarIconKey, GetDefaultAvatarIconUrl(icon_index));
|
| // This takes ownership of |info|.
|
| SetInfoForProfileAtIndex(index, info.release());
|
| +
|
| + FilePath profile_path = GetPathOfProfileAtIndex(index);
|
| + std::string key = CacheKeyFromProfilePath(profile_path);
|
| + gfx::Image& avatar_img = ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + GetDefaultAvatarIconResourceIDAtIndex(icon_index));
|
| +
|
| + FOR_EACH_OBSERVER(ProfileInfoCacheObserver,
|
| + observer_list_,
|
| + OnProfileAvatarChanged(name, UTF8ToUTF16(key),
|
| + profile_path.value(),
|
| + &avatar_img));
|
| }
|
|
|
| void ProfileInfoCache::SetBackgroundStatusOfProfileAtIndex(
|
| @@ -516,9 +534,23 @@
|
| void ProfileInfoCache::SetIsUsingGAIAPictureOfProfileAtIndex(size_t index,
|
| bool value) {
|
| scoped_ptr<DictionaryValue> info(GetInfoForProfileAtIndex(index)->DeepCopy());
|
| + string16 name;
|
| + info->GetString(kNameKey, &name);
|
| info->SetBoolean(kUseGAIAPictureKey, value);
|
| // This takes ownership of |info|.
|
| SetInfoForProfileAtIndex(index, info.release());
|
| +
|
| + // Retrieve some info to update observers who care about avatar changes.
|
| + if (value) {
|
| + FilePath profile_path = GetPathOfProfileAtIndex(index);
|
| + std::string key = CacheKeyFromProfilePath(profile_path);
|
| +
|
| + FOR_EACH_OBSERVER(ProfileInfoCacheObserver,
|
| + observer_list_,
|
| + OnProfileAvatarChanged(name, UTF8ToUTF16(key),
|
| + profile_path.value(),
|
| + gaia_pictures_[key]));
|
| + }
|
| }
|
|
|
| string16 ProfileInfoCache::ChooseNameForNewProfile(size_t icon_index) {
|
|
|