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 9505792fd0c14a225865dafd7ca08cd099daf730..9320a19ed061c0407122b281b35e1b58b658653a 100644 |
--- a/content/browser/renderer_host/delegated_frame_host.cc |
+++ b/content/browser/renderer_host/delegated_frame_host.cc |
@@ -396,8 +396,7 @@ void DelegatedFrameHost::AttemptFrameSubscriberCapture( |
if (!request_copy_of_output_callback_for_testing_.is_null()) |
request_copy_of_output_callback_for_testing_.Run(std::move(request)); |
else |
- surface_factory_->RequestCopyOfSurface(local_frame_id_, |
- std::move(request)); |
+ surface_factory_->RequestCopyOfSurface(std::move(request)); |
} else { |
request->set_area(gfx::Rect(current_frame_size_in_dip_)); |
RequestCopyOfOutput(std::move(request)); |
@@ -478,10 +477,10 @@ void DelegatedFrameHost::SwapDelegatedFrame(uint32_t compositor_frame_sink_id, |
cc::SurfaceManager* manager = factory->GetSurfaceManager(); |
if (!local_frame_id_.is_valid() || frame_size != current_surface_size_ || |
frame_size_in_dip != current_frame_size_in_dip_) { |
- if (local_frame_id_.is_valid()) |
- surface_factory_->Destroy(local_frame_id_); |
local_frame_id_ = id_allocator_->GenerateId(); |
- surface_factory_->Create(local_frame_id_); |
+ surface_factory_->SubmitCompositorFrame( |
Fady Samuel
2016/11/21 21:00:16
Please don't land this. This is not the correct fi
|
+ local_frame_id_, cc::CompositorFrame(), |
+ cc::SurfaceFactory::DrawCallback()); |
// manager must outlive compositors using it. |
client_->DelegatedFrameHostGetLayer()->SetShowSurface( |
cc::SurfaceId(frame_sink_id_, local_frame_id_), |
@@ -593,7 +592,7 @@ void DelegatedFrameHost::SetBeginFrameSource( |
void DelegatedFrameHost::EvictDelegatedFrame() { |
client_->DelegatedFrameHostGetLayer()->SetShowSolidColorContent(); |
if (local_frame_id_.is_valid()) { |
- surface_factory_->Destroy(local_frame_id_); |
+ surface_factory_->EvictSurface(); |
local_frame_id_ = cc::LocalFrameId(); |
} |
delegated_frame_evictor_->DiscardedFrame(); |
@@ -827,9 +826,7 @@ DelegatedFrameHost::~DelegatedFrameHost() { |
DCHECK(!compositor_); |
ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
factory->GetContextFactory()->RemoveObserver(this); |
- |
- if (local_frame_id_.is_valid()) |
- surface_factory_->Destroy(local_frame_id_); |
+ surface_factory_->EvictSurface(); |
factory->GetSurfaceManager()->UnregisterSurfaceFactoryClient(frame_sink_id_); |
factory->GetSurfaceManager()->InvalidateFrameSinkId(frame_sink_id_); |