summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 02:21:58 +0000
committerpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 02:21:58 +0000
commit8cd6c223ca41a6788783db5ab2ea90f774e8c10f (patch)
treec743c2b47705a8b91836d7955d7eb4a96a919193 /content
parent1eab4e9e04c773022b3e24f251fa384396d48aa5 (diff)
downloadchromium_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')
-rw-r--r--content/browser/compositor/gpu_process_transport_factory.cc5
-rw-r--r--content/browser/compositor/gpu_process_transport_factory.h2
-rw-r--r--content/browser/compositor/image_transport_factory.cc14
-rw-r--r--content/browser/compositor/image_transport_factory.h3
-rw-r--r--content/browser/compositor/no_transport_image_transport_factory.cc4
-rw-r--r--content/browser/compositor/no_transport_image_transport_factory.h3
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_;