| 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";
|
| }
|
|
|
|
|