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

Unified Diff: ui/android/delegated_frame_host_android.cc

Issue 2383373002: Reduce SurfaceIdAllocator usage and tie SurfaceFactory to a single FrameSinkId (Closed)
Patch Set: Rebased Created 4 years, 2 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
« no previous file with comments | « ui/android/delegated_frame_host_android.h ('k') | ui/compositor/compositor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 08bcd7da26a20b5ce94e06485fec181efd575c93..953f6b673029f6dd6f6b121cdbb9755c81088e31 100644
--- a/ui/android/delegated_frame_host_android.cc
+++ b/ui/android/delegated_frame_host_android.cc
@@ -73,7 +73,9 @@ DelegatedFrameHostAndroid::DelegatedFrameHostAndroid(
ui::ViewAndroid* view,
SkColor background_color,
ReturnResourcesCallback return_resources_callback)
- : view_(view),
+ : frame_sink_id_(
+ ui::ContextProviderFactory::GetInstance()->AllocateFrameSinkId()),
+ view_(view),
return_resources_callback_(return_resources_callback),
background_layer_(cc::SolidColorLayer::Create()) {
DCHECK(view_);
@@ -81,9 +83,8 @@ DelegatedFrameHostAndroid::DelegatedFrameHostAndroid(
surface_manager_ =
ui::ContextProviderFactory::GetInstance()->GetSurfaceManager();
- surface_id_allocator_.reset(new cc::SurfaceIdAllocator(
- ui::ContextProviderFactory::GetInstance()->AllocateFrameSinkId()));
- surface_manager_->RegisterFrameSinkId(surface_id_allocator_->frame_sink_id());
+ surface_id_allocator_.reset(new cc::SurfaceIdAllocator(frame_sink_id_));
+ surface_manager_->RegisterFrameSinkId(frame_sink_id_);
background_layer_->SetBackgroundColor(background_color);
view_->GetLayer()->AddChild(background_layer_);
@@ -94,8 +95,7 @@ DelegatedFrameHostAndroid::~DelegatedFrameHostAndroid() {
DestroyDelegatedContent();
surface_factory_.reset();
UnregisterFrameSinkHierarchy();
- surface_manager_->InvalidateFrameSinkId(
- surface_id_allocator_->frame_sink_id());
+ surface_manager_->InvalidateFrameSinkId(frame_sink_id_);
background_layer_->RemoveFromParent();
}
@@ -107,8 +107,8 @@ void DelegatedFrameHostAndroid::SubmitCompositorFrame(
cc::CompositorFrame frame,
cc::SurfaceFactory::DrawCallback draw_callback) {
if (!surface_factory_) {
- surface_factory_ =
- base::WrapUnique(new cc::SurfaceFactory(surface_manager_, this));
+ surface_factory_ = base::WrapUnique(
+ new cc::SurfaceFactory(frame_sink_id_, surface_manager_, this));
}
cc::RenderPass* root_pass =
@@ -160,7 +160,7 @@ void DelegatedFrameHostAndroid::SubmitCompositorFrame(
}
cc::FrameSinkId DelegatedFrameHostAndroid::GetFrameSinkId() const {
- return surface_id_allocator_->frame_sink_id();
+ return frame_sink_id_;
}
void DelegatedFrameHostAndroid::RequestCopyOfSurface(
@@ -227,19 +227,16 @@ void DelegatedFrameHostAndroid::RegisterFrameSinkHierarchy(
if (!registered_parent_frame_sink_id_.is_null())
UnregisterFrameSinkHierarchy();
registered_parent_frame_sink_id_ = parent_id;
- surface_manager_->RegisterSurfaceFactoryClient(
- surface_id_allocator_->frame_sink_id(), this);
- surface_manager_->RegisterFrameSinkHierarchy(
- parent_id, surface_id_allocator_->frame_sink_id());
+ surface_manager_->RegisterSurfaceFactoryClient(frame_sink_id_, this);
+ surface_manager_->RegisterFrameSinkHierarchy(parent_id, frame_sink_id_);
}
void DelegatedFrameHostAndroid::UnregisterFrameSinkHierarchy() {
if (registered_parent_frame_sink_id_.is_null())
return;
- surface_manager_->UnregisterSurfaceFactoryClient(
- surface_id_allocator_->frame_sink_id());
+ surface_manager_->UnregisterSurfaceFactoryClient(frame_sink_id_);
surface_manager_->UnregisterFrameSinkHierarchy(
- registered_parent_frame_sink_id_, surface_id_allocator_->frame_sink_id());
+ registered_parent_frame_sink_id_, frame_sink_id_);
registered_parent_frame_sink_id_ = cc::FrameSinkId();
}
« no previous file with comments | « ui/android/delegated_frame_host_android.h ('k') | ui/compositor/compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698