diff options
author | saintlou@chromium.org <saintlou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 00:35:31 +0000 |
---|---|---|
committer | saintlou@chromium.org <saintlou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 00:35:31 +0000 |
commit | 8c98ad1cd5bf430ed2beb606316ee236d45dc389 (patch) | |
tree | e63fd185b72916386a1312c42743c70228adc789 /chrome/utility | |
parent | c5667b283234e05eb9c561fbb993a38e771a1b50 (diff) | |
download | chromium_src-8c98ad1cd5bf430ed2beb606316ee236d45dc389.zip chromium_src-8c98ad1cd5bf430ed2beb606316ee236d45dc389.tar.gz chromium_src-8c98ad1cd5bf430ed2beb606316ee236d45dc389.tar.bz2 |
+ Ensure that OnRobustJPEGDecodeImage only uses the codec of our choosing (IJGlibjpeg at the moment).
+ Solve CrOS boot time hang when image decoding fail in utility process.
+ Enforce Robust JPEG decoding of Wallpaper image, -> and as a result re-enable custom wallpapers rendering on the login page.
BUG=143198,144296,144999
Review URL: https://chromiumcodereview.appspot.com/10912019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154330 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/utility')
-rw-r--r-- | chrome/utility/chrome_content_utility_client.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc index f28771c..736dd3b 100644 --- a/chrome/utility/chrome_content_utility_client.cc +++ b/chrome/utility/chrome_content_utility_client.cc @@ -362,12 +362,17 @@ bool ChromeContentUtilityClient::RenderPDFToWinMetafile( void ChromeContentUtilityClient::OnRobustJPEGDecodeImage( const std::vector<unsigned char>& encoded_data) { - scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodec::Decode( - &encoded_data[0], encoded_data.size())); - if (decoded_image->empty()) { - Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); + // Our robust jpeg decoding is using IJG libjpeg. + if (gfx::JPEGCodec::JpegLibraryVariant() == gfx::JPEGCodec::IJG_LIBJPEG) { + scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodec::Decode( + &encoded_data[0], encoded_data.size())); + if (!decoded_image.get() || decoded_image->empty()) { + Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); + } else { + Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image)); + } } else { - Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image)); + Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); } content::UtilityThread::Get()->ReleaseProcessIfNeeded(); } |