| Index: android_webview/browser/browser_view_renderer.cc | 
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc | 
| index ea9d60312836a4a3c45dc9dd20850bf05028defd..24f0ce9a344af60c6d7b2d57a34f17663ce6514e 100644 | 
| --- a/android_webview/browser/browser_view_renderer.cc | 
| +++ b/android_webview/browser/browser_view_renderer.cc | 
| @@ -216,6 +216,12 @@ bool BrowserViewRenderer::OnDrawHardware() { | 
| return false; | 
| } | 
|  | 
| +  if (last_on_draw_global_visible_rect_.IsEmpty()) { | 
| +    // WebView could be offscreen. Need to make sure WebView invalidates when | 
| +    // it is animated into the screen again. | 
| +    shared_renderer_state_.SetForceInvalidateOnNextDrawGLOnUI(true); | 
| +  } | 
| + | 
| ReturnResourceFromParent(); | 
| if (shared_renderer_state_.HasCompositorFrameOnUI()) { | 
| TRACE_EVENT_INSTANT0("android_webview", | 
| @@ -262,13 +268,9 @@ scoped_ptr<cc::CompositorFrame> BrowserViewRenderer::CompositeHw() { | 
| } | 
| } | 
|  | 
| -  scoped_ptr<cc::CompositorFrame> frame = | 
| -      compositor_->DemandDrawHw(surface_size, | 
| -                                gfx::Transform(), | 
| -                                viewport, | 
| -                                clip, | 
| -                                viewport_rect_for_tile_priority, | 
| -                                transform_for_tile_priority); | 
| +  scoped_ptr<cc::CompositorFrame> frame = compositor_->DemandDrawHw( | 
| +      surface_size, gfx::Transform(), viewport, clip, | 
| +      viewport_rect_for_tile_priority, transform_for_tile_priority); | 
| if (frame.get()) | 
| DidComposite(); | 
| return frame.Pass(); | 
|  |