| OLD | NEW | 
|   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #include "chrome/browser/image_decoder.h" |   5 #include "chrome/browser/image_decoder.h" | 
|   6  |   6  | 
|   7 #include "base/bind.h" |   7 #include "base/bind.h" | 
|   8 #include "chrome/browser/browser_process.h" |   8 #include "chrome/browser/browser_process.h" | 
|   9 #include "chrome/common/chrome_utility_messages.h" |   9 #include "chrome/common/chrome_utility_messages.h" | 
|  10 #include "content/public/browser/browser_thread.h" |  10 #include "content/public/browser/browser_thread.h" | 
|  11 #include "content/public/browser/utility_process_host.h" |  11 #include "content/public/browser/utility_process_host.h" | 
|  12  |  12  | 
|  13 using content::BrowserThread; |  13 using content::BrowserThread; | 
|  14 using content::UtilityProcessHost; |  14 using content::UtilityProcessHost; | 
|  15  |  15  | 
|  16 ImageDecoder::ImageDecoder(Delegate* delegate, |  16 ImageDecoder::ImageDecoder(Delegate* delegate, | 
|  17                            const std::string& image_data, |  17                            const std::string& image_data, | 
|  18                            ImageCodec image_codec) |  18                            ImageCodec image_codec) | 
|  19     : delegate_(delegate), |  19     : delegate_(delegate), | 
|  20       image_data_(image_data.begin(), image_data.end()), |  20       image_data_(image_data.begin(), image_data.end()), | 
|  21       image_codec_(image_codec), |  21       image_codec_(image_codec), | 
|  22       task_runner_(NULL) { |  22       task_runner_(NULL), | 
 |  23       shrink_to_fit_(false) { | 
|  23 } |  24 } | 
|  24  |  25  | 
|  25 ImageDecoder::~ImageDecoder() {} |  26 ImageDecoder::~ImageDecoder() {} | 
|  26  |  27  | 
|  27 void ImageDecoder::Start(scoped_refptr<base::SequencedTaskRunner> task_runner) { |  28 void ImageDecoder::Start(scoped_refptr<base::SequencedTaskRunner> task_runner) { | 
|  28   task_runner_ = task_runner; |  29   task_runner_ = task_runner; | 
|  29   BrowserThread::PostTask( |  30   BrowserThread::PostTask( | 
|  30      BrowserThread::IO, FROM_HERE, |  31      BrowserThread::IO, FROM_HERE, | 
|  31      base::Bind(&ImageDecoder::DecodeImageInSandbox, this, image_data_)); |  32      base::Bind(&ImageDecoder::DecodeImageInSandbox, this, image_data_)); | 
|  32 } |  33 } | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
|  57  |  58  | 
|  58 void ImageDecoder::DecodeImageInSandbox( |  59 void ImageDecoder::DecodeImageInSandbox( | 
|  59     const std::vector<unsigned char>& image_data) { |  60     const std::vector<unsigned char>& image_data) { | 
|  60   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |  61   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
|  61   UtilityProcessHost* utility_process_host; |  62   UtilityProcessHost* utility_process_host; | 
|  62   utility_process_host = UtilityProcessHost::Create(this, task_runner_.get()); |  63   utility_process_host = UtilityProcessHost::Create(this, task_runner_.get()); | 
|  63   if (image_codec_ == ROBUST_JPEG_CODEC) { |  64   if (image_codec_ == ROBUST_JPEG_CODEC) { | 
|  64     utility_process_host->Send( |  65     utility_process_host->Send( | 
|  65         new ChromeUtilityMsg_RobustJPEGDecodeImage(image_data)); |  66         new ChromeUtilityMsg_RobustJPEGDecodeImage(image_data)); | 
|  66   } else { |  67   } else { | 
|  67     utility_process_host->Send(new ChromeUtilityMsg_DecodeImage(image_data)); |  68     utility_process_host->Send( | 
 |  69         new ChromeUtilityMsg_DecodeImage(image_data, shrink_to_fit_)); | 
|  68   } |  70   } | 
|  69 } |  71 } | 
| OLD | NEW |