Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(773)

Unified Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 134623005: Make SingleThreadProxy a SchedulerClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698