Index: chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc b/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc |
index 55eac97a1c52d29c13dd1fc0beb14e3482374bba..05f512c15117fb9e5484a0279d1ecb53e4128679 100644 |
--- a/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc |
+++ b/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc |
@@ -136,7 +136,7 @@ void ChangePictureOptionsHandler::RegisterMessages() { |
void ChangePictureOptionsHandler::SendDefaultImages() { |
ListValue image_urls; |
- for (int i = 0; i < kDefaultImagesCount; ++i) { |
+ for (int i = kFirstDefaultImageIndex; i < kDefaultImagesCount; ++i) { |
image_urls.Append(new StringValue(GetDefaultImageUrl(i))); |
} |
web_ui()->CallJavascriptFunction("ChangePictureOptions.setDefaultImages", |
@@ -251,10 +251,16 @@ void ChangePictureOptionsHandler::SendSelectedImage() { |
default: { |
DCHECK(previous_image_index_ >= 0 && |
previous_image_index_ < kDefaultImagesCount); |
- // User has image from the set of default images. |
- base::StringValue image_url(GetDefaultImageUrl(previous_image_index_)); |
- web_ui()->CallJavascriptFunction("ChangePictureOptions.setSelectedImage", |
- image_url); |
+ if (previous_image_index_ >= kFirstDefaultImageIndex) { |
+ // User has image from the current set of default images. |
+ base::StringValue image_url(GetDefaultImageUrl(previous_image_index_)); |
+ web_ui()->CallJavascriptFunction( |
+ "ChangePictureOptions.setSelectedImage", image_url); |
+ } else { |
+ // User has an old default image, so present it in the same manner as a |
+ // previous image from file. |
+ web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage"); |
+ } |
} |
} |
} |
@@ -295,14 +301,23 @@ void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { |
bool waiting_for_camera_photo = false; |
if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { |
- // Image from file/camera uses kChromeUIUserImageURL as URL while |
+ // Image from file/camera uses |kChromeUIUserImageURL| as URL while |
// current profile image always has a full data URL. |
// This way transition from (current profile image) to |
// (profile image, current image from file) is easier. |
+ // Also, old (not available for selection any more) default images use |
+ // this URL, too. |
- DCHECK(!previous_image_.empty()); |
- user_manager->SaveUserImage(user.email(), |
- UserImage::CreateAndEncode(previous_image_)); |
+ if (previous_image_index_ == User::kExternalImageIndex) { |
+ DCHECK(!previous_image_.empty()); |
+ user_manager->SaveUserImage(user.email(), |
+ UserImage::CreateAndEncode(previous_image_)); |
+ } else { |
+ DCHECK(previous_image_index_ >= 0 && |
+ previous_image_index_ < kFirstDefaultImageIndex); |
+ user_manager->SaveUserDefaultImageIndex(user.email(), |
+ previous_image_index_); |
+ } |
UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
kHistogramImageOld, |
@@ -313,7 +328,7 @@ void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { |
user_manager->SaveUserDefaultImageIndex(user.email(), image_index); |
UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
- image_index, |
+ GetDefaultImageHistogramValue(image_index), |
kHistogramImagesCount); |
VLOG(1) << "Selected default user image: " << image_index; |
} else if (image_url == user_photo_data_url_) { |