diff options
author | sievers <sievers@chromium.org> | 2014-11-21 13:22:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-21 21:22:43 +0000 |
commit | 96221b776737fb9a534be5b1e293402db4841a73 (patch) | |
tree | be416fbaa4006452aca5aac6deb6d346123e0155 | |
parent | 1c65b081a4eda9f5bed397cc6d4a59ec14f7e8e1 (diff) | |
download | chromium_src-96221b776737fb9a534be5b1e293402db4841a73.zip chromium_src-96221b776737fb9a534be5b1e293402db4841a73.tar.gz chromium_src-96221b776737fb9a534be5b1e293402db4841a73.tar.bz2 |
Android: Avoid blocking UI thread at at startup
GetCompositingSurface() needs the GPU channel id.
It currently creates a context because it creates the
ImageTransportFactory singleton. Make GetChannelID() static instead.
Review URL: https://codereview.chromium.org/741933002
Cr-Commit-Position: refs/heads/master@{#305285}
5 files changed, 7 insertions, 12 deletions
diff --git a/content/browser/renderer_host/image_transport_factory_android.cc b/content/browser/renderer_host/image_transport_factory_android.cc index 41e3156..1ac7b23 100644 --- a/content/browser/renderer_host/image_transport_factory_android.cc +++ b/content/browser/renderer_host/image_transport_factory_android.cc @@ -39,9 +39,6 @@ class CmdBufferImageTransportFactory : public ImageTransportFactoryAndroid { virtual ~CmdBufferImageTransportFactory(); virtual GLHelper* GetGLHelper() override; - virtual uint32 GetChannelID() override { - return BrowserGpuChannelHostFactory::instance()->GetGpuChannelId(); - } private: scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context_; @@ -104,6 +101,11 @@ GLHelper* CmdBufferImageTransportFactory::GetGLHelper() { } // anonymous namespace // static +uint32 ImageTransportFactoryAndroid::GetChannelID() { + return BrowserGpuChannelHostFactory::instance()->GetGpuChannelId(); +} + +// static void ImageTransportFactoryAndroid::InitializeForUnitTests( scoped_ptr<ImageTransportFactoryAndroid> test_factory) { DCHECK(!g_factory); diff --git a/content/browser/renderer_host/image_transport_factory_android.h b/content/browser/renderer_host/image_transport_factory_android.h index 2562381..ea2cd99 100644 --- a/content/browser/renderer_host/image_transport_factory_android.h +++ b/content/browser/renderer_host/image_transport_factory_android.h @@ -42,7 +42,7 @@ class CONTENT_EXPORT ImageTransportFactoryAndroid { static ImageTransportFactoryAndroid* GetInstance(); virtual GLHelper* GetGLHelper() = 0; - virtual uint32 GetChannelID() = 0; + static uint32 GetChannelID(); static void AddObserver(ImageTransportFactoryAndroidObserver* observer); static void RemoveObserver(ImageTransportFactoryAndroidObserver* observer); diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index 52fe3f7..47d3542 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc @@ -1321,8 +1321,7 @@ gfx::GLSurfaceHandle RenderWidgetHostViewAndroid::GetCompositingSurface() { gfx::GLSurfaceHandle handle = gfx::GLSurfaceHandle(gfx::kNullPluginWindow, gfx::NULL_TRANSPORT); if (CompositorImpl::IsInitialized()) { - handle.parent_client_id = - ImageTransportFactoryAndroid::GetInstance()->GetChannelID(); + handle.parent_client_id = ImageTransportFactoryAndroid::GetChannelID(); } return handle; } diff --git a/content/browser/renderer_host/test/no_transport_image_transport_factory_android.cc b/content/browser/renderer_host/test/no_transport_image_transport_factory_android.cc index 23a738e..a0b5f1c71 100644 --- a/content/browser/renderer_host/test/no_transport_image_transport_factory_android.cc +++ b/content/browser/renderer_host/test/no_transport_image_transport_factory_android.cc @@ -29,9 +29,4 @@ GLHelper* NoTransportImageTransportFactoryAndroid::GetGLHelper() { return gl_helper_.get(); } -uint32 NoTransportImageTransportFactoryAndroid::GetChannelID() { - NOTREACHED(); - return 0; -} - } // namespace content diff --git a/content/browser/renderer_host/test/no_transport_image_transport_factory_android.h b/content/browser/renderer_host/test/no_transport_image_transport_factory_android.h index 44a7747..fafaad2 100644 --- a/content/browser/renderer_host/test/no_transport_image_transport_factory_android.h +++ b/content/browser/renderer_host/test/no_transport_image_transport_factory_android.h @@ -28,7 +28,6 @@ class NoTransportImageTransportFactoryAndroid NoTransportImageTransportFactoryAndroid(); virtual ~NoTransportImageTransportFactoryAndroid(); virtual GLHelper* GetGLHelper() override; - virtual uint32 GetChannelID() override; private: scoped_ptr<ui::ContextFactory> context_factory_; |