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

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: Check conflict. 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..dbd4958858a0a80cc17b59868346bd41269d79d3 100644
--- a/chrome/browser/chromeos/login/user_image_loader.cc
+++ b/chrome/browser/chromeos/login/user_image_loader.cc
@@ -30,8 +30,9 @@ 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) {
}
UserImageLoader::~UserImageLoader() {
@@ -56,7 +57,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 +105,17 @@ 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;
+ target_message_loop_->PostTask(
+ FROM_HERE,
+ base::Bind(image_info.loaded_cb, UserImage()));
image_info_map_.erase(decoder);
}
« no previous file with comments | « chrome/browser/chromeos/login/user_image_loader.h ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698