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 c391a17e971bb311710dfb1f5a74bdf3407620dd..ed6effdeeeafcfdf98a4796f739ad3ff7bf45a3c 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -1490,12 +1490,10 @@ void RenderWidgetHostViewAndroid::StartObservingRootWindow() { |
| if (!using_browser_compositor_) |
| SetBeginFrameSource(view_.GetWindowAndroid()->GetBeginFrameSource()); |
| - ui::WindowAndroidCompositor* compositor = |
| - view_.GetWindowAndroid()->GetCompositor(); |
| - if (compositor) { |
| - delegated_frame_host_->RegisterFrameSinkHierarchy( |
| - compositor->GetFrameSinkId()); |
| - } |
| + CompositorImpl* compositor = |
| + static_cast<CompositorImpl*>(view_.GetWindowAndroid()->GetCompositor()); |
| + if (compositor) |
| + compositor->AddChildFrameSink(delegated_frame_host_->GetFrameSinkId()); |
| } |
| void RenderWidgetHostViewAndroid::StopObservingRootWindow() { |
| @@ -1518,8 +1516,10 @@ void RenderWidgetHostViewAndroid::StopObservingRootWindow() { |
| SetBeginFrameSource(nullptr); |
| // If the DFH has already been destroyed, it will have cleaned itself up. |
| // This happens in some WebView cases. |
| - if (delegated_frame_host_) |
| - delegated_frame_host_->UnregisterFrameSinkHierarchy(); |
| + CompositorImpl* compositor = |
| + static_cast<CompositorImpl*>(view_.GetWindowAndroid()->GetCompositor()); |
| + if (delegated_frame_host_ && compositor) |
|
boliu
2017/01/30 21:13:51
delegated_frame_host_ check is redundant if you ch
Alex Z.
2017/01/30 21:32:18
Done.
|
| + compositor->RemoveChildFrameSink(delegated_frame_host_->GetFrameSinkId()); |
| DCHECK(!begin_frame_source_); |
| } |
| @@ -1902,10 +1902,9 @@ void RenderWidgetHostViewAndroid::OnAttachCompositor() { |
| DCHECK(content_view_core_); |
| CreateOverscrollControllerIfPossible(); |
| if (observing_root_window_) { |
| - ui::WindowAndroidCompositor* compositor = |
| - view_.GetWindowAndroid()->GetCompositor(); |
| - delegated_frame_host_->RegisterFrameSinkHierarchy( |
| - compositor->GetFrameSinkId()); |
| + CompositorImpl* compositor = |
| + static_cast<CompositorImpl*>(view_.GetWindowAndroid()->GetCompositor()); |
| + compositor->AddChildFrameSink(delegated_frame_host_->GetFrameSinkId()); |
| } |
| } |
| @@ -1914,7 +1913,9 @@ void RenderWidgetHostViewAndroid::OnDetachCompositor() { |
| DCHECK(using_browser_compositor_); |
| RunAckCallbacks(); |
| overscroll_controller_.reset(); |
| - delegated_frame_host_->UnregisterFrameSinkHierarchy(); |
| + CompositorImpl* compositor = |
| + static_cast<CompositorImpl*>(view_.GetWindowAndroid()->GetCompositor()); |
| + compositor->RemoveChildFrameSink(delegated_frame_host_->GetFrameSinkId()); |
| } |
| void RenderWidgetHostViewAndroid::OnBeginFrame(const cc::BeginFrameArgs& args) { |