| 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 64e0982bc250d659c9c6f6b84fc762c4ef452a94..baf1ac13f675e9954fa11e1fbae7c52262119241 100644
|
| --- a/content/renderer/gpu/render_widget_compositor.cc
|
| +++ b/content/renderer/gpu/render_widget_compositor.cc
|
| @@ -277,6 +277,8 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create(
|
| cmd->HasSwitch(cc::switches::kEnablePinchVirtualViewport);
|
| settings.allow_antialiasing &=
|
| !cmd->HasSwitch(cc::switches::kDisableCompositedAntialiasing);
|
| + settings.single_thread_proxy_scheduler =
|
| + !cmd->HasSwitch(switches::kDisableSingleThreadProxyScheduler);
|
|
|
| // These flags should be mirrored by UI versions in ui/compositor/.
|
| settings.initial_debug_state.show_debug_borders =
|
| @@ -409,7 +411,6 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create(
|
| RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget,
|
| bool threaded)
|
| : threaded_(threaded),
|
| - suppress_schedule_composite_(false),
|
| widget_(widget) {
|
| }
|
|
|
| @@ -420,27 +421,10 @@ RenderWidgetCompositor::GetInputHandler() {
|
| return layer_tree_host_->GetInputHandler();
|
| }
|
|
|
| -void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) {
|
| - 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;
|
| -}
|
| -
|
| 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();
|
| }
|
| @@ -549,7 +533,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) {
|
| @@ -702,9 +689,9 @@ 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();
|
| +
|
| + if (!threaded_ &&
|
| + !layer_tree_host_->settings().single_thread_proxy_scheduler) {
|
| layer_tree_host_->Composite(gfx::FrameTime::Now());
|
| }
|
| }
|
| @@ -800,11 +787,6 @@ void RenderWidgetCompositor::DidCompleteSwapBuffers() {
|
| widget_->OnSwapBuffersComplete();
|
| }
|
|
|
| -void RenderWidgetCompositor::ScheduleComposite() {
|
| - if (!suppress_schedule_composite_)
|
| - widget_->scheduleComposite();
|
| -}
|
| -
|
| void RenderWidgetCompositor::ScheduleAnimation() {
|
| widget_->scheduleAnimation();
|
| }
|
|
|