Chromium Code Reviews| Index: chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc |
| diff --git a/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc b/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc |
| index c39859d8d8f94dc8d1648adf16ec02290b84053a..d2c4cd2dce5bc3d85b1a5d19a4b133e7a4fbe615 100644 |
| --- a/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc |
| +++ b/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc |
| @@ -72,7 +72,8 @@ void BookmarkImageServiceAndroid::RetrieveSalientImage( |
| enhanced_bookmark_model_->bookmark_model() |
| ->GetMostRecentlyAddedUserNodeForURL(page_url); |
| if (!bookmark || !image_url.is_valid()) { |
| - ProcessNewImage(page_url, update_bookmark, image_url, gfx::Image()); |
| + ProcessNewImage(page_url, update_bookmark, image_url, |
| + scoped_ptr<gfx::Image>(new gfx::Image())); |
| return; |
| } |
| @@ -211,26 +212,32 @@ void BookmarkImageServiceAndroid::RetrieveSalientImageFromContextCallback( |
| referrer_policy, update_bookmark); |
| } |
| -gfx::Image BookmarkImageServiceAndroid::ResizeImage(gfx::Image image) { |
| +scoped_ptr<gfx::Image> BookmarkImageServiceAndroid::ResizeImage( |
| + const gfx::Image& image) { |
| DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| - gfx::Image resized_image = image; |
| + scoped_ptr<gfx::Image> result(new gfx::Image(image)); |
|
noyau (Ping after 24h)
2015/04/02 07:48:20
I know it doesn't cost that much, but still, an im
Kibeom Kim (inactive)
2015/04/02 08:48:18
Done.
|
| + |
| if (image.Width() > max_size_.width() && |
| image.Height() > max_size_.height()) { |
| - float resize_ratio = std::min(((float)max_size_.width()) / image.Width(), |
| - ((float)max_size_.height()) / image.Height()); |
| + float resize_ratio = std::min( |
| + ((float)max_size_.width()) / image.Width(), |
| + ((float)max_size_.height()) / image.Height()); |
| // +0.5f is for correct rounding. Without it, it's possible that dest_width |
| // is smaller than max_size_.Width() by one. |
| int dest_width = static_cast<int>(resize_ratio * image.Width() + 0.5f); |
| - int dest_height = static_cast<int>(resize_ratio * image.Height() + 0.5f); |
| - |
| - resized_image = |
| - gfx::Image::CreateFrom1xBitmap(skia::ImageOperations::Resize( |
| - image.AsBitmap(), skia::ImageOperations::RESIZE_BEST, dest_width, |
| - dest_height)); |
| - resized_image.AsImageSkia().MakeThreadSafe(); |
| + int dest_height = static_cast<int>( |
| + resize_ratio * image.Height() + 0.5f); |
| + |
| + *result = gfx::Image::CreateFrom1xBitmap( |
|
noyau (Ping after 24h)
2015/04/02 07:48:20
Use result.reset(...) instead? It seems to be the
Kibeom Kim (inactive)
2015/04/02 08:48:18
but reset(...) takes pointer type so I think this
|
| + skia::ImageOperations::Resize(image.AsBitmap(), |
| + skia::ImageOperations::RESIZE_BEST, |
| + dest_width, |
| + dest_height)); |
| + result->AsImageSkia().MakeThreadSafe(); |
| } |
| - return resized_image; |
| + |
| + return result.Pass(); |
| } |
| void BookmarkImageServiceAndroid::BitmapFetcherHandler::Start( |
| @@ -252,13 +259,15 @@ void BookmarkImageServiceAndroid::BitmapFetcherHandler::OnFetchComplete( |
| const SkBitmap* bitmap) { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| - gfx::Image image; |
| + scoped_ptr<gfx::Image> image; |
| if (bitmap) { |
| gfx::ImageSkia imageSkia = gfx::ImageSkia::CreateFrom1xBitmap(*bitmap); |
| imageSkia.MakeThreadSafe(); |
| - image = gfx::Image(imageSkia); |
| + image.reset(new gfx::Image(imageSkia)); |
| + } else { |
| + image.reset(new gfx::Image()); |
| } |
| - service_->ProcessNewImage(page_url_, update_bookmark_, url, image); |
| + service_->ProcessNewImage(page_url_, update_bookmark_, url, image.Pass()); |
| delete this; |
| } |