Index: content/browser/android/synchronous_compositor_observer.h |
diff --git a/content/browser/android/synchronous_compositor_observer.h b/content/browser/android/synchronous_compositor_observer.h |
index 864df1645be9736343bd3e066d95edf867f86073..4b275f49ba798697b5946aac7f99e348388999e8 100644 |
--- a/content/browser/android/synchronous_compositor_observer.h |
+++ b/content/browser/android/synchronous_compositor_observer.h |
@@ -8,6 +8,8 @@ |
#include <vector> |
#include "base/macros.h" |
+#include "content/public/browser/android/synchronous_compositor.h" |
+#include "content/public/browser/browser_message_filter.h" |
#include "content/public/browser/render_process_host_observer.h" |
#include "ui/android/window_android_observer.h" |
@@ -22,8 +24,10 @@ class SynchronousCompositorHost; |
// SynchronousCompositor class that's tied to the lifetime of a |
// RenderProcessHost. Responsible for its own lifetime. |
class SynchronousCompositorObserver : public RenderProcessHostObserver, |
- public ui::WindowAndroidObserver { |
+ public ui::WindowAndroidObserver, |
+ public BrowserMessageFilter { |
public: |
+ SynchronousCompositorObserver(); |
static SynchronousCompositorObserver* GetOrCreateFor(int process_id); |
// RenderProcessHostObserver overrides. |
@@ -42,10 +46,24 @@ class SynchronousCompositorObserver : public RenderProcessHostObserver, |
void SyncStateAfterVSync(ui::WindowAndroid* window_android, |
SynchronousCompositorHost* compositor_host); |
- private: |
+ // BrowserMessageFilter overrides. |
+ bool OnMessageReceived(const IPC::Message& message) override; |
+ |
+ void SetFrameFuture( |
+ const int routing_id, |
+ const scoped_refptr<content::SynchronousCompositor::FrameFuture>& |
+ frame_future); |
+ |
explicit SynchronousCompositorObserver(int process_id); |
+ |
+ private: |
~SynchronousCompositorObserver() override; |
+ bool ReceiveFrame(const IPC::Message& message); |
+ |
+ std::map<int, scoped_refptr<content::SynchronousCompositor::FrameFuture>> |
+ future_map_; |
+ |
RenderProcessHost* const render_process_host_; |
// For synchronizing renderer state after a vsync. |