| Index: android_webview/browser/render_thread_manager.cc | 
| diff --git a/android_webview/browser/render_thread_manager.cc b/android_webview/browser/render_thread_manager.cc | 
| index 1bb44aa75c313e4fedabc107a41e9beb2e01e4dc..4a11df24e1cf84f9bf7a54c64d9babddc8dc8c76 100644 | 
| --- a/android_webview/browser/render_thread_manager.cc | 
| +++ b/android_webview/browser/render_thread_manager.cc | 
| @@ -287,17 +287,19 @@ void RenderThreadManager::DrawGL(AwDrawGLInfo* draw_info) { | 
| // Set the correct FBO before kModeDraw. The GL commands run in kModeDraw | 
| // require a correctly bound FBO. The FBO remains until the next kModeDraw. | 
| // So kModeProcess between kModeDraws has correctly bound FBO, too. | 
| -  if (draw_info->mode == AwDrawGLInfo::kModeDraw && !hardware_renderer_ && | 
| -      !IsInsideHardwareRelease() && HasFrameForHardwareRendererOnRT()) { | 
| -    hardware_renderer_.reset(new HardwareRenderer(this)); | 
| -    hardware_renderer_->CommitFrame(); | 
| -  } | 
| if (hardware_renderer_) { | 
| hardware_renderer_->SetBackingFrameBufferObject( | 
| state_restore.framebuffer_binding_ext()); | 
| } | 
|  | 
| ScopedAllowGL allow_gl; | 
| +  if (!hardware_renderer_ && draw_info->mode == AwDrawGLInfo::kModeDraw && | 
| +      !IsInsideHardwareRelease() && HasFrameForHardwareRendererOnRT()) { | 
| +    hardware_renderer_.reset(new HardwareRenderer(this)); | 
| +    hardware_renderer_->SetBackingFrameBufferObject( | 
| +        state_restore.framebuffer_binding_ext()); | 
| +    hardware_renderer_->CommitFrame(); | 
| +  } | 
|  | 
| if (draw_info->mode == AwDrawGLInfo::kModeProcessNoContext) { | 
| LOG(ERROR) << "Received unexpected kModeProcessNoContext"; | 
|  |