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 a4278915f223d818e6557068dc6d56b2933acf33..38756f019bd542c9b37bd62d614df94a695d6ffd 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.cc |
| +++ b/content/renderer/gpu/render_widget_compositor.cc |
| @@ -740,19 +740,27 @@ void RenderWidgetCompositor::compositeAndReadbackAsync( |
| ScheduleCommit(); |
| } |
| -bool RenderWidgetCompositor::CommitIsSynchronous() const { |
| +bool RenderWidgetCompositor::CommitIsSynchronous() const |
|
no sievers
2015/05/07 17:57:56
nit: move brace back up
Xianzhu
2015/05/07 18:05:36
Done.
|
| +{ |
| return !compositor_deps_->GetCompositorImplThreadTaskRunner().get() && |
| !layer_tree_host_->settings().single_thread_proxy_scheduler; |
| } |
| void RenderWidgetCompositor::ScheduleCommit() { |
| if (CommitIsSynchronous()) { |
| - layer_tree_host_->Composite(gfx::FrameTime::Now()); |
| + base::MessageLoop::current()->PostTask( |
| + FROM_HERE, base::Bind(&RenderWidgetCompositor::SynchronousCommit, |
| + weak_factory_.GetWeakPtr())); |
| } else { |
| layer_tree_host_->SetNeedsCommit(); |
| } |
| } |
| +void RenderWidgetCompositor::SynchronousCommit() { |
| + DCHECK(CommitIsSynchronous()); |
| + layer_tree_host_->Composite(gfx::FrameTime::Now()); |
| +} |
| + |
| void RenderWidgetCompositor::finishAllRendering() { |
| layer_tree_host_->FinishAllRendering(); |
| } |
| @@ -918,20 +926,6 @@ void RenderWidgetCompositor::DidFailToInitializeOutputSurface() { |
| void RenderWidgetCompositor::WillCommit() { |
| if (!layout_and_paint_async_callback_) |
| return; |
| - |
| - if (CommitIsSynchronous()) { |
| - // The caller expects the callback to be called asynchronously. |
| - base::MessageLoop::current()->PostTask( |
| - FROM_HERE, base::Bind(&RenderWidgetCompositor::DidLayoutAndPaintAsync, |
| - weak_factory_.GetWeakPtr())); |
| - } else { |
| - DidLayoutAndPaintAsync(); |
| - } |
| -} |
| - |
| -void RenderWidgetCompositor::DidLayoutAndPaintAsync() { |
| - if (!layout_and_paint_async_callback_) |
| - return; |
| layout_and_paint_async_callback_->didLayoutAndPaint(); |
| layout_and_paint_async_callback_ = nullptr; |
| } |