| Index: content/browser/renderer_host/media/video_capture_manager.cc
 | 
| diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc
 | 
| index bc60336c614059c93dc7b3da8d94af9b892f91e9..cc170527fd677c35732c3753e781aa784a8cbcf7 100644
 | 
| --- a/content/browser/renderer_host/media/video_capture_manager.cc
 | 
| +++ b/content/browser/renderer_host/media/video_capture_manager.cc
 | 
| @@ -355,6 +355,15 @@ void VideoCaptureManager::OnDeviceLaunchAborted() {
 | 
|    ProcessDeviceStartRequestQueue();
 | 
|  }
 | 
|  
 | 
| +void VideoCaptureManager::OnDeviceConnectionLost(
 | 
| +    VideoCaptureController* controller) {
 | 
| +  const std::string log_message = base::StringPrintf(
 | 
| +      "Lost connection to device %d.", controller->serial_id());
 | 
| +  DLOG(WARNING) << log_message;
 | 
| +  controller->OnLog(log_message);
 | 
| +  controller->OnError();
 | 
| +}
 | 
| +
 | 
|  void VideoCaptureManager::ConnectClient(
 | 
|      media::VideoCaptureSessionId session_id,
 | 
|      const media::VideoCaptureParams& params,
 | 
| @@ -430,6 +439,10 @@ void VideoCaptureManager::DisconnectClient(
 | 
|  
 | 
|    // If controller has no more clients, delete controller and device.
 | 
|    DestroyControllerIfNoClients(controller);
 | 
| +
 | 
| +  if (controllers_.empty()) {
 | 
| +    video_capture_provider_->Uninitialize();
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  void VideoCaptureManager::PauseCaptureForClient(
 | 
| 
 |