Index: content/browser/compositor/gpu_process_transport_factory.h |
diff --git a/content/browser/compositor/gpu_process_transport_factory.h b/content/browser/compositor/gpu_process_transport_factory.h |
index 4024c07bde11ce9aeb8fb7773e345053eb310627..b538725354c6ba806b6cc2874c871c820791b9b2 100644 |
--- a/content/browser/compositor/gpu_process_transport_factory.h |
+++ b/content/browser/compositor/gpu_process_transport_factory.h |
@@ -16,8 +16,10 @@ |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
#include "build/build_config.h" |
+#include "cc/ipc/display_compositor.mojom.h" |
#include "content/browser/compositor/image_transport_factory.h" |
#include "gpu/ipc/client/gpu_channel_host.h" |
+#include "mojo/public/cpp/bindings/binding.h" |
#include "ui/compositor/compositor.h" |
namespace cc { |
@@ -36,7 +38,8 @@ class OutputDeviceBacking; |
class GpuProcessTransportFactory : public ui::ContextFactory, |
public ui::ContextFactoryPrivate, |
- public ImageTransportFactory { |
+ public ImageTransportFactory, |
+ public cc::mojom::DisplayCompositorClient { |
public: |
GpuProcessTransportFactory(); |
@@ -76,6 +79,7 @@ class GpuProcessTransportFactory : public ui::ContextFactory, |
ui::ContextFactory* GetContextFactory() override; |
ui::ContextFactoryPrivate* GetContextFactoryPrivate() override; |
cc::SurfaceManager* GetSurfaceManager() override; |
+ display_compositor::DisplayCompositor* GetDisplayCompositor() override; |
display_compositor::GLHelper* GetGLHelper() override; |
void SetGpuChannelEstablishFactory( |
gpu::GpuChannelEstablishFactory* factory) override; |
@@ -84,6 +88,9 @@ class GpuProcessTransportFactory : public ui::ContextFactory, |
bool suspended) override; |
#endif |
+ // cc::mojom::DisplayCompositorClient: |
+ void OnSurfaceCreated(const cc::SurfaceInfo& surface_info) override; |
+ |
private: |
struct PerCompositorData; |
@@ -102,7 +109,11 @@ class GpuProcessTransportFactory : public ui::ContextFactory, |
scoped_refptr<cc::VulkanInProcessContextProvider> |
SharedVulkanContextProvider(); |
- std::unique_ptr<cc::SurfaceManager> surface_manager_; |
+ mojo::Binding<cc::mojom::DisplayCompositorClient> |
+ display_compositor_client_binding_; |
+ cc::mojom::DisplayCompositorPtr display_compositor_ptr_; |
+ |
+ std::unique_ptr<display_compositor::DisplayCompositor> display_compositor_; |
uint32_t next_sink_id_ = 1u; |
#if defined(OS_WIN) |