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

Unified Diff: chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.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/ui/webui/options/chromeos/change_picture_options_handler.cc
diff --git a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc
index 300965fae792800e6f21f5fa3c4bad8bbc31195c..2af44e0f35f08da3de4efd774b7129c60e273e3f 100644
--- a/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.cc
@@ -77,7 +77,9 @@ const char kProfileDownloadReason[] = "Preferences";
} // namespace
ChangePictureOptionsHandler::ChangePictureOptionsHandler()
- : previous_image_url_(url::kAboutBlankURL),
+ : ImageRequest(
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)),
+ previous_image_url_(url::kAboutBlankURL),
previous_image_index_(user_manager::User::USER_IMAGE_INVALID) {
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_IMAGE_UPDATED,
content::NotificationService::AllSources());
@@ -98,8 +100,6 @@ ChangePictureOptionsHandler::~ChangePictureOptionsHandler() {
CameraPresenceNotifier::GetInstance()->RemoveObserver(this);
if (select_file_dialog_.get())
select_file_dialog_->ListenerDestroyed();
- if (image_decoder_.get())
- image_decoder_->set_delegate(NULL);
}
void ChangePictureOptionsHandler::GetLocalizedValues(
@@ -240,13 +240,8 @@ void ChangePictureOptionsHandler::HandlePhotoTaken(
user_photo_ = gfx::ImageSkia();
user_photo_data_url_ = image_url;
- 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 ChangePictureOptionsHandler::HandlePageInitialized(
@@ -370,7 +365,6 @@ void ChangePictureOptionsHandler::HandleSelectImage(
} else if (image_type == "camera") {
// Camera image is selected.
if (user_photo_.isNull()) {
- DCHECK(image_decoder_.get());
waiting_for_camera_photo = true;
VLOG(1) << "Still waiting for camera image to decode";
} else {
@@ -396,8 +390,8 @@ void ChangePictureOptionsHandler::HandleSelectImage(
}
// Ignore the result of the previous decoding if it's no longer needed.
- if (!waiting_for_camera_photo && image_decoder_.get())
- image_decoder_->set_delegate(NULL);
+ if (!waiting_for_camera_photo)
+ ImageDecoder::Cancel(this);
}
void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path,
@@ -458,16 +452,12 @@ gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const {
}
void ChangePictureOptionsHandler::OnImageDecoded(
- const ImageDecoder* decoder,
const SkBitmap& decoded_image) {
- DCHECK_EQ(image_decoder_.get(), decoder);
- image_decoder_ = NULL;
user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image);
SetImageFromCamera(user_photo_);
}
-void ChangePictureOptionsHandler::OnDecodeImageFailed(
- const ImageDecoder* decoder) {
+void ChangePictureOptionsHandler::OnDecodeImageFailed() {
NOTREACHED() << "Failed to decode PNG image from WebUI";
}
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/change_picture_options_handler.h ('k') | chrome/common/chrome_utility_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698