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

Unified Diff: ui/android/delegated_frame_host_android.cc

Issue 2612083002: DirectCompositorFrameSink Uses CompositorFrameSinkSupport (Closed)
Patch Set: Restored DelegatedFrameHostAndroid::RegisterFrameSinkHierarchy() and UnregisterFrameSinkHierarchy()… 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: ui/android/delegated_frame_host_android.cc
diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc
index 88cc36ae52716271d05a483843965064b1711c37..b3fd8a744db2ab9b42790e5ce32699f2839fe60e 100644
--- a/ui/android/delegated_frame_host_android.cc
+++ b/ui/android/delegated_frame_host_android.cc
@@ -15,6 +15,7 @@
#include "cc/surfaces/surface_id.h"
#include "cc/surfaces/surface_id_allocator.h"
#include "cc/surfaces/surface_manager.h"
+#include "content/browser/renderer_host/compositor_impl_android.h"
#include "ui/android/context_provider_factory.h"
#include "ui/android/view_android.h"
#include "ui/android/window_android_compositor.h"
@@ -78,7 +79,7 @@ DelegatedFrameHostAndroid::DelegatedFrameHostAndroid(
DelegatedFrameHostAndroid::~DelegatedFrameHostAndroid() {
DestroyDelegatedContent();
surface_factory_.reset();
- UnregisterFrameSinkHierarchy();
+ DetachFromCompositor();
surface_manager_->InvalidateFrameSinkId(frame_sink_id_);
background_layer_->RemoveFromParent();
}
@@ -203,22 +204,21 @@ void DelegatedFrameHostAndroid::UpdateContainerSizeinDIP(
UpdateBackgroundLayer();
}
-void DelegatedFrameHostAndroid::RegisterFrameSinkHierarchy(
- const cc::FrameSinkId& parent_id) {
- if (registered_parent_frame_sink_id_.is_valid())
- UnregisterFrameSinkHierarchy();
- registered_parent_frame_sink_id_ = parent_id;
+void DelegatedFrameHostAndroid::AttachToCompositor(
+ content::CompositorImpl* compositor) {
+ if (parent_compositor_impl_)
+ DetachFromCompositor();
surface_manager_->RegisterSurfaceFactoryClient(frame_sink_id_, this);
- surface_manager_->RegisterFrameSinkHierarchy(parent_id, frame_sink_id_);
+ compositor->AddChildFrameSink(frame_sink_id_);
+ parent_compositor_impl_ = compositor;
}
-void DelegatedFrameHostAndroid::UnregisterFrameSinkHierarchy() {
- if (!registered_parent_frame_sink_id_.is_valid())
+void DelegatedFrameHostAndroid::DetachFromCompositor() {
+ if (!parent_compositor_impl_)
return;
surface_manager_->UnregisterSurfaceFactoryClient(frame_sink_id_);
- surface_manager_->UnregisterFrameSinkHierarchy(
- registered_parent_frame_sink_id_, frame_sink_id_);
- registered_parent_frame_sink_id_ = cc::FrameSinkId();
+ parent_compositor_impl_->RemoveChildFrameSink(frame_sink_id_);
+ parent_compositor_impl_ = nullptr;
}
void DelegatedFrameHostAndroid::ReturnResources(

Powered by Google App Engine
This is Rietveld 408576698