Index: content/browser/renderer_host/delegated_frame_host.cc |
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc |
index 169842d84f817154c2bd9c415ddb9e02468891d2..58fbc2f80e54f507fa6bc678b4d811c6990f4689 100644 |
--- a/content/browser/renderer_host/delegated_frame_host.cc |
+++ b/content/browser/renderer_host/delegated_frame_host.cc |
@@ -63,8 +63,10 @@ void RequireCallback(cc::SurfaceManager* manager, |
//////////////////////////////////////////////////////////////////////////////// |
// DelegatedFrameHost |
-DelegatedFrameHost::DelegatedFrameHost(DelegatedFrameHostClient* client) |
- : client_(client), |
+DelegatedFrameHost::DelegatedFrameHost(const cc::FrameSinkId& frame_sink_id, |
+ DelegatedFrameHostClient* client) |
+ : frame_sink_id_(frame_sink_id), |
+ client_(client), |
compositor_(nullptr), |
tick_clock_(new base::DefaultTickClock()), |
last_compositor_frame_sink_id_(0), |
@@ -76,12 +78,10 @@ DelegatedFrameHost::DelegatedFrameHost(DelegatedFrameHostClient* client) |
delegated_frame_evictor_(new DelegatedFrameEvictor(this)) { |
ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
factory->GetContextFactory()->AddObserver(this); |
- id_allocator_.reset(new cc::SurfaceIdAllocator( |
- factory->GetContextFactory()->AllocateFrameSinkId())); |
- factory->GetSurfaceManager()->RegisterFrameSinkId( |
- id_allocator_->frame_sink_id()); |
- factory->GetSurfaceManager()->RegisterSurfaceFactoryClient( |
- id_allocator_->frame_sink_id(), this); |
+ id_allocator_.reset(new cc::SurfaceIdAllocator(frame_sink_id_)); |
+ factory->GetSurfaceManager()->RegisterFrameSinkId(frame_sink_id_); |
+ factory->GetSurfaceManager()->RegisterSurfaceFactoryClient(frame_sink_id_, |
+ this); |
} |
void DelegatedFrameHost::WasShown(const ui::LatencyInfo& latency_info) { |
@@ -208,7 +208,7 @@ void DelegatedFrameHost::EndFrameSubscription() { |
} |
cc::FrameSinkId DelegatedFrameHost::GetFrameSinkId() { |
- return id_allocator_->frame_sink_id(); |
+ return frame_sink_id_; |
} |
cc::SurfaceId DelegatedFrameHost::SurfaceIdAtPoint( |
@@ -471,7 +471,8 @@ void DelegatedFrameHost::SwapDelegatedFrame(uint32_t compositor_frame_sink_id, |
ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
cc::SurfaceManager* manager = factory->GetSurfaceManager(); |
if (!surface_factory_) { |
- surface_factory_ = base::MakeUnique<cc::SurfaceFactory>(manager, this); |
+ surface_factory_ = |
+ base::MakeUnique<cc::SurfaceFactory>(frame_sink_id_, manager, this); |
} |
if (surface_id_.is_null() || frame_size != current_surface_size_ || |
frame_size_in_dip != current_frame_size_in_dip_) { |
@@ -830,10 +831,8 @@ DelegatedFrameHost::~DelegatedFrameHost() { |
if (!surface_id_.is_null()) |
surface_factory_->Destroy(surface_id_); |
- factory->GetSurfaceManager()->UnregisterSurfaceFactoryClient( |
- id_allocator_->frame_sink_id()); |
- factory->GetSurfaceManager()->InvalidateFrameSinkId( |
- id_allocator_->frame_sink_id()); |
+ factory->GetSurfaceManager()->UnregisterSurfaceFactoryClient(frame_sink_id_); |
+ factory->GetSurfaceManager()->InvalidateFrameSinkId(frame_sink_id_); |
DCHECK(!vsync_manager_.get()); |
} |
@@ -848,7 +847,7 @@ void DelegatedFrameHost::SetCompositor(ui::Compositor* compositor) { |
vsync_manager_ = compositor_->vsync_manager(); |
vsync_manager_->AddObserver(this); |
- compositor_->AddFrameSink(id_allocator_->frame_sink_id()); |
+ compositor_->AddFrameSink(frame_sink_id_); |
} |
void DelegatedFrameHost::ResetCompositor() { |
@@ -865,7 +864,7 @@ void DelegatedFrameHost::ResetCompositor() { |
vsync_manager_ = nullptr; |
} |
- compositor_->RemoveFrameSink(id_allocator_->frame_sink_id()); |
+ compositor_->RemoveFrameSink(frame_sink_id_); |
compositor_ = nullptr; |
} |