Chromium Code Reviews| Index: chrome/browser/chromeos/login/user_image_loader.cc |
| diff --git a/chrome/browser/chromeos/login/user_image_loader.cc b/chrome/browser/chromeos/login/user_image_loader.cc |
| index 6734642d60fc9ab030430ee7a73ccf1b8c6add10..360d904492ec6c405ddc002c4d55cc364246fa1c 100644 |
| --- a/chrome/browser/chromeos/login/user_image_loader.cc |
| +++ b/chrome/browser/chromeos/login/user_image_loader.cc |
| @@ -30,8 +30,8 @@ UserImageLoader::ImageInfo::ImageInfo(int size, |
| UserImageLoader::ImageInfo::~ImageInfo() { |
| } |
| -UserImageLoader::UserImageLoader() |
| - : target_message_loop_(NULL) { |
| +UserImageLoader::UserImageLoader(ImageDecoder::ImageCodec image_codec) |
| + : target_message_loop_(NULL), image_codec_(image_codec) { |
|
sky
2012/08/30 19:31:05
If the member initializer list is wrapped to a new
Emmanuel Saint-loubert-Bié
2012/08/30 21:02:52
Done.
|
| } |
| UserImageLoader::~UserImageLoader() { |
| @@ -56,7 +56,7 @@ void UserImageLoader::LoadImage(const std::string& filepath, |
| file_util::ReadFileToString(FilePath(filepath), &image_data); |
| scoped_refptr<ImageDecoder> image_decoder = |
| - new ImageDecoder(this, image_data, ImageDecoder::DEFAULT_CODEC); |
| + new ImageDecoder(this, image_data, image_codec_); |
| image_info_map_.insert(std::make_pair(image_decoder.get(), image_info)); |
| image_decoder->Start(); |
| } |
| @@ -104,6 +104,18 @@ void UserImageLoader::OnImageDecoded(const ImageDecoder* decoder, |
| void UserImageLoader::OnDecodeImageFailed(const ImageDecoder* decoder) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| + |
| + ImageInfoMap::iterator info_it = image_info_map_.find(decoder); |
| + if (info_it == image_info_map_.end()) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + |
| + const ImageInfo& image_info = info_it->second; |
| + static UserImage empty_image; |
|
sky
2012/08/30 19:31:05
Statics should only be of primitive types. I think
|
| + target_message_loop_->PostTask( |
| + FROM_HERE, |
| + base::Bind(image_info.loaded_cb, empty_image)); |
| image_info_map_.erase(decoder); |
| } |