diff options
Diffstat (limited to 'ui/compositor')
-rw-r--r-- | ui/compositor/compositor.cc | 118 | ||||
-rw-r--r-- | ui/compositor/compositor.gyp | 1 | ||||
-rw-r--r-- | ui/compositor/compositor.h | 14 | ||||
-rw-r--r-- | ui/compositor/compositor_setup.h | 29 | ||||
-rw-r--r-- | ui/compositor/layer_unittest.cc | 132 | ||||
-rw-r--r-- | ui/compositor/test/test_suite.cc | 6 |
6 files changed, 139 insertions, 161 deletions
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc index c976ecf..5739bbf 100644 --- a/ui/compositor/compositor.cc +++ b/ui/compositor/compositor.cc @@ -50,10 +50,9 @@ enum SwapType { READPIXELS_SWAP, }; +bool g_compositor_initialized = false; base::Thread* g_compositor_thread = NULL; -bool g_test_compositor_enabled = false; - ui::ContextFactory* g_implicit_factory = NULL; ui::ContextFactory* g_context_factory = NULL; @@ -77,39 +76,13 @@ class PendingSwap { DISALLOW_COPY_AND_ASSIGN(PendingSwap); }; -void SetupImplicitFactory() { - // We leak the implicit factory so that we don't race with the tear down of - // the gl_bindings. - DCHECK(!g_context_factory); - DCHECK(!g_implicit_factory); - if (g_test_compositor_enabled) { - g_implicit_factory = new ui::TestContextFactory; - } else { - DVLOG(1) << "Using DefaultContextFactory"; - scoped_ptr<ui::DefaultContextFactory> instance( - new ui::DefaultContextFactory()); - if (instance->Initialize()) - g_implicit_factory = instance.release(); - } - g_context_factory = g_implicit_factory; -} - -void ResetImplicitFactory() { - if (!g_implicit_factory || g_context_factory != g_implicit_factory) - return; - delete g_implicit_factory; - g_implicit_factory = NULL; - g_context_factory = NULL; -} - } // namespace namespace ui { // static ContextFactory* ContextFactory::GetInstance() { - if (!g_context_factory) - SetupImplicitFactory(); + DCHECK(g_context_factory); return g_context_factory; } @@ -180,6 +153,8 @@ DefaultContextFactory::OffscreenContextProviderForCompositorThread() { void DefaultContextFactory::RemoveCompositor(Compositor* compositor) { } +bool DefaultContextFactory::DoesCreateTestContexts() { return false; } + scoped_ptr<WebKit::WebGraphicsContext3D> DefaultContextFactory::CreateContextCommon(Compositor* compositor, bool offscreen) { @@ -248,6 +223,8 @@ TestContextFactory::OffscreenContextProviderForCompositorThread() { void TestContextFactory::RemoveCompositor(Compositor* compositor) { } +bool TestContextFactory::DoesCreateTestContexts() { return true; } + Texture::Texture(bool flipped, const gfx::Size& size, float device_scale_factor) : size_(size), flipped_(flipped), @@ -410,6 +387,9 @@ Compositor::Compositor(CompositorDelegate* delegate, next_draw_is_resize_(false), disable_schedule_composite_(false), compositor_lock_(NULL) { + DCHECK(g_compositor_initialized) + << "Compositor::Initialize must be called before creating a Compositor."; + root_web_layer_ = cc::Layer::Create(); root_web_layer_->SetAnchorPoint(gfx::PointF(0.f, 0.f)); @@ -417,7 +397,9 @@ Compositor::Compositor(CompositorDelegate* delegate, cc::LayerTreeSettings settings; settings.refresh_rate = - g_test_compositor_enabled ? kTestRefreshRate : kDefaultRefreshRate; + ContextFactory::GetInstance()->DoesCreateTestContexts() + ? kTestRefreshRate + : kDefaultRefreshRate; settings.partial_swap_enabled = !command_line->HasSwitch(cc::switches::kUIDisablePartialSwap); settings.per_tile_painting_enabled = @@ -452,6 +434,8 @@ Compositor::Compositor(CompositorDelegate* delegate, } Compositor::~Compositor() { + DCHECK(g_compositor_initialized); + CancelCompositorLock(); DCHECK(!compositor_lock_); @@ -468,6 +452,41 @@ Compositor::~Compositor() { } // static +void Compositor::InitializeContextFactoryForTests(bool allow_test_contexts) { + DCHECK(!g_context_factory) << "ContextFactory already initialized."; + DCHECK(!g_implicit_factory) << + "ContextFactory for tests already initialized."; + + bool use_test_contexts = true; + + // Always use test contexts unless the disable command line flag is used. + CommandLine* command_line = CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableTestCompositor)) + use_test_contexts = false; + +#if defined(OS_CHROMEOS) + // If the test is running on the chromeos envrionment (such as + // device or vm bots), always use real contexts. + if (base::chromeos::IsRunningOnChromeOS()) + use_test_contexts = false; +#endif + + if (!allow_test_contexts) + use_test_contexts = false; + + if (use_test_contexts) { + g_implicit_factory = new ui::TestContextFactory; + } else { + DVLOG(1) << "Using DefaultContextFactory"; + scoped_ptr<ui::DefaultContextFactory> instance( + new ui::DefaultContextFactory()); + if (instance->Initialize()) + g_implicit_factory = instance.release(); + } + g_context_factory = g_implicit_factory; +} + +// static void Compositor::Initialize() { #if defined(OS_CHROMEOS) bool use_thread = !CommandLine::ForCurrentProcess()->HasSwitch( @@ -483,6 +502,9 @@ void Compositor::Initialize() { g_compositor_thread = new base::Thread("Browser Compositor"); g_compositor_thread->Start(); } + + DCHECK(!g_compositor_initialized) << "Compositor initialized twice."; + g_compositor_initialized = true; } // static @@ -500,11 +522,24 @@ scoped_refptr<base::MessageLoopProxy> Compositor::GetCompositorMessageLoop() { // static void Compositor::Terminate() { + if (g_context_factory) { + if (g_implicit_factory) { + delete g_implicit_factory; + g_implicit_factory = NULL; + } + g_context_factory = NULL; + } + if (g_compositor_thread) { + DCHECK(!g_context_factory) + << "The ContextFactory should not outlive the compositor thread."; g_compositor_thread->Stop(); delete g_compositor_thread; g_compositor_thread = NULL; } + + DCHECK(g_compositor_initialized) << "Compositor::Initialize() didn't happen."; + g_compositor_initialized = false; } void Compositor::ScheduleDraw() { @@ -751,27 +786,4 @@ void Compositor::NotifyEnd() { OnCompositingEnded(this)); } -COMPOSITOR_EXPORT void SetupTestCompositor() { - if (!CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableTestCompositor)) { - g_test_compositor_enabled = true; - } -#if defined(OS_CHROMEOS) - // If the test is running on the chromeos envrionment (such as - // device or vm bots), use the real compositor. - if (base::chromeos::IsRunningOnChromeOS()) - g_test_compositor_enabled = false; -#endif - ResetImplicitFactory(); -} - -COMPOSITOR_EXPORT void DisableTestCompositor() { - ResetImplicitFactory(); - g_test_compositor_enabled = false; -} - -COMPOSITOR_EXPORT bool IsTestCompositorEnabled() { - return g_test_compositor_enabled; -} - } // namespace ui diff --git a/ui/compositor/compositor.gyp b/ui/compositor/compositor.gyp index 131a6d8..57a4aaf 100644 --- a/ui/compositor/compositor.gyp +++ b/ui/compositor/compositor.gyp @@ -28,7 +28,6 @@ 'compositor.h', 'compositor_export.h', 'compositor_observer.h', - 'compositor_setup.h', 'compositor_switches.cc', 'compositor_switches.h', 'context_provider_from_context_factory.cc', diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h index c8689b179..92cdd71 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(); diff --git a/ui/compositor/compositor_setup.h b/ui/compositor/compositor_setup.h deleted file mode 100644 index 254f389..0000000 --- a/ui/compositor/compositor_setup.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_COMPOSITOR_COMPOSITOR_SETUP_H_ -#define UI_COMPOSITOR_COMPOSITOR_SETUP_H_ - -#include "ui/compositor/compositor_export.h" - -namespace ui { - -// Configures the compositor in such a way that it doesn't render anything. -// Does nothing on platforms that aren't using the compositor. -#if !defined(USE_AURA) -// To centralize the ifdef to this file we define the function as doing nothing -// on all platforms that don't use a compositor. -static inline void SetupTestCompositor() {} -static inline void DisableTestCompositor() {} -#else -COMPOSITOR_EXPORT void SetupTestCompositor(); - -// Disables the test compositor so that the normal compositor is used. -COMPOSITOR_EXPORT void DisableTestCompositor(); -COMPOSITOR_EXPORT bool IsTestCompositorEnabled(); -#endif - -} // namespace ui - -#endif // UI_COMPOSITOR_COMPOSITOR_SETUP_H_ diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc index 79ef288..9385dbb 100644 --- a/ui/compositor/layer_unittest.cc +++ b/ui/compositor/layer_unittest.cc @@ -17,7 +17,6 @@ #include "cc/test/pixel_test_utils.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/compositor/compositor_observer.h" -#include "ui/compositor/compositor_setup.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_animation_sequence.h" #include "ui/compositor/layer_animator.h" @@ -82,13 +81,18 @@ class LayerWithRealCompositorTest : public testing::Test { // Overridden from testing::Test: virtual void SetUp() OVERRIDE { - DisableTestCompositor(); + bool allow_test_contexts = false; + Compositor::InitializeContextFactoryForTests(allow_test_contexts); + Compositor::Initialize(); + const gfx::Rect host_bounds(10, 10, 500, 500); window_.reset(TestCompositorHost::Create(host_bounds)); window_->Show(); } virtual void TearDown() OVERRIDE { + window_.reset(); + Compositor::Terminate(); } Compositor* GetCompositor() { @@ -307,43 +311,7 @@ class TestCompositorObserver : public CompositorObserver { } // namespace -#if defined(OS_WIN) -// These are disabled on windows as they don't run correctly on the buildbot. -// Reenable once we move to the real compositor. -#define MAYBE_Delegate DISABLED_Delegate -#define MAYBE_Draw DISABLED_Draw -#define MAYBE_DrawTree DISABLED_DrawTree -#define MAYBE_Hierarchy DISABLED_Hierarchy -#define MAYBE_HierarchyNoTexture DISABLED_HierarchyNoTexture -#define MAYBE_DrawPixels DISABLED_DrawPixels -#define MAYBE_SetRootLayer DISABLED_SetRootLayer -#define MAYBE_CompositorObservers DISABLED_CompositorObservers -#define MAYBE_ModifyHierarchy DISABLED_ModifyHierarchy -#define MAYBE_Opacity DISABLED_Opacity -#define MAYBE_ScaleUpDown DISABLED_ScaleUpDown -#define MAYBE_ScaleReparent DISABLED_ScaleReparent -#define MAYBE_NoScaleCanvas DISABLED_NoScaleCanvas -#define MAYBE_AddRemoveThreadedAnimations DISABLED_AddRemoveThreadedAnimations -#define MAYBE_SwitchCCLayerAnimations DISABLED_SwitchCCLayerAnimations -#else -#define MAYBE_Delegate Delegate -#define MAYBE_Draw Draw -#define MAYBE_DrawTree DrawTree -#define MAYBE_Hierarchy Hierarchy -#define MAYBE_HierarchyNoTexture HierarchyNoTexture -#define MAYBE_DrawPixels DrawPixels -#define MAYBE_SetRootLayer SetRootLayer -#define MAYBE_CompositorObservers CompositorObservers -#define MAYBE_ModifyHierarchy ModifyHierarchy -#define MAYBE_Opacity Opacity -#define MAYBE_ScaleUpDown ScaleUpDown -#define MAYBE_ScaleReparent ScaleReparent -#define MAYBE_NoScaleCanvas NoScaleCanvas -#define MAYBE_AddRemoveThreadedAnimations AddRemoveThreadedAnimations -#define MAYBE_SwitchCCLayerAnimations SwitchCCLayerAnimations -#endif - -TEST_F(LayerWithRealCompositorTest, MAYBE_Draw) { +TEST_F(LayerWithRealCompositorTest, Draw) { scoped_ptr<Layer> layer(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 50, 50))); DrawTree(layer.get()); @@ -355,7 +323,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_Draw) { // | +-- L3 - yellow // +-- L4 - magenta // -TEST_F(LayerWithRealCompositorTest, MAYBE_Hierarchy) { +TEST_F(LayerWithRealCompositorTest, Hierarchy) { scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 400, 400))); scoped_ptr<Layer> l2(CreateColorLayer(SK_ColorBLUE, @@ -379,12 +347,16 @@ class LayerWithDelegateTest : public testing::Test, public CompositorDelegate { // Overridden from testing::Test: virtual void SetUp() OVERRIDE { - ui::SetupTestCompositor(); + bool allow_test_contexts = true; + Compositor::InitializeContextFactoryForTests(allow_test_contexts); + Compositor::Initialize(); compositor_.reset(new Compositor(this, gfx::kNullAcceleratedWidget)); compositor_->SetScaleAndSize(1.0f, gfx::Size(1000, 1000)); } virtual void TearDown() OVERRIDE { + compositor_.reset(); + Compositor::Terminate(); } Compositor* compositor() { return compositor_.get(); } @@ -491,7 +463,7 @@ TEST_F(LayerWithDelegateTest, ConvertPointToLayer_Medium) { EXPECT_EQ(point2_in_l3_coords, point2_in_l1_coords); } -TEST_F(LayerWithRealCompositorTest, MAYBE_Delegate) { +TEST_F(LayerWithRealCompositorTest, Delegate) { scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorBLACK, gfx::Rect(20, 20, 400, 400))); GetCompositor()->SetRootLayer(l1.get()); @@ -520,7 +492,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_Delegate) { EXPECT_EQ(delegate.paint_size(), gfx::Size(50, 50)); } -TEST_F(LayerWithRealCompositorTest, MAYBE_DrawTree) { +TEST_F(LayerWithRealCompositorTest, DrawTree) { scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 400, 400))); scoped_ptr<Layer> l2(CreateColorLayer(SK_ColorBLUE, @@ -554,7 +526,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_DrawTree) { // | +-- L3 - yellow // +-- L4 - magenta // -TEST_F(LayerWithRealCompositorTest, MAYBE_HierarchyNoTexture) { +TEST_F(LayerWithRealCompositorTest, HierarchyNoTexture) { scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 400, 400))); scoped_ptr<Layer> l2(CreateNoTextureLayer(gfx::Rect(10, 10, 350, 350))); @@ -590,15 +562,11 @@ class LayerWithNullDelegateTest : public LayerWithDelegateTest { LayerWithNullDelegateTest() {} virtual ~LayerWithNullDelegateTest() {} - // Overridden from testing::Test: virtual void SetUp() OVERRIDE { LayerWithDelegateTest::SetUp(); default_layer_delegate_.reset(new NullLayerDelegate()); } - virtual void TearDown() OVERRIDE { - } - virtual Layer* CreateLayer(LayerType type) OVERRIDE { Layer* layer = new Layer(type); layer->set_delegate(default_layer_delegate_.get()); @@ -801,35 +769,53 @@ TEST_F(LayerWithNullDelegateTest, SetBoundsSchedulesPaint) { } // Checks that pixels are actually drawn to the screen with a read back. -// Currently disabled on all platforms, see http://crbug.com/148709. -TEST_F(LayerWithRealCompositorTest, MAYBE_DrawPixels) { - scoped_ptr<Layer> layer(CreateColorLayer(SK_ColorRED, - gfx::Rect(0, 0, 500, 500))); - scoped_ptr<Layer> layer2(CreateColorLayer(SK_ColorBLUE, - gfx::Rect(0, 0, 500, 10))); +TEST_F(LayerWithRealCompositorTest, DrawPixels) { + gfx::Size viewport_size = GetCompositor()->size(); + + // The window should be some non-trivial size but may not be exactly + // 500x500 on all platforms/bots. + EXPECT_GE(viewport_size.width(), 200); + EXPECT_GE(viewport_size.height(), 200); + + int blue_height = 10; + + scoped_ptr<Layer> layer( + CreateColorLayer(SK_ColorRED, gfx::Rect(viewport_size))); + scoped_ptr<Layer> layer2( + CreateColorLayer(SK_ColorBLUE, + gfx::Rect(0, 0, viewport_size.width(), blue_height))); layer->Add(layer2.get()); DrawTree(layer.get()); SkBitmap bitmap; - gfx::Size size = GetCompositor()->size(); - ASSERT_TRUE(GetCompositor()->ReadPixels(&bitmap, - gfx::Rect(0, 10, - size.width(), size.height() - 10))); + ASSERT_TRUE(GetCompositor()->ReadPixels(&bitmap, gfx::Rect(viewport_size))); ASSERT_FALSE(bitmap.empty()); SkAutoLockPixels lock(bitmap); - bool is_all_red = true; - for (int x = 0; is_all_red && x < 500; x++) - for (int y = 0; is_all_red && y < 490; y++) - is_all_red = is_all_red && (bitmap.getColor(x, y) == SK_ColorRED); - - EXPECT_TRUE(is_all_red); + for (int x = 0; x < viewport_size.width(); x++) { + for (int y = 0; y < viewport_size.height(); y++) { + SkColor actual_color = bitmap.getColor(x, y); + SkColor expected_color = y < blue_height ? SK_ColorBLUE : SK_ColorRED; + EXPECT_EQ(expected_color, actual_color) + << "Pixel error at x=" << x << " y=" << y << "; " + << "actual RGBA=(" + << SkColorGetR(actual_color) << "," + << SkColorGetG(actual_color) << "," + << SkColorGetB(actual_color) << "," + << SkColorGetA(actual_color) << "); " + << "expected RGBA=(" + << SkColorGetR(expected_color) << "," + << SkColorGetG(expected_color) << "," + << SkColorGetB(expected_color) << "," + << SkColorGetA(expected_color) << ")"; + } + } } // Checks the logic around Compositor::SetRootLayer and Layer::SetCompositor. -TEST_F(LayerWithRealCompositorTest, MAYBE_SetRootLayer) { +TEST_F(LayerWithRealCompositorTest, SetRootLayer) { Compositor* compositor = GetCompositor(); scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 400, 400))); @@ -861,7 +847,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_SetRootLayer) { // - After ScheduleDraw is called, or // - Whenever SetBounds, SetOpacity or SetTransform are called. // TODO(vollick): could be reorganized into compositor_unittest.cc -TEST_F(LayerWithRealCompositorTest, MAYBE_CompositorObservers) { +TEST_F(LayerWithRealCompositorTest, CompositorObservers) { scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorRED, gfx::Rect(20, 20, 400, 400))); scoped_ptr<Layer> l2(CreateColorLayer(SK_ColorBLUE, @@ -935,7 +921,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_CompositorObservers) { } // Checks that modifying the hierarchy correctly affects final composite. -TEST_F(LayerWithRealCompositorTest, MAYBE_ModifyHierarchy) { +TEST_F(LayerWithRealCompositorTest, ModifyHierarchy) { GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(50, 50)); // l0 @@ -1004,7 +990,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ModifyHierarchy) { // Opacity is rendered correctly. // Checks that modifying the hierarchy correctly affects final composite. -TEST_F(LayerWithRealCompositorTest, MAYBE_Opacity) { +TEST_F(LayerWithRealCompositorTest, Opacity) { GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(50, 50)); // l0 @@ -1112,7 +1098,7 @@ TEST_F(LayerWithDelegateTest, SchedulePaintFromOnPaintLayer) { gfx::Rect(10, 10, 30, 30))); } -TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) { +TEST_F(LayerWithRealCompositorTest, ScaleUpDown) { scoped_ptr<Layer> root(CreateColorLayer(SK_ColorWHITE, gfx::Rect(10, 20, 200, 220))); TestLayerDelegate root_delegate; @@ -1198,7 +1184,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) { EXPECT_EQ("0.0 0.0", l1_delegate.ToScaleString()); } -TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleReparent) { +TEST_F(LayerWithRealCompositorTest, ScaleReparent) { scoped_ptr<Layer> root(CreateColorLayer(SK_ColorWHITE, gfx::Rect(10, 20, 200, 220))); scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorWHITE, @@ -1243,7 +1229,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleReparent) { } // Tests layer::set_scale_content(false). -TEST_F(LayerWithRealCompositorTest, MAYBE_NoScaleCanvas) { +TEST_F(LayerWithRealCompositorTest, NoScaleCanvas) { scoped_ptr<Layer> root(CreateColorLayer(SK_ColorWHITE, gfx::Rect(10, 20, 200, 220))); scoped_ptr<Layer> l1(CreateColorLayer(SK_ColorWHITE, @@ -1358,7 +1344,7 @@ TEST_F(LayerWithDelegateTest, DelegatedLayer) { } // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. -TEST_F(LayerWithRealCompositorTest, MAYBE_AddRemoveThreadedAnimations) { +TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); scoped_ptr<Layer> l2(CreateLayer(LAYER_TEXTURED)); @@ -1405,7 +1391,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_AddRemoveThreadedAnimations) { // Tests that in-progress threaded animations complete when a Layer's // cc::Layer changes. -TEST_F(LayerWithRealCompositorTest, MAYBE_SwitchCCLayerAnimations) { +TEST_F(LayerWithRealCompositorTest, SwitchCCLayerAnimations) { scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); GetCompositor()->SetRootLayer(root.get()); diff --git a/ui/compositor/test/test_suite.cc b/ui/compositor/test/test_suite.cc index 58329f2..3f89cce 100644 --- a/ui/compositor/test/test_suite.cc +++ b/ui/compositor/test/test_suite.cc @@ -28,19 +28,15 @@ void CompositorTestSuite::Initialize() { #if defined(USE_X11) XInitThreads(); #endif -#if defined(OS_LINUX) - gfx::InitializeGLBindings(gfx::kGLImplementationOSMesaGL); -#endif + CHECK(gfx::InitializeGLBindings(gfx::kGLImplementationOSMesaGL)); base::TestSuite::Initialize(); gfx::RegisterPathProvider(); message_loop_.reset(new base::MessageLoop(base::MessageLoop::TYPE_UI)); - Compositor::Initialize(); } void CompositorTestSuite::Shutdown() { - Compositor::Terminate(); message_loop_.reset(); base::TestSuite::Shutdown(); |