Chromium Code Reviews| Index: third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp |
| diff --git a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp |
| index c4c1429966dd7fb90c0825a49d02a2a6fce45c50..b66f140d552c7c33c5955302b8efdb1d9c54d529 100644 |
| --- a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp |
| +++ b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp |
| @@ -399,12 +399,14 @@ void OffscreenCanvasFrameDispatcherImpl::DispatchFrame( |
| change_size_for_next_commit_ = false; |
| } |
| + compositor_has_pending_frame_ = true; |
| sink_->SubmitCompositorFrame(current_local_surface_id_, std::move(frame)); |
| } |
| void OffscreenCanvasFrameDispatcherImpl::DidReceiveCompositorFrameAck( |
| const cc::ReturnedResourceArray& resources) { |
| ReclaimResources(resources); |
| + compositor_has_pending_frame_ = false; |
| // TODO(fsamuel): Implement this. |
|
Eric Seckler
2017/04/12 19:39:18
Is there more to do here? If so, let's update this
|
| } |
| @@ -419,10 +421,19 @@ void OffscreenCanvasFrameDispatcherImpl::SetNeedsBeginFrame( |
| void OffscreenCanvasFrameDispatcherImpl::OnBeginFrame( |
| const cc::BeginFrameArgs& begin_frame_args) { |
| DCHECK(Client()); |
| + |
| // TODO(eseckler): Set correct |latest_confirmed_sequence_number|. |
| current_begin_frame_ack_ = cc::BeginFrameAck( |
| begin_frame_args.source_id, begin_frame_args.sequence_number, |
| begin_frame_args.sequence_number, false); |
| + |
| + if (compositor_has_pending_frame_ || |
| + (begin_frame_args.type == cc::BeginFrameArgs::MISSED && |
| + base::TimeTicks::Now() > begin_frame_args.deadline)) { |
| + sink_->BeginFrameDidNotSwap(current_begin_frame_ack_); |
| + return; |
| + } |
| + |
| Client()->BeginFrame(); |
| // TODO(eseckler): Tell |m_sink| if we did not draw during the BeginFrame. |
| current_begin_frame_ack_.sequence_number = |