| Index: media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
 | 
| diff --git a/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc b/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
 | 
| index 1afe39c3db273df7c5e728c9d4cceb61e15e41f3..fca7a5b7741e500bcc18d6ebda152630076e6747 100644
 | 
| --- a/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
 | 
| +++ b/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
 | 
| @@ -118,11 +118,14 @@ GpuJpegDecodeAcceleratorHost::~GpuJpegDecodeAcceleratorHost() {
 | 
|      // routed to |receiver_| on IO thread.
 | 
|      base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
 | 
|                                base::WaitableEvent::InitialState::NOT_SIGNALED);
 | 
| -    io_task_runner_->PostTask(FROM_HERE,
 | 
| -                              base::Bind(&Receiver::InvalidateWeakPtr,
 | 
| -                                         base::Unretained(receiver_.get()),
 | 
| -                                         base::Unretained(&event)));
 | 
| -    event.Wait();
 | 
| +    bool task_expected_to_run = io_task_runner_->PostTask(
 | 
| +        FROM_HERE, base::Bind(&Receiver::InvalidateWeakPtr,
 | 
| +                              base::Unretained(receiver_.get()),
 | 
| +                              base::Unretained(&event)));
 | 
| +    // If the current call is happening during the browser shutdown, the
 | 
| +    // |io_task_runner_| may no longer be accepting tasks.
 | 
| +    if (task_expected_to_run)
 | 
| +      event.Wait();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |