| 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)
|
|
|