Chromium Code Reviews| 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 96a74c6d06fa30c0c9d76bd51fe06aa21e5cc88f..8fa77daeda405b3c775ad66524c043d5d034f0e3 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.cc |
| +++ b/content/renderer/gpu/render_widget_compositor.cc |
| @@ -410,7 +410,6 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
| RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, |
| bool threaded) |
| : threaded_(threaded), |
| - suppress_schedule_composite_(false), |
| widget_(widget) { |
| } |
| @@ -422,26 +421,13 @@ RenderWidgetCompositor::GetInputHandler() { |
| } |
| void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) { |
|
enne (OOO)
2014/07/10 20:37:42
This no longer makes any sense in an FCM world, an
jamesr
2014/07/10 21:55:40
Which part doesn't make sense? Suppressing compos
danakj
2014/07/10 21:57:14
This is done by SetDeferCommits in WebViewImpl now
enne (OOO)
2014/07/10 22:03:49
SetSuppressScheduleComposite != SetDeferCommits.
|
| - if (suppress_schedule_composite_ == suppress) |
| - return; |
| - |
| - if (suppress) |
| - TRACE_EVENT_ASYNC_BEGIN0("gpu", |
| - "RenderWidgetCompositor::SetSuppressScheduleComposite", this); |
| - else |
| - TRACE_EVENT_ASYNC_END0("gpu", |
| - "RenderWidgetCompositor::SetSuppressScheduleComposite", this); |
| - suppress_schedule_composite_ = suppress; |
| + layer_tree_host_->SetDeferCommits(suppress); |
| } |
| bool RenderWidgetCompositor::BeginMainFrameRequested() const { |
| return layer_tree_host_->BeginMainFrameRequested(); |
| } |
| -void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) { |
| - layer_tree_host_->UpdateClientAnimations(time); |
| -} |
| - |
| void RenderWidgetCompositor::SetNeedsDisplayOnAllLayers() { |
| layer_tree_host_->SetNeedsDisplayOnAllLayers(); |
| } |
| @@ -534,7 +520,10 @@ void RenderWidgetCompositor::Initialize(cc::LayerTreeSettings settings) { |
| } |
| void RenderWidgetCompositor::setSurfaceReady() { |
| - layer_tree_host_->SetLayerTreeHostClientReady(); |
| + // In tests without a RenderThreadImpl, don't set ready as this kicks |
| + // off creating output surfaces that the test can't create. |
| + if (RenderThreadImpl::current()) |
| + layer_tree_host_->SetLayerTreeHostClientReady(); |
| } |
| void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) { |
| @@ -687,11 +676,11 @@ void RenderWidgetCompositor::compositeAndReadbackAsync( |
| cc::CopyOutputRequest::CreateBitmapRequest( |
| base::Bind(&CompositeAndReadbackAsyncCallback, callback)); |
| layer_tree_host_->root_layer()->RequestCopyOfOutput(request.Pass()); |
| - if (!threaded_) { |
| - widget_->webwidget()->animate(0.0); |
| - widget_->webwidget()->layout(); |
| + |
| + // Synchronous non-scheduled compositors need an immediate composite |
| + // so that the readback comes back. |
| + if (!layer_tree_host_->settings().single_thread_proxy_scheduler) |
| layer_tree_host_->Composite(gfx::FrameTime::Now()); |
| - } |
| } |
| void RenderWidgetCompositor::finishAllRendering() { |
| @@ -785,11 +774,6 @@ void RenderWidgetCompositor::DidCompleteSwapBuffers() { |
| widget_->OnSwapBuffersComplete(); |
| } |
| -void RenderWidgetCompositor::ScheduleComposite() { |
| - if (!suppress_schedule_composite_) |
| - widget_->scheduleComposite(); |
| -} |
| - |
| void RenderWidgetCompositor::ScheduleAnimation() { |
| widget_->scheduleAnimation(); |
| } |