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

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 1055743002: Revert of cc: Make scheduling be driven by vsync for android webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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/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 318584e90469b20fb2afdfe7d6e68fbc543036fd..76affb9aa21cdf1e2ed9d418ab125deb2f07ac72 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -778,6 +778,7 @@
}
void RenderWidgetHostViewAndroid::OnSetNeedsBeginFrames(bool enabled) {
+ DCHECK(using_browser_compositor_);
TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::OnSetNeedsBeginFrames",
"enabled", enabled);
if (enabled)
@@ -1530,6 +1531,10 @@
}
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;
@@ -1577,28 +1582,15 @@
base::TimeDelta vsync_period) {
TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::SendBeginFrame",
"frame_time_us", frame_time.ToInternalValue());
-
- 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());
- if (compositor) {
- // The synchronous compositor synchronously does it's work in this call.
- // It does not use a deadline.
- compositor->BeginFrame(cc::BeginFrameArgs::Create(
- BEGINFRAME_FROM_HERE, frame_time, base::TimeTicks(), vsync_period,
- cc::BeginFrameArgs::NORMAL));
- }
- }
+ 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)));
}
bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
@@ -1933,22 +1925,19 @@
if (!host_ || host_->is_hidden())
return;
- if (outstanding_vsync_requests_ & FLUSH_INPUT) {
- outstanding_vsync_requests_ &= ~FLUSH_INPUT;
+ const uint32 current_vsync_requests = outstanding_vsync_requests_;
+ outstanding_vsync_requests_ = 0;
+
+ if (current_vsync_requests & FLUSH_INPUT)
host_->FlushInput();
- }
-
- if (outstanding_vsync_requests_ & BEGIN_FRAME ||
- outstanding_vsync_requests_ & PERSISTENT_BEGIN_FRAME) {
- outstanding_vsync_requests_ &= ~BEGIN_FRAME;
+
+ if (current_vsync_requests & BEGIN_FRAME ||
+ current_vsync_requests & PERSISTENT_BEGIN_FRAME) {
SendBeginFrame(frame_time, vsync_period);
}
- // This allows for SendBeginFrame and FlushInput to modify
- // outstanding_vsync_requests.
- uint32 outstanding_vsync_requests = outstanding_vsync_requests_;
- outstanding_vsync_requests_ = 0;
- RequestVSyncUpdate(outstanding_vsync_requests);
+ if (current_vsync_requests & PERSISTENT_BEGIN_FRAME)
+ RequestVSyncUpdate(PERSISTENT_BEGIN_FRAME);
}
void RenderWidgetHostViewAndroid::OnAnimate(base::TimeTicks begin_frame_time) {

Powered by Google App Engine
This is Rietveld 408576698