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 |