Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_android.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
| index 67a3e55bcbd80627e58ea9eeedf5f48103b9e2a5..e078417fae3a440d52437f778214983d04862719 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -1601,6 +1601,7 @@ void RenderWidgetHostViewAndroid::SetContentViewCore( |
| bool resize = false; |
| if (content_view_core != content_view_core_) { |
| + overscroll_effect_.reset(); |
| selection_controller_.reset(); |
| ReleaseLocksOnSurface(); |
| resize = true; |
| @@ -1631,9 +1632,8 @@ void RenderWidgetHostViewAndroid::SetContentViewCore( |
| if (!selection_controller_) |
| selection_controller_.reset(new TouchSelectionController(this)); |
| - if (!content_view_core_) |
| - overscroll_effect_.reset(); |
| - else if (overscroll_effect_enabled_ && !overscroll_effect_) |
| + if (overscroll_effect_enabled_ && !overscroll_effect_ && |
| + content_view_core_->GetWindowAndroid()->GetCompositor()) |
| overscroll_effect_ = CreateOverscrollEffect(content_view_core_); |
| } |
| @@ -1656,10 +1656,18 @@ void RenderWidgetHostViewAndroid::OnCompositingDidCommit() { |
| RunAckCallbacks(); |
| } |
| + |
| +void RenderWidgetHostViewAndroid::OnAttachCompositor() { |
|
no sievers
2014/08/25 21:48:52
I just realized that these callbacks are a bit fla
|
| + DCHECK(content_view_core_); |
| + if (overscroll_effect_enabled_) |
| + overscroll_effect_ = CreateOverscrollEffect(content_view_core_); |
| +} |
| + |
| void RenderWidgetHostViewAndroid::OnDetachCompositor() { |
| DCHECK(content_view_core_); |
| DCHECK(!using_synchronous_compositor_); |
| RunAckCallbacks(); |
| + overscroll_effect_.reset(); |
| } |
| void RenderWidgetHostViewAndroid::OnVSync(base::TimeTicks frame_time, |