summaryrefslogtreecommitdiffstats
path: root/chrome/utility
diff options
context:
space:
mode:
authorsaintlou@chromium.org <saintlou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-31 00:35:31 +0000
committersaintlou@chromium.org <saintlou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-31 00:35:31 +0000
commit8c98ad1cd5bf430ed2beb606316ee236d45dc389 (patch)
treee63fd185b72916386a1312c42743c70228adc789 /chrome/utility
parentc5667b283234e05eb9c561fbb993a38e771a1b50 (diff)
downloadchromium_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.cc15
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();
}