| Index: chrome/browser/image_decoder.cc
|
| diff --git a/chrome/browser/image_decoder.cc b/chrome/browser/image_decoder.cc
|
| index 6d7b948aa7f63a79dc817fc41088aec47cd588d3..b5b71668a3bc7bc1ca11c765f38b857a6726ad6e 100644
|
| --- a/chrome/browser/image_decoder.cc
|
| +++ b/chrome/browser/image_decoder.cc
|
| @@ -19,16 +19,13 @@ ImageDecoder::ImageDecoder(Delegate* delegate,
|
| : delegate_(delegate),
|
| image_data_(image_data.begin(), image_data.end()),
|
| image_codec_(image_codec),
|
| - target_thread_id_(BrowserThread::UI) {
|
| + task_runner_(NULL) {
|
| }
|
|
|
| ImageDecoder::~ImageDecoder() {}
|
|
|
| -void ImageDecoder::Start() {
|
| - if (!BrowserThread::GetCurrentThreadIdentifier(&target_thread_id_)) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| +void ImageDecoder::Start(scoped_refptr<base::SequencedTaskRunner> task_runner) {
|
| + task_runner_ = task_runner;
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| base::Bind(&ImageDecoder::DecodeImageInSandbox, this, image_data_));
|
| @@ -47,13 +44,13 @@ bool ImageDecoder::OnMessageReceived(const IPC::Message& message) {
|
| }
|
|
|
| void ImageDecoder::OnDecodeImageSucceeded(const SkBitmap& decoded_image) {
|
| - DCHECK(BrowserThread::CurrentlyOn(target_thread_id_));
|
| + DCHECK(task_runner_->RunsTasksOnCurrentThread());
|
| if (delegate_)
|
| delegate_->OnImageDecoded(this, decoded_image);
|
| }
|
|
|
| void ImageDecoder::OnDecodeImageFailed() {
|
| - DCHECK(BrowserThread::CurrentlyOn(target_thread_id_));
|
| + DCHECK(task_runner_->RunsTasksOnCurrentThread());
|
| if (delegate_)
|
| delegate_->OnDecodeImageFailed(this);
|
| }
|
| @@ -61,8 +58,8 @@ void ImageDecoder::OnDecodeImageFailed() {
|
| void ImageDecoder::DecodeImageInSandbox(
|
| const std::vector<unsigned char>& image_data) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - UtilityProcessHost* utility_process_host = UtilityProcessHost::Create(
|
| - this, BrowserThread::GetMessageLoopProxyForThread(target_thread_id_));
|
| + UtilityProcessHost* utility_process_host;
|
| + utility_process_host = UtilityProcessHost::Create(this, task_runner_.get());
|
| utility_process_host->EnableZygote();
|
| if (image_codec_ == ROBUST_JPEG_CODEC) {
|
| utility_process_host->Send(
|
|
|