Index: content/browser/renderer_host/render_widget_host_view_android.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
index c249782b86324b842ef4a2404474a232b0702b6e..ebc2d67d2ee35386a0618d2a9cab816f7744f621 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -747,7 +747,6 @@ void RenderWidgetHostViewAndroid::OnDidChangeBodyBackgroundColor( |
} |
void RenderWidgetHostViewAndroid::OnSetNeedsBeginFrames(bool enabled) { |
- DCHECK(using_browser_compositor_); |
TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::OnSetNeedsBeginFrames", |
"enabled", enabled); |
if (enabled) |
@@ -1377,10 +1376,6 @@ void RenderWidgetHostViewAndroid::RemoveLayers() { |
} |
void RenderWidgetHostViewAndroid::RequestVSyncUpdate(uint32 requests) { |
- // The synchronous compositor does not requre BeginFrame messages. |
- if (!using_browser_compositor_) |
- requests &= FLUSH_INPUT; |
- |
bool should_request_vsync = !outstanding_vsync_requests_ && requests; |
outstanding_vsync_requests_ |= requests; |
// Note that if we're not currently observing the root window, outstanding |
@@ -1421,15 +1416,25 @@ void RenderWidgetHostViewAndroid::SendBeginFrame(base::TimeTicks frame_time, |
base::TimeDelta vsync_period) { |
TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::SendBeginFrame", |
"frame_time_us", frame_time.ToInternalValue()); |
- base::TimeTicks display_time = frame_time + vsync_period; |
- base::TimeTicks deadline = |
- display_time - host_->GetEstimatedBrowserCompositeTime(); |
+ if (using_browser_compositor_) { |
+ base::TimeTicks display_time = frame_time + vsync_period; |
+ |
+ base::TimeTicks deadline = |
+ display_time - host_->GetEstimatedBrowserCompositeTime(); |
+ |
+ host_->Send(new ViewMsg_BeginFrame( |
+ host_->GetRoutingID(), |
+ cc::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, |
+ vsync_period, cc::BeginFrameArgs::NORMAL))); |
+ } else { |
+ SynchronousCompositorImpl* compositor = SynchronousCompositorImpl::FromID( |
+ host_->GetProcess()->GetID(), host_->GetRoutingID()); |
- host_->Send(new ViewMsg_BeginFrame( |
- host_->GetRoutingID(), |
- cc::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, |
- vsync_period, cc::BeginFrameArgs::NORMAL))); |
+ compositor->SendBeginFrame(cc::BeginFrameArgs::Create( |
+ BEGINFRAME_FROM_HERE, frame_time, base::TimeTicks(), vsync_period, |
+ cc::BeginFrameArgs::NORMAL)); |
+ } |
} |
bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { |