Index: content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc |
diff --git a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc |
index ec2da9421027402e975acc7343e727ae020b7532..4a6209187841fd1cad1bd24f067cca8fefa63bca 100644 |
--- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc |
+++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc |
@@ -199,7 +199,12 @@ void VideoCaptureGpuJpegDecoder::EstablishGpuChannelOnUIThread( |
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
base::WeakPtr<VideoCaptureGpuJpegDecoder> weak_this) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- DCHECK(BrowserGpuChannelHostFactory::instance()); |
+ |
+ // If the factory is unavailable, this means we are shutting down. |
+ if (!BrowserGpuChannelHostFactory::instance()) { |
+ GpuChannelEstablishedOnUIThread(task_runner, weak_this, nullptr); |
+ return; |
+ } |
BrowserGpuChannelHostFactory::instance()->EstablishGpuChannel( |
base::Bind(&VideoCaptureGpuJpegDecoder::GpuChannelEstablishedOnUIThread, |