| Index: content/browser/gpu/browser_gpu_channel_host_factory.cc | 
| diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc | 
| index 9edb9677c56abc2b4801d5aa62193d362236b95c..4325c066269d8965667225b9b2176ec1f6867d83 100644 | 
| --- a/content/browser/gpu/browser_gpu_channel_host_factory.cc | 
| +++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc | 
| @@ -295,6 +295,10 @@ BrowserGpuChannelHostFactory::~BrowserGpuChannelHostFactory() { | 
| for (size_t n = 0; n < established_callbacks_.size(); n++) | 
| established_callbacks_[n].Run(); | 
| shutdown_event_->Signal(); | 
| +  if (gpu_channel_) { | 
| +    gpu_channel_->DestroyChannel(); | 
| +    gpu_channel_ = NULL; | 
| +  } | 
| } | 
|  | 
| bool BrowserGpuChannelHostFactory::IsMainThread() { | 
| @@ -396,6 +400,7 @@ void BrowserGpuChannelHostFactory::EstablishGpuChannel( | 
| if (gpu_channel_.get() && gpu_channel_->IsLost()) { | 
| DCHECK(!pending_request_.get()); | 
| // Recreate the channel if it has been lost. | 
| +    gpu_channel_->DestroyChannel(); | 
| gpu_channel_ = NULL; | 
| } | 
|  | 
|  |