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

Unified Diff: chrome/browser/chromeos/login/screens/user_image_screen.cc

Issue 931993002: Make image_decoder a Leaky LazyInstance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a few comments Created 5 years, 9 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/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";
}

Powered by Google App Engine
This is Rietveld 408576698