| Index: services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
 | 
| diff --git a/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h b/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
 | 
| index 2ec9e23076498f09891728768a5af25fb04d4b1f..1d8e0986db82ef8ee396b41d1b683f9a975d36db 100644
 | 
| --- a/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
 | 
| +++ b/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
 | 
| @@ -9,17 +9,39 @@
 | 
|  #include <vector>
 | 
|  
 | 
|  #include "base/macros.h"
 | 
| +#include "base/memory/ref_counted.h"
 | 
|  #include "base/memory/weak_ptr.h"
 | 
| +#include "base/threading/thread.h"
 | 
|  #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
 | 
| +#include "services/ui/public/interfaces/gpu_service.mojom.h"
 | 
| +
 | 
| +namespace base {
 | 
| +class WaitableEvent;
 | 
| +}
 | 
| +
 | 
| +namespace service_manager {
 | 
| +class Connector;
 | 
| +}
 | 
|  
 | 
|  namespace ui {
 | 
|  
 | 
| +namespace mojom {
 | 
| +class GpuService;
 | 
| +}
 | 
| +
 | 
|  class MojoGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
 | 
|   public:
 | 
| -  MojoGpuMemoryBufferManager();
 | 
| +  explicit MojoGpuMemoryBufferManager(service_manager::Connector* connector);
 | 
|    ~MojoGpuMemoryBufferManager() override;
 | 
|  
 | 
|   private:
 | 
| +  void InitThread();
 | 
| +  void TearDownThread();
 | 
| +  void AllocateGpuMemoryBufferOnThread(const gfx::Size& size,
 | 
| +                                       gfx::BufferFormat format,
 | 
| +                                       gfx::BufferUsage usage,
 | 
| +                                       gfx::GpuMemoryBufferHandle* handle,
 | 
| +                                       base::WaitableEvent* wait);
 | 
|    void DeletedGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
 | 
|                                const gpu::SyncToken& sync_token);
 | 
|  
 | 
| @@ -37,8 +59,11 @@ class MojoGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
 | 
|        ClientBuffer buffer) override;
 | 
|    void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer,
 | 
|                                 const gpu::SyncToken& sync_token) override;
 | 
| -
 | 
|    int counter_ = 0;
 | 
| +  // TODO(sad): Explore the option of doing this from an existing thread.
 | 
| +  base::Thread thread_;
 | 
| +  mojom::GpuServicePtr gpu_service_;
 | 
| +  std::unique_ptr<service_manager::Connector> connector_;
 | 
|    base::WeakPtrFactory<MojoGpuMemoryBufferManager> weak_ptr_factory_;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(MojoGpuMemoryBufferManager);
 | 
| 
 |