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

Unified Diff: chrome/browser/android/logo_service.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
« no previous file with comments | « no previous file | chrome/browser/apps/drive/drive_app_converter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/logo_service.cc
diff --git a/chrome/browser/android/logo_service.cc b/chrome/browser/android/logo_service.cc
index ddcb626361050d372542a332ab237ab94479e4ed..17ec96830fdb66eb194a15fcc0d269de1fe2d6c9 100644
--- a/chrome/browser/android/logo_service.cc
+++ b/chrome/browser/android/logo_service.cc
@@ -36,41 +36,36 @@ GURL GetGoogleDoodleURL(Profile* profile) {
return google_base_url.ReplaceComponents(replacements);
}
-class LogoDecoderDelegate : public ImageDecoder::Delegate {
+class LogoDecoderDelegate : public ImageDecoder::ImageRequest {
public:
LogoDecoderDelegate(
- const scoped_refptr<ImageDecoder>& image_decoder,
const base::Callback<void(const SkBitmap&)>& image_decoded_callback)
- : image_decoder_(image_decoder),
+ : ImageRequest(base::MessageLoopProxy::current()),
image_decoded_callback_(image_decoded_callback),
weak_ptr_factory_(this) {
// If the ImageDecoder crashes or otherwise never completes, call
// OnImageDecodeTimedOut() eventually to ensure that image_decoded_callback_
// is run.
base::MessageLoopProxy::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&LogoDecoderDelegate::OnDecodeImageFailed,
- weak_ptr_factory_.GetWeakPtr(),
- (const ImageDecoder*) NULL),
+ FROM_HERE, base::Bind(&LogoDecoderDelegate::OnDecodeImageFailed,
+ weak_ptr_factory_.GetWeakPtr()),
base::TimeDelta::FromSeconds(kDecodeLogoTimeoutSeconds));
}
- ~LogoDecoderDelegate() override { image_decoder_->set_delegate(NULL); }
+ ~LogoDecoderDelegate() override {}
- // ImageDecoder::Delegate:
- void OnImageDecoded(const ImageDecoder* decoder,
- const SkBitmap& decoded_image) override {
+ // ImageDecoder::ImageRequest:
+ void OnImageDecoded(const SkBitmap& decoded_image) override {
image_decoded_callback_.Run(decoded_image);
delete this;
}
- void OnDecodeImageFailed(const ImageDecoder* decoder) override {
+ void OnDecodeImageFailed() override {
image_decoded_callback_.Run(SkBitmap());
delete this;
}
private:
- scoped_refptr<ImageDecoder> image_decoder_;
base::Callback<void(const SkBitmap&)> image_decoded_callback_;
base::WeakPtrFactory<LogoDecoderDelegate> weak_ptr_factory_;
@@ -86,14 +81,9 @@ class ChromeLogoDelegate : public search_provider_logos::LogoDelegate {
void DecodeUntrustedImage(
const scoped_refptr<base::RefCountedString>& encoded_image,
base::Callback<void(const SkBitmap&)> image_decoded_callback) override {
- scoped_refptr<ImageDecoder> image_decoder = new ImageDecoder(
- NULL,
- encoded_image->data(),
- ImageDecoder::DEFAULT_CODEC);
LogoDecoderDelegate* delegate =
- new LogoDecoderDelegate(image_decoder, image_decoded_callback);
- image_decoder->set_delegate(delegate);
- image_decoder->Start(base::MessageLoopProxy::current());
+ new LogoDecoderDelegate(image_decoded_callback);
+ ImageDecoder::Start(delegate, encoded_image->data());
}
private:
« no previous file with comments | « no previous file | chrome/browser/apps/drive/drive_app_converter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698