Chromium Code Reviews| Index: content/renderer/render_widget.cc |
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
| index dd278d60f679d2ef3d9a7e87294bdc4729a4b99d..ae9a4406cc5565c5abe40d2d2433de061c58ca41 100644 |
| --- a/content/renderer/render_widget.cc |
| +++ b/content/renderer/render_widget.cc |
| @@ -148,6 +148,11 @@ ui::TextInputMode ConvertInputMode(const blink::WebString& input_mode) { |
| return it->second; |
| } |
| +bool IsThreadedCompositingEnabled() { |
| + RenderThreadImpl* impl = content::RenderThreadImpl::current(); |
| + return !impl || !!impl->compositor_message_loop_proxy().get(); |
|
piman
2014/06/13 22:07:18
I think it should be impl && !!impl->compositor_me
|
| +} |
| + |
| // 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 |
| @@ -388,7 +393,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) |
| @@ -402,9 +406,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); |
| } |
| RenderWidget::~RenderWidget() { |
| @@ -833,7 +834,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(), |
| @@ -856,7 +857,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 defined(OS_ANDROID) |
| @@ -1167,8 +1168,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(); |