Chromium Code Reviews| Index: ui/compositor/test/in_process_context_factory.cc |
| diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc |
| index 7aa8098ae6eb2ab34c7b665c38076025bb9b5125..ec3ae70282d77d7e018291add5b2d3246425a0fc 100644 |
| --- a/ui/compositor/test/in_process_context_factory.cc |
| +++ b/ui/compositor/test/in_process_context_factory.cc |
| @@ -4,6 +4,7 @@ |
| #include "ui/compositor/test/in_process_context_factory.h" |
| +#include "base/threading/thread.h" |
| #include "cc/output/output_surface.h" |
| #include "cc/test/test_shared_bitmap_manager.h" |
| #include "ui/compositor/reflector.h" |
| @@ -18,9 +19,24 @@ namespace ui { |
| InProcessContextFactory::InProcessContextFactory() |
| : shared_bitmap_manager_(new cc::TestSharedBitmapManager()) { |
| DCHECK_NE(gfx::GetGLImplementation(), gfx::kGLImplementationNone); |
| +#if defined(OS_CHROMEOS) |
| + bool use_thread = !CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kUIDisableThreadedCompositing); |
| +#else |
| + bool use_thread = false; |
| +#endif |
| + if (use_thread) { |
| + compositor_thread_.reset(new base::Thread("Browser Compositor")); |
| + compositor_thread_->Start(); |
| + } |
| } |
| -InProcessContextFactory::~InProcessContextFactory() {} |
| +InProcessContextFactory::~InProcessContextFactory() { |
| + if (compositor_thread_.get()) { |
|
danakj
2014/05/08 22:37:30
nit: no need .get() for scoped_ptr
piman
2014/05/08 22:48:34
Done.
|
| + compositor_thread_->Stop(); |
|
danakj
2014/05/08 22:37:30
Doesn't this happen in the destructor? Why do we n
piman
2014/05/08 22:48:34
Done.
|
| + compositor_thread_.reset(); |
| + } |
| +} |
| scoped_ptr<cc::OutputSurface> InProcessContextFactory::CreateOutputSurface( |
| Compositor* compositor, |
| @@ -80,4 +96,10 @@ cc::SharedBitmapManager* InProcessContextFactory::GetSharedBitmapManager() { |
| return shared_bitmap_manager_.get(); |
| } |
| +base::MessageLoopProxy* InProcessContextFactory::GetCompositorMessageLoop() { |
| + if (!compositor_thread_) |
| + return NULL; |
| + return compositor_thread_->message_loop_proxy(); |
| +} |
| + |
| } // namespace ui |