Index: content/renderer/gpu/compositor_external_begin_frame_source.h |
diff --git a/content/renderer/gpu/compositor_external_begin_frame_source.h b/content/renderer/gpu/compositor_external_begin_frame_source.h |
index 116529a229fe9241bbc6922f592e67aa670a8653..8a965772f36ddd4493fa854e7e66ba116c60aa36 100644 |
--- a/content/renderer/gpu/compositor_external_begin_frame_source.h |
+++ b/content/renderer/gpu/compositor_external_begin_frame_source.h |
@@ -5,6 +5,8 @@ |
#ifndef CONTENT_RENDERER_GPU_COMPOSITOR_EXTERNAL_BEGIN_FRAME_SOURCE_H_ |
#define CONTENT_RENDERER_GPU_COMPOSITOR_EXTERNAL_BEGIN_FRAME_SOURCE_H_ |
+#include <unordered_set> |
+ |
#include "base/compiler_specific.h" |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
@@ -21,7 +23,7 @@ namespace content { |
// This class can be created only on the main thread, but then becomes pinned |
// to a fixed thread where cc::Scheduler is running. |
class CompositorExternalBeginFrameSource |
- : public cc::BeginFrameSourceBase, |
+ : public cc::BeginFrameSource, |
public NON_EXPORTED_BASE(base::NonThreadSafe) { |
public: |
explicit CompositorExternalBeginFrameSource( |
@@ -30,9 +32,11 @@ class CompositorExternalBeginFrameSource |
int routing_id); |
~CompositorExternalBeginFrameSource() override; |
- // cc::BeginFrameSourceBase implementation. |
+ // cc::BeginFrameSource implementation. |
void AddObserver(cc::BeginFrameObserver* obs) override; |
- void OnNeedsBeginFramesChanged(bool needs_begin_frames) override; |
+ void RemoveObserver(cc::BeginFrameObserver* obs) override; |
+ void DidFinishFrame(cc::BeginFrameObserver* obs, |
+ size_t remaining_frames) override {} |
private: |
class CompositorExternalBeginFrameSourceProxy |
@@ -61,6 +65,7 @@ class CompositorExternalBeginFrameSource |
void SetClientReady(); |
void OnMessageReceived(const IPC::Message& message); |
+ void OnSetBeginFrameSourcePaused(bool paused); |
void OnBeginFrame(const cc::BeginFrameArgs& args); |
bool Send(IPC::Message* message); |
@@ -71,6 +76,8 @@ class CompositorExternalBeginFrameSource |
int routing_id_; |
CompositorForwardingMessageFilter::Handler begin_frame_source_filter_handler_; |
cc::BeginFrameArgs missed_begin_frame_args_; |
+ std::unordered_set<cc::BeginFrameObserver*> observers_; |
+ bool paused_ = false; |
DISALLOW_COPY_AND_ASSIGN(CompositorExternalBeginFrameSource); |
}; |