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

Unified Diff: chrome/browser/image_decoder.cc

Issue 2715153006: Set desired_image_size when decoding images for NTP Tile icons. (Closed)
Patch Set: ax Created 3 years, 10 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/image_decoder.cc
diff --git a/chrome/browser/image_decoder.cc b/chrome/browser/image_decoder.cc
index 12306d8392893fee0bb4b68d2e09de2ea2094e51..5393c188dc3b2f8c9cd052c0b6c0b1ee4ecdbb16 100644
--- a/chrome/browser/image_decoder.cc
+++ b/chrome/browser/image_decoder.cc
@@ -17,6 +17,7 @@
#include "services/image_decoder/public/cpp/decode.h"
#include "services/service_manager/public/cpp/connector.h"
#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/geometry/size.h"
namespace {
@@ -62,6 +63,7 @@ void DecodeImage(
std::vector<uint8_t> image_data,
image_decoder::mojom::ImageCodec codec,
bool shrink_to_fit,
+ const gfx::Size& desired_image_frame_size,
const image_decoder::mojom::ImageDecoder::DecodeImageCallback& callback,
scoped_refptr<base::SequencedTaskRunner> callback_task_runner) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -72,9 +74,9 @@ void DecodeImage(
BindToBrowserConnector(std::move(connector_request));
image_decoder::Decode(connector.get(), image_data, codec, shrink_to_fit,
- kMaxImageSizeInBytes,
- base::Bind(&RunDecodeCallbackOnTaskRunner,
- callback, callback_task_runner));
+ kMaxImageSizeInBytes, desired_image_frame_size,
+ base::Bind(&RunDecodeCallbackOnTaskRunner, callback,
+ callback_task_runner));
}
} // namespace
@@ -102,7 +104,8 @@ ImageDecoder::~ImageDecoder() {}
// static
void ImageDecoder::Start(ImageRequest* image_request,
std::vector<uint8_t> image_data) {
- StartWithOptions(image_request, std::move(image_data), DEFAULT_CODEC, false);
+ StartWithOptions(image_request, std::move(image_data), DEFAULT_CODEC, false,
+ gfx::Size());
}
// static
@@ -116,9 +119,11 @@ void ImageDecoder::Start(ImageRequest* image_request,
void ImageDecoder::StartWithOptions(ImageRequest* image_request,
std::vector<uint8_t> image_data,
ImageCodec image_codec,
- bool shrink_to_fit) {
+ bool shrink_to_fit,
+ const gfx::Size& desired_image_frame_size) {
g_decoder.Get().StartWithOptionsImpl(image_request, std::move(image_data),
- image_codec, shrink_to_fit);
+ image_codec, shrink_to_fit,
+ desired_image_frame_size);
}
// static
@@ -128,25 +133,25 @@ void ImageDecoder::StartWithOptions(ImageRequest* image_request,
bool shrink_to_fit) {
StartWithOptions(image_request,
std::vector<uint8_t>(image_data.begin(), image_data.end()),
- image_codec, shrink_to_fit);
-}
-
-void ImageDecoder::StartWithOptionsImpl(ImageRequest* image_request,
- std::vector<uint8_t> image_data,
- ImageCodec image_codec,
- bool shrink_to_fit) {
- DCHECK(image_request);
- DCHECK(image_request->task_runner());
-
- int request_id;
- {
- base::AutoLock lock(map_lock_);
- request_id = image_request_id_counter_++;
- image_request_id_map_.insert(std::make_pair(request_id, image_request));
+ image_codec, shrink_to_fit, gfx::Size());
}
- image_decoder::mojom::ImageCodec codec =
- image_decoder::mojom::ImageCodec::DEFAULT;
+ void ImageDecoder::StartWithOptionsImpl(
+ ImageRequest * image_request, std::vector<uint8_t> image_data,
+ ImageCodec image_codec, bool shrink_to_fit,
+ const gfx::Size& desired_image_frame_size) {
Marc Treib 2017/03/01 09:17:26 nit: Is this "git cl format"ted? I think each para
tschumann 2017/03/01 09:37:43 reformatted.
+ DCHECK(image_request);
+ DCHECK(image_request->task_runner());
+
+ int request_id;
+ {
+ base::AutoLock lock(map_lock_);
+ request_id = image_request_id_counter_++;
+ image_request_id_map_.insert(std::make_pair(request_id, image_request));
+ }
+
+ image_decoder::mojom::ImageCodec codec =
+ image_decoder::mojom::ImageCodec::DEFAULT;
#if defined(OS_CHROMEOS)
if (image_codec == ROBUST_JPEG_CODEC)
codec = image_decoder::mojom::ImageCodec::ROBUST_JPEG;
@@ -167,7 +172,8 @@ void ImageDecoder::StartWithOptionsImpl(ImageRequest* image_request,
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&DecodeImage, base::Passed(&image_data), codec, shrink_to_fit,
- callback, make_scoped_refptr(image_request->task_runner())));
+ desired_image_frame_size, callback,
+ make_scoped_refptr(image_request->task_runner())));
}
// static

Powered by Google App Engine
This is Rietveld 408576698