Index: content/renderer/gpu/compositor_external_begin_frame_source.cc |
diff --git a/content/renderer/gpu/compositor_external_begin_frame_source.cc b/content/renderer/gpu/compositor_external_begin_frame_source.cc |
index aa4a456ac29a56b6e5ce773be7bd196df9e59812..32da19acf6fcd155aa2e127bdf25ed48b2ef856b 100644 |
--- a/content/renderer/gpu/compositor_external_begin_frame_source.cc |
+++ b/content/renderer/gpu/compositor_external_begin_frame_source.cc |
@@ -40,6 +40,20 @@ void CompositorExternalBeginFrameSource::OnNeedsBeginFramesChanged( |
Send(new ViewHostMsg_SetNeedsBeginFrames(routing_id_, needs_begin_frames)); |
} |
+void CompositorExternalBeginFrameSource::DidFinishFrame( |
+ cc::BeginFrameObserver* obs) { |
+ DCHECK(CalledOnValidThread()); |
+ SetClientReady(); |
enne (OOO)
2016/04/14 23:02:26
Why do you need to call this? This should have alr
|
+ // Send a MISSED begin frame if necessary. |
enne (OOO)
2016/04/14 23:02:26
This looks like a pretty common pattern. Is there
|
+ if (missed_begin_frame_args_.IsValid()) { |
+ cc::BeginFrameArgs last_args = obs->LastUsedBeginFrameArgs(); |
+ if (!last_args.IsValid() || |
+ (missed_begin_frame_args_.frame_time > last_args.frame_time)) { |
+ obs->OnBeginFrame(missed_begin_frame_args_); |
+ } |
+ } |
+} |
+ |
void CompositorExternalBeginFrameSource::AddObserver( |
cc::BeginFrameObserver* obs) { |
DCHECK(CalledOnValidThread()); |