Index: chrome/browser/chromeos/login/screens/user_image_screen.cc |
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
index 3ea07eab57e61b6f0c4183709f069024c4d9eeca..b9eef60639f3678fe87de11214c64ab2fdb6c717 100644 |
--- a/chrome/browser/chromeos/login/screens/user_image_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
@@ -66,6 +66,8 @@ UserImageScreen* UserImageScreen::Get(ScreenManager* manager) { |
UserImageScreen::UserImageScreen(BaseScreenDelegate* base_screen_delegate, |
UserImageView* view) |
: UserImageModel(base_screen_delegate), |
+ ImageRequest( |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)), |
view_(view), |
accept_photo_after_decoding_(false), |
selected_image_(user_manager::User::USER_IMAGE_INVALID), |
@@ -89,8 +91,6 @@ UserImageScreen::~UserImageScreen() { |
CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
if (view_) |
view_->Unbind(); |
- if (image_decoder_.get()) |
- image_decoder_->set_delegate(NULL); |
} |
void UserImageScreen::OnScreenReady() { |
@@ -102,13 +102,8 @@ void UserImageScreen::OnScreenReady() { |
void UserImageScreen::OnPhotoTaken(const std::string& raw_data) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
user_photo_ = gfx::ImageSkia(); |
- if (image_decoder_.get()) |
- image_decoder_->set_delegate(NULL); |
- image_decoder_ = new ImageDecoder(this, raw_data, |
- ImageDecoder::DEFAULT_CODEC); |
- scoped_refptr<base::MessageLoopProxy> task_runner = |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI); |
- image_decoder_->Start(task_runner); |
+ ImageDecoder::Cancel(this); |
+ ImageDecoder::Start(this, raw_data); |
} |
void UserImageScreen::OnCameraPresenceCheckDone(bool is_camera_present) { |
@@ -120,15 +115,13 @@ void UserImageScreen::HideCurtain() { |
view_->HideCurtain(); |
} |
-void UserImageScreen::OnImageDecoded(const ImageDecoder* decoder, |
- const SkBitmap& decoded_image) { |
- DCHECK_EQ(image_decoder_.get(), decoder); |
+void UserImageScreen::OnImageDecoded(const SkBitmap& decoded_image) { |
user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
if (accept_photo_after_decoding_) |
OnImageAccepted(); |
} |
-void UserImageScreen::OnDecodeImageFailed(const ImageDecoder* decoder) { |
+void UserImageScreen::OnDecodeImageFailed() { |
NOTREACHED() << "Failed to decode PNG image from WebUI"; |
} |