Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index bea8b07d386b5ab5c95626fd4ae3f2047ba846eb..9d728ccb2359b11e63da301c5a11934be851d120 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -307,7 +307,7 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
} |
#endif |
- if (!compositor->initialize(settings)) |
+ if (!compositor->Initialize(settings)) |
return scoped_ptr<RenderWidgetCompositor>(); |
return compositor.Pass(); |
@@ -413,11 +413,16 @@ bool RenderWidgetCompositor::ScheduleMicroBenchmark( |
return layer_tree_host_->ScheduleMicroBenchmark(name, value.Pass(), callback); |
} |
-bool RenderWidgetCompositor::initialize(cc::LayerTreeSettings settings) { |
+bool RenderWidgetCompositor::Initialize(cc::LayerTreeSettings settings) { |
scoped_refptr<base::MessageLoopProxy> compositor_message_loop_proxy = |
RenderThreadImpl::current()->compositor_message_loop_proxy(); |
- layer_tree_host_ = cc::LayerTreeHost::Create( |
- this, NULL, settings, compositor_message_loop_proxy); |
+ if (compositor_message_loop_proxy.get()) { |
+ layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( |
+ this, NULL, settings, compositor_message_loop_proxy); |
+ } else { |
+ layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( |
+ this, this, NULL, settings); |
+ } |
return layer_tree_host_; |
} |
@@ -638,16 +643,16 @@ void RenderWidgetCompositor::DidCompleteSwapBuffers() { |
widget_->didCompleteSwapBuffers(); |
} |
-void RenderWidgetCompositor::ScheduleComposite() { |
- if (!suppress_schedule_composite_) |
- widget_->scheduleComposite(); |
-} |
- |
scoped_refptr<cc::ContextProvider> |
RenderWidgetCompositor::OffscreenContextProvider() { |
return RenderThreadImpl::current()->OffscreenCompositorContextProvider(); |
} |
+void RenderWidgetCompositor::ScheduleComposite() { |
+ if (!suppress_schedule_composite_) |
+ widget_->scheduleComposite(); |
+} |
+ |
void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { |
cc::ContextProvider* provider = |
RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); |