| Index: cc/surfaces/direct_compositor_frame_sink.cc
|
| diff --git a/cc/surfaces/direct_compositor_frame_sink.cc b/cc/surfaces/direct_compositor_frame_sink.cc
|
| index b504ab1539ea12530f910a0f58d37c0719386b27..1633fb47a6fc8014ca03e4b45a63fbb3fe96e130 100644
|
| --- a/cc/surfaces/direct_compositor_frame_sink.cc
|
| +++ b/cc/surfaces/direct_compositor_frame_sink.cc
|
| @@ -82,8 +82,6 @@ void DirectCompositorFrameSink::DetachFromClient() {
|
| // Unregister the SurfaceFactoryClient here instead of the dtor so that only
|
| // one client is alive for this namespace at any given time.
|
| surface_manager_->UnregisterSurfaceFactoryClient(frame_sink_id_);
|
| - if (!delegated_local_frame_id_.is_null())
|
| - factory_.Destroy(delegated_local_frame_id_);
|
|
|
| CompositorFrameSink::DetachFromClient();
|
| }
|
| @@ -91,11 +89,7 @@ void DirectCompositorFrameSink::DetachFromClient() {
|
| void DirectCompositorFrameSink::SubmitCompositorFrame(CompositorFrame frame) {
|
| gfx::Size frame_size = frame.render_pass_list.back()->output_rect.size();
|
| if (frame_size.IsEmpty() || frame_size != last_swap_frame_size_) {
|
| - if (!delegated_local_frame_id_.is_null()) {
|
| - factory_.Destroy(delegated_local_frame_id_);
|
| - }
|
| delegated_local_frame_id_ = surface_id_allocator_.GenerateId();
|
| - factory_.Create(delegated_local_frame_id_);
|
| last_swap_frame_size_ = frame_size;
|
| }
|
| display_->SetSurfaceId(SurfaceId(frame_sink_id_, delegated_local_frame_id_),
|
| @@ -144,7 +138,8 @@ void DirectCompositorFrameSink::DisplayDidDrawAndSwap() {
|
| }
|
|
|
| void DirectCompositorFrameSink::DidDrawCallback() {
|
| - client_->DidReceiveCompositorFrameAck();
|
| + if (client_)
|
| + client_->DidReceiveCompositorFrameAck();
|
| }
|
|
|
| } // namespace cc
|
|
|