| Index: android_webview/browser/hardware_renderer.cc | 
| diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc | 
| index 9cfd1d39d6a43153b8c4eb51af3eeab4cf3a2ea9..1449541c51fb2614c7e9eba60cd124bbcf25a53d 100644 | 
| --- a/android_webview/browser/hardware_renderer.cc | 
| +++ b/android_webview/browser/hardware_renderer.cc | 
| @@ -253,9 +253,7 @@ void HardwareRenderer::DrawGL(bool stencil_enabled, | 
| gl_surface_->ResetBackingFrameBufferObject(); | 
| } | 
|  | 
| -void HardwareRenderer::RequestNewOutputSurface(bool fallback) { | 
| -  // Android webview does not support losing output surface. | 
| -  DCHECK(!fallback); | 
| +void HardwareRenderer::RequestNewOutputSurface() { | 
| scoped_refptr<cc::ContextProvider> context_provider = | 
| CreateContext(gl_surface_, | 
| DeferredGpuCommandService::GetInstance()); | 
| @@ -265,6 +263,10 @@ void HardwareRenderer::RequestNewOutputSurface(bool fallback) { | 
| layer_tree_host_->SetOutputSurface(output_surface_holder.Pass()); | 
| } | 
|  | 
| +void HardwareRenderer::DidFailToInitializeOutputSurface() { | 
| +  RequestNewOutputSurface(); | 
| +} | 
| + | 
| void HardwareRenderer::UnusedResourcesAreAvailable() { | 
| cc::ReturnedResourceArray returned_resources; | 
| resource_collection_->TakeUnusedResourcesForChildCompositor( | 
|  |