Index: ui/compositor/compositor.h |
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h |
index c8689b179b2ce914ebbc283fa1e69f7360e9b618..92cdd7194f80c7991e9b5c60e8d796ad8934a0f5 100644 |
--- a/ui/compositor/compositor.h |
+++ b/ui/compositor/compositor.h |
@@ -99,6 +99,10 @@ class COMPOSITOR_EXPORT ContextFactory { |
// Destroys per-compositor data. |
virtual void RemoveCompositor(Compositor* compositor) = 0; |
+ |
+ // When true, the factory uses test contexts that do not do real GL |
+ // operations. |
+ virtual bool DoesCreateTestContexts() = 0; |
}; |
// The default factory that creates in-process contexts. |
@@ -123,6 +127,7 @@ class COMPOSITOR_EXPORT DefaultContextFactory : public ContextFactory { |
virtual scoped_refptr<cc::ContextProvider> |
OffscreenContextProviderForCompositorThread() OVERRIDE; |
virtual void RemoveCompositor(Compositor* compositor) OVERRIDE; |
+ virtual bool DoesCreateTestContexts() OVERRIDE; |
bool Initialize(); |
@@ -161,6 +166,7 @@ class COMPOSITOR_EXPORT TestContextFactory : public ContextFactory { |
virtual scoped_refptr<cc::ContextProvider> |
OffscreenContextProviderForCompositorThread() OVERRIDE; |
virtual void RemoveCompositor(Compositor* compositor) OVERRIDE; |
+ virtual bool DoesCreateTestContexts() OVERRIDE; |
private: |
scoped_refptr<ContextProviderFromContextFactory> |
@@ -290,6 +296,14 @@ class COMPOSITOR_EXPORT Compositor |
gfx::AcceleratedWidget widget); |
virtual ~Compositor(); |
+ // Set up the compositor ContextFactory for a test environment. Unit tests |
+ // that do not have a full content environment need to call this before |
+ // initializing the Compositor. |
+ // Some tests expect pixel output, and they should pass false for |
+ // |allow_test_contexts|. Most unit tests should pass true. Once this has been |
+ // called, the Initialize() and Terminate() methods should be used as normal. |
+ static void InitializeContextFactoryForTests(bool allow_test_contexts); |
+ |
static void Initialize(); |
static bool WasInitializedWithThread(); |
static scoped_refptr<base::MessageLoopProxy> GetCompositorMessageLoop(); |