Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1035)

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2612083002: DirectCompositorFrameSink Uses CompositorFrameSinkSupport (Closed)
Patch Set: CompositorImpl::AddChildFrameSink() and CompositorImpl::RemoveChildFrameSink() replace DelegatedFra… Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698