From d9d0e601c4c45ec8f2fb1d148e68458d9baa4e24 Mon Sep 17 00:00:00 2001 From: glevin Date: Wed, 24 Sep 2014 07:17:21 -0700 Subject: Handle large wallpaper decoding in utility process: Images over 32M pixels exceed IPC message limit size. In ChromeContentUtilityClient::DecodeImage(), cut image dimensions in half to minimize quality loss and allow decoded image to be returned via IPC message. BUG=366825 TEST=ChromeContentUtilityClientTest.DecodeImageSizeLimit; Set ChromeOS wallpaper using JPGs attached to bug Review URL: https://codereview.chromium.org/482163002 Cr-Commit-Position: refs/heads/master@{#296407} --- chrome/browser/image_decoder.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'chrome/browser/image_decoder.cc') diff --git a/chrome/browser/image_decoder.cc b/chrome/browser/image_decoder.cc index b49c1b9..4c96bb4 100644 --- a/chrome/browser/image_decoder.cc +++ b/chrome/browser/image_decoder.cc @@ -19,7 +19,8 @@ ImageDecoder::ImageDecoder(Delegate* delegate, : delegate_(delegate), image_data_(image_data.begin(), image_data.end()), image_codec_(image_codec), - task_runner_(NULL) { + task_runner_(NULL), + shrink_to_fit_(false) { } ImageDecoder::~ImageDecoder() {} @@ -64,6 +65,7 @@ void ImageDecoder::DecodeImageInSandbox( utility_process_host->Send( new ChromeUtilityMsg_RobustJPEGDecodeImage(image_data)); } else { - utility_process_host->Send(new ChromeUtilityMsg_DecodeImage(image_data)); + utility_process_host->Send( + new ChromeUtilityMsg_DecodeImage(image_data, shrink_to_fit_)); } } -- cgit v1.1