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..2d2803a01f54638a66491be22d19de12bd106e64 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 (compositor) |
+ compositor->RemoveChildFrameSink(delegated_frame_host_->GetFrameSinkId()); |
DCHECK(!begin_frame_source_); |
} |
@@ -1901,12 +1901,6 @@ void RenderWidgetHostViewAndroid::OnDetachedFromWindow() { |
void RenderWidgetHostViewAndroid::OnAttachCompositor() { |
DCHECK(content_view_core_); |
CreateOverscrollControllerIfPossible(); |
- if (observing_root_window_) { |
- ui::WindowAndroidCompositor* compositor = |
- view_.GetWindowAndroid()->GetCompositor(); |
- delegated_frame_host_->RegisterFrameSinkHierarchy( |
- compositor->GetFrameSinkId()); |
- } |
} |
void RenderWidgetHostViewAndroid::OnDetachCompositor() { |
@@ -1914,7 +1908,6 @@ void RenderWidgetHostViewAndroid::OnDetachCompositor() { |
DCHECK(using_browser_compositor_); |
RunAckCallbacks(); |
overscroll_controller_.reset(); |
- delegated_frame_host_->UnregisterFrameSinkHierarchy(); |
} |
void RenderWidgetHostViewAndroid::OnBeginFrame(const cc::BeginFrameArgs& args) { |