Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Unified Diff: chrome/browser/chromeos/login/user_image_loader.cc

Issue 10912019: Enable robust decoding of custom wallpaper and allow custom wallpaper on login page (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698