Index: content/browser/renderer_host/context_provider_factory_impl_android.h |
diff --git a/content/browser/renderer_host/context_provider_factory_impl_android.h b/content/browser/renderer_host/context_provider_factory_impl_android.h |
index c0fe933a6ba41c9c7cef080fb0282a69c426a167..7abc578a8304d51e66295698bb903caee567b035 100644 |
--- a/content/browser/renderer_host/context_provider_factory_impl_android.h |
+++ b/content/browser/renderer_host/context_provider_factory_impl_android.h |
@@ -5,7 +5,7 @@ |
#ifndef CONTENT_BROWSER_RENDERER_HOST_CONTEXT_PROVIDER_FACTORY_IMPL_ANDROID_H_ |
#define CONTENT_BROWSER_RENDERER_HOST_CONTEXT_PROVIDER_FACTORY_IMPL_ANDROID_H_ |
-#include <list> |
+#include <queue> |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
@@ -42,28 +42,26 @@ class CONTENT_EXPORT ContextProviderFactoryImpl |
~ContextProviderFactoryImpl() override; |
- // The callback may be triggered synchronously, if the Gpu Channel is already |
- // initialized. In case the context creation fails, a null context is passed |
- // with the failure reason. |
- void CreateDisplayContextProvider( |
+ scoped_refptr<cc::ContextProvider> CreateDisplayContextProvider( |
gpu::SurfaceHandle surface_handle, |
gpu::SharedMemoryLimits shared_memory_limits, |
gpu::gles2::ContextCreationAttribHelper attributes, |
bool support_locking, |
bool automatic_flushes, |
- ContextProviderCallback result_callback); |
+ scoped_refptr<gpu::GpuChannelHost> gpu_channel_host); |
// ContextProviderFactory implementation. |
scoped_refptr<cc::VulkanContextProvider> GetSharedVulkanContextProvider() |
override; |
- void CreateOffscreenContextProvider( |
+ void RequestGpuChannelHost(GpuChannelHostCallback callback) override; |
+ scoped_refptr<cc::ContextProvider> CreateOffscreenContextProvider( |
ContextType context_type, |
gpu::SharedMemoryLimits shared_memory_limits, |
gpu::gles2::ContextCreationAttribHelper attributes, |
bool support_locking, |
bool automatic_flushes, |
cc::ContextProvider* shared_context_provider, |
- ContextProviderCallback result_callback) override; |
+ scoped_refptr<gpu::GpuChannelHost> gpu_channel_host) override; |
cc::SurfaceManager* GetSurfaceManager() override; |
uint32_t AllocateSurfaceClientId() override; |
cc::SharedBitmapManager* GetSharedBitmapManager() override; |
@@ -73,7 +71,7 @@ class CONTENT_EXPORT ContextProviderFactoryImpl |
ContextProviderFactoryImpl( |
gpu::GpuChannelEstablishFactory* gpu_channel_factory); |
- void CreateContextProviderInternal( |
+ scoped_refptr<cc::ContextProvider> CreateContextProviderInternal( |
command_buffer_metrics::ContextType context_type, |
gpu::SurfaceHandle surface_handle, |
gpu::SharedMemoryLimits shared_memory_limits, |
@@ -81,22 +79,7 @@ class CONTENT_EXPORT ContextProviderFactoryImpl |
bool support_locking, |
bool automatic_flushes, |
cc::ContextProvider* shared_context_provider, |
- ContextProviderCallback result_callback); |
- |
- struct ContextProvidersRequest { |
- ContextProvidersRequest(); |
- ContextProvidersRequest(const ContextProvidersRequest& other); |
- ~ContextProvidersRequest(); |
- |
- command_buffer_metrics::ContextType context_type; |
- gpu::SurfaceHandle surface_handle; |
- gpu::SharedMemoryLimits shared_memory_limits; |
- gpu::gles2::ContextCreationAttribHelper attributes; |
- bool support_locking; |
- bool automatic_flushes; |
- cc::ContextProvider* shared_context_provider; |
- ContextProviderCallback result_callback; |
- }; |
+ scoped_refptr<gpu::GpuChannelHost> gpu_channel_host); |
// Will return nullptr if the Gpu channel has not been established. |
void EstablishGpuChannel(); |
@@ -105,11 +88,11 @@ class CONTENT_EXPORT ContextProviderFactoryImpl |
void HandlePendingRequests( |
scoped_refptr<gpu::GpuChannelHost> gpu_channel_host, |
- ContextCreationResult result); |
+ GpuChannelHostResult result); |
gpu::GpuChannelEstablishFactory* gpu_channel_factory_; |
- std::list<ContextProvidersRequest> context_provider_requests_; |
+ std::queue<GpuChannelHostCallback> gpu_channel_requests_; |
scoped_refptr<ContextProviderCommandBuffer> shared_worker_context_provider_; |