Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 73ab00862d967b0b3e2574d512c08cb8397fe76c..85e4286eb47c87d0f24a308a77e87c846b0ae6b7 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -149,6 +149,11 @@ ui::TextInputMode ConvertInputMode(const blink::WebString& input_mode) { |
return it->second; |
} |
+bool IsThreadedCompositingEnabled() { |
+ content::RenderThreadImpl* impl = content::RenderThreadImpl::current(); |
+ return impl && !!impl->compositor_message_loop_proxy().get(); |
+} |
+ |
// TODO(brianderson): Replace the hard-coded threshold with a fraction of |
// the BeginMainFrame interval. |
// 4166us will allow 1/4 of a 60Hz interval or 1/2 of a 120Hz interval to |
@@ -396,7 +401,6 @@ RenderWidget::RenderWidget(blink::WebPopupType popup_type, |
suppress_next_char_events_(false), |
screen_info_(screen_info), |
device_scale_factor_(screen_info_.deviceScaleFactor), |
- is_threaded_compositing_enabled_(false), |
current_event_latency_info_(NULL), |
next_output_surface_id_(0), |
#if defined(OS_ANDROID) |
@@ -410,9 +414,6 @@ RenderWidget::RenderWidget(blink::WebPopupType popup_type, |
if (!swapped_out) |
RenderProcess::current()->AddRefProcess(); |
DCHECK(RenderThread::Get()); |
- is_threaded_compositing_enabled_ = |
- CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kEnableThreadedCompositing); |
device_color_profile_.push_back('0'); |
} |
@@ -840,7 +841,7 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) { |
uint32 output_surface_id = next_output_surface_id_++; |
if (command_line.HasSwitch(switches::kEnableDelegatedRenderer)) { |
- DCHECK(is_threaded_compositing_enabled_); |
+ DCHECK(IsThreadedCompositingEnabled()); |
return scoped_ptr<cc::OutputSurface>( |
new DelegatedCompositorOutputSurface( |
routing_id(), |
@@ -863,7 +864,7 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) { |
// Composite-to-mailbox is currently used for layout tests in order to cause |
// them to draw inside in the renderer to do the readback there. This should |
// no longer be the case when crbug.com/311404 is fixed. |
- DCHECK(is_threaded_compositing_enabled_ || |
+ DCHECK(IsThreadedCompositingEnabled() || |
RenderThreadImpl::current()->layout_test_mode()); |
cc::ResourceFormat format = cc::RGBA_8888; |
if (base::SysInfo::IsLowEndDevice()) |
@@ -1172,8 +1173,8 @@ void RenderWidget::AutoResizeCompositor() { |
} |
void RenderWidget::initializeLayerTreeView() { |
- compositor_ = RenderWidgetCompositor::Create( |
- this, is_threaded_compositing_enabled_); |
+ compositor_ = |
+ RenderWidgetCompositor::Create(this, IsThreadedCompositingEnabled()); |
compositor_->setViewportSize(size_, physical_backing_size_); |
if (init_complete_) |
StartCompositor(); |