| Index: chrome/browser/image_decoder.cc | 
| diff --git a/chrome/browser/image_decoder.cc b/chrome/browser/image_decoder.cc | 
| index f8f736ae63c2983a5ff57785f8e99884ae2927ad..4498f33e1f0bfdb4f0e81302e060fd7aa7f85b7f 100644 | 
| --- a/chrome/browser/image_decoder.cc | 
| +++ b/chrome/browser/image_decoder.cc | 
| @@ -28,7 +28,7 @@ const int kBatchModeTimeoutSeconds = 5; | 
| }  // namespace | 
|  | 
| ImageDecoder::ImageDecoder() | 
| -    : image_request_id_counter_(0), last_request_(base::TimeTicks::Now()) { | 
| +    : image_request_id_counter_(0) { | 
| // A single ImageDecoder instance should live for the life of the program. | 
| // Explicitly add a reference so the object isn't deleted. | 
| AddRef(); | 
| @@ -123,7 +123,15 @@ void ImageDecoder::DecodeImageInSandbox( | 
| return; | 
| } | 
|  | 
| -  last_request_ = base::TimeTicks::Now(); | 
| +  if (!batch_mode_timer_) { | 
| +    // Created here so it will call StopBatchMode() on the right thread. | 
| +    batch_mode_timer_.reset(new base::DelayTimer<ImageDecoder>( | 
| +        FROM_HERE, | 
| +        base::TimeDelta::FromSeconds(kBatchModeTimeoutSeconds), | 
| +        this, | 
| +        &ImageDecoder::StopBatchMode)); | 
| +  } | 
| +  batch_mode_timer_->Reset(); | 
|  | 
| switch (image_codec) { | 
| case ROBUST_JPEG_CODEC: | 
| @@ -160,23 +168,14 @@ void ImageDecoder::StartBatchMode() { | 
| utility_process_host_.reset(); | 
| return; | 
| } | 
| -  batch_mode_timer_.Start( | 
| -      FROM_HERE, base::TimeDelta::FromSeconds(kBatchModeTimeoutSeconds), | 
| -      this, &ImageDecoder::StopBatchMode); | 
| } | 
|  | 
| void ImageDecoder::StopBatchMode() { | 
| DCHECK_CURRENTLY_ON(BrowserThread::IO); | 
| -  if ((base::TimeTicks::Now() - last_request_) | 
| -      < base::TimeDelta::FromSeconds(kBatchModeTimeoutSeconds)) { | 
| -    return; | 
| -  } | 
| - | 
| if (utility_process_host_) { | 
| utility_process_host_->EndBatchMode(); | 
| utility_process_host_.reset(); | 
| } | 
| -  batch_mode_timer_.Stop(); | 
| } | 
|  | 
| bool ImageDecoder::OnMessageReceived( | 
|  |