| Index: content/browser/renderer_host/media/web_contents_video_capture_device.cc | 
| diff --git a/content/browser/renderer_host/media/web_contents_video_capture_device.cc b/content/browser/renderer_host/media/web_contents_video_capture_device.cc | 
| index 66385265dae28634c4b804d87307e29e5eec0aa8..51739bc28bfb7c2fa4a3be275a6729c236629de4 100644 | 
| --- a/content/browser/renderer_host/media/web_contents_video_capture_device.cc | 
| +++ b/content/browser/renderer_host/media/web_contents_video_capture_device.cc | 
| @@ -989,7 +989,16 @@ void BackingStoreCopier::StartCopy( | 
| TRACE_EVENT_ASYNC_BEGIN1("mirroring", "Capture", this, | 
| "frame_number", frame_number); | 
|  | 
| -  if (view && view->CanCopyToVideoFrame()) { | 
| +  if (!view->IsSurfaceAvailableForCopy()) { | 
| +    // Fallback to the more expensive renderer-side copy if the surface and | 
| +    // backing store are not accessible. | 
| +    rwh->GetSnapshotFromRenderer( | 
| +        gfx::Rect(), | 
| +        fitted_size, | 
| +        base::Bind(&BackingStoreCopier::DidCopyFromBackingStore, | 
| +                   base::Unretained(this), frame_number, | 
| +                   base::Time::Now(), callback)); | 
| +  } else if (view && view->CanCopyToVideoFrame()) { | 
| gfx::Size view_size = view->GetViewBounds().size(); | 
|  | 
| view->CopyFromCompositingSurfaceToVideoFrame( | 
|  |