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(); |
} |