diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 02:21:58 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 02:21:58 +0000 |
commit | 8cd6c223ca41a6788783db5ab2ea90f774e8c10f (patch) | |
tree | c743c2b47705a8b91836d7955d7eb4a96a919193 /content | |
parent | 1eab4e9e04c773022b3e24f251fa384396d48aa5 (diff) | |
download | chromium_src-8cd6c223ca41a6788783db5ab2ea90f774e8c10f.zip chromium_src-8cd6c223ca41a6788783db5ab2ea90f774e8c10f.tar.gz chromium_src-8cd6c223ca41a6788783db5ab2ea90f774e8c10f.tar.bz2 |
Remove SharedBitmapManager global in ui/compositor
Globals prevent ui::Compositor from being used in multiple threads.
BUG=None
R=jbauman@chromium.org, sky@chromium.org
Review URL: https://codereview.chromium.org/271843002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269153 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
6 files changed, 13 insertions, 18 deletions
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc index 46f1e84..16f600a 100644 --- a/content/browser/compositor/gpu_process_transport_factory.cc +++ b/content/browser/compositor/gpu_process_transport_factory.cc @@ -27,6 +27,7 @@ #include "content/common/gpu/client/gpu_channel_host.h" #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" #include "content/common/gpu/gpu_process_launch_causes.h" +#include "content/common/host_shared_bitmap_manager.h" #include "gpu/GLES2/gl2extchromium.h" #include "gpu/command_buffer/client/gles2_interface.h" #include "gpu/command_buffer/common/mailbox.h" @@ -217,8 +218,8 @@ void GpuProcessTransportFactory::RemoveCompositor(ui::Compositor* compositor) { bool GpuProcessTransportFactory::DoesCreateTestContexts() { return false; } -ui::ContextFactory* GpuProcessTransportFactory::AsContextFactory() { - return this; +cc::SharedBitmapManager* GpuProcessTransportFactory::GetSharedBitmapManager() { + return HostSharedBitmapManager::current(); } gfx::GLSurfaceHandle GpuProcessTransportFactory::GetSharedSurfaceHandle() { diff --git a/content/browser/compositor/gpu_process_transport_factory.h b/content/browser/compositor/gpu_process_transport_factory.h index 77964ae..0bd5c05 100644 --- a/content/browser/compositor/gpu_process_transport_factory.h +++ b/content/browser/compositor/gpu_process_transport_factory.h @@ -46,9 +46,9 @@ class GpuProcessTransportFactory virtual scoped_refptr<cc::ContextProvider> SharedMainThreadContextProvider() OVERRIDE; virtual bool DoesCreateTestContexts() OVERRIDE; + virtual cc::SharedBitmapManager* GetSharedBitmapManager() OVERRIDE; // ImageTransportFactory implementation. - virtual ui::ContextFactory* AsContextFactory() OVERRIDE; virtual gfx::GLSurfaceHandle GetSharedSurfaceHandle() OVERRIDE; virtual GLHelper* GetGLHelper() OVERRIDE; virtual void AddObserver(ImageTransportFactoryObserver* observer) OVERRIDE; diff --git a/content/browser/compositor/image_transport_factory.cc b/content/browser/compositor/image_transport_factory.cc index 7f15151..aa6e532 100644 --- a/content/browser/compositor/image_transport_factory.cc +++ b/content/browser/compositor/image_transport_factory.cc @@ -7,7 +7,6 @@ #include "base/command_line.h" #include "content/browser/compositor/gpu_process_transport_factory.h" #include "content/browser/compositor/no_transport_image_transport_factory.h" -#include "content/common/host_shared_bitmap_manager.h" #include "ui/compositor/compositor.h" #include "ui/compositor/compositor_switches.h" #include "ui/gl/gl_implementation.h" @@ -25,9 +24,9 @@ void ImageTransportFactory::Initialize() { DCHECK(!g_factory || g_initialized_for_unit_tests); if (g_initialized_for_unit_tests) return; - g_factory = new GpuProcessTransportFactory; - ui::ContextFactory::SetInstance(g_factory->AsContextFactory()); - ui::Compositor::SetSharedBitmapManager(HostSharedBitmapManager::current()); + GpuProcessTransportFactory* factory = new GpuProcessTransportFactory; + g_factory = factory; + ui::ContextFactory::SetInstance(factory); } void ImageTransportFactory::InitializeForUnitTests( @@ -40,9 +39,10 @@ void ImageTransportFactory::InitializeForUnitTests( if (command_line->HasSwitch(switches::kEnablePixelOutputInTests)) g_disable_null_draw = new gfx::DisableNullDrawGLBindings; - g_factory = new NoTransportImageTransportFactory(test_factory.Pass()); - ui::ContextFactory::SetInstance(g_factory->AsContextFactory()); - ui::Compositor::SetSharedBitmapManager(HostSharedBitmapManager::current()); + NoTransportImageTransportFactory* factory = + new NoTransportImageTransportFactory(test_factory.Pass()); + g_factory = factory; + ui::ContextFactory::SetInstance(factory->context_factory()); } // static diff --git a/content/browser/compositor/image_transport_factory.h b/content/browser/compositor/image_transport_factory.h index 1c6912f..5910461 100644 --- a/content/browser/compositor/image_transport_factory.h +++ b/content/browser/compositor/image_transport_factory.h @@ -64,9 +64,6 @@ class CONTENT_EXPORT ImageTransportFactory { // Gets the factory instance. static ImageTransportFactory* GetInstance(); - // Gets the image transport factory as a context factory for the compositor. - virtual ui::ContextFactory* AsContextFactory() = 0; - virtual gfx::GLSurfaceHandle GetSharedSurfaceHandle() = 0; // Gets a GLHelper instance, associated with the shared context. This diff --git a/content/browser/compositor/no_transport_image_transport_factory.cc b/content/browser/compositor/no_transport_image_transport_factory.cc index d1c5951..db0a5ab 100644 --- a/content/browser/compositor/no_transport_image_transport_factory.cc +++ b/content/browser/compositor/no_transport_image_transport_factory.cc @@ -17,10 +17,6 @@ NoTransportImageTransportFactory::NoTransportImageTransportFactory( NoTransportImageTransportFactory::~NoTransportImageTransportFactory() {} -ui::ContextFactory* NoTransportImageTransportFactory::AsContextFactory() { - return context_factory_.get(); -} - gfx::GLSurfaceHandle NoTransportImageTransportFactory::GetSharedSurfaceHandle() { return gfx::GLSurfaceHandle(); diff --git a/content/browser/compositor/no_transport_image_transport_factory.h b/content/browser/compositor/no_transport_image_transport_factory.h index a0f6216..51ae292 100644 --- a/content/browser/compositor/no_transport_image_transport_factory.h +++ b/content/browser/compositor/no_transport_image_transport_factory.h @@ -22,12 +22,13 @@ class NoTransportImageTransportFactory : public ImageTransportFactory { virtual ~NoTransportImageTransportFactory(); // ImageTransportFactory implementation. - virtual ui::ContextFactory* AsContextFactory() OVERRIDE; virtual gfx::GLSurfaceHandle GetSharedSurfaceHandle() OVERRIDE; virtual GLHelper* GetGLHelper() OVERRIDE; virtual void AddObserver(ImageTransportFactoryObserver* observer) OVERRIDE; virtual void RemoveObserver(ImageTransportFactoryObserver* observer) OVERRIDE; + ui::ContextFactory* context_factory() { return context_factory_.get(); } + private: scoped_ptr<ui::ContextFactory> context_factory_; scoped_refptr<cc::ContextProvider> context_provider_; |