Index: cc/trees/proxy_impl.cc |
diff --git a/cc/trees/proxy_impl.cc b/cc/trees/proxy_impl.cc |
index f0f1c71ec00506dfe48dc76b44cbecba1b0ea6a6..603f9732cce7f64bb74e001333f8edab280d1e11 100644 |
--- a/cc/trees/proxy_impl.cc |
+++ b/cc/trees/proxy_impl.cc |
@@ -19,6 +19,7 @@ |
#include "cc/output/context_provider.h" |
#include "cc/output/output_surface.h" |
#include "cc/scheduler/compositor_timing_history.h" |
+#include "cc/scheduler/delay_based_time_source.h" |
#include "cc/trees/layer_tree_host.h" |
#include "cc/trees/layer_tree_impl.h" |
#include "cc/trees/task_runner_provider.h" |
@@ -85,14 +86,15 @@ ProxyImpl::ProxyImpl( |
BeginFrameSource* frame_source = external_begin_frame_source_.get(); |
if (!scheduler_settings.throttle_frame_production) { |
// Unthrottled source takes precedence over external sources. |
- unthrottled_begin_frame_source_.reset(new BackToBackBeginFrameSource( |
- task_runner_provider_->ImplThreadTaskRunner())); |
+ unthrottled_begin_frame_source_.reset( |
+ new BackToBackBeginFrameSource(base::MakeUnique<DelayBasedTimeSource>( |
+ task_runner_provider_->ImplThreadTaskRunner()))); |
frame_source = unthrottled_begin_frame_source_.get(); |
} |
if (!frame_source) { |
- synthetic_begin_frame_source_.reset(new SyntheticBeginFrameSource( |
- task_runner_provider_->ImplThreadTaskRunner(), |
- BeginFrameArgs::DefaultInterval())); |
+ synthetic_begin_frame_source_.reset( |
+ new DelayBasedBeginFrameSource(base::MakeUnique<DelayBasedTimeSource>( |
+ task_runner_provider_->ImplThreadTaskRunner()))); |
frame_source = synthetic_begin_frame_source_.get(); |
} |
scheduler_ = |
@@ -305,14 +307,8 @@ void ProxyImpl::DidLoseOutputSurfaceOnImplThread() { |
void ProxyImpl::CommitVSyncParameters(base::TimeTicks timebase, |
base::TimeDelta interval) { |
DCHECK(IsImplThread()); |
- if (!synthetic_begin_frame_source_) |
- return; |
- |
- if (interval.is_zero()) { |
- // TODO(brianderson): We should not be receiving 0 intervals. |
- interval = BeginFrameArgs::DefaultInterval(); |
- } |
- synthetic_begin_frame_source_->OnUpdateVSyncParameters(timebase, interval); |
+ if (synthetic_begin_frame_source_) |
+ synthetic_begin_frame_source_->OnUpdateVSyncParameters(timebase, interval); |
} |
void ProxyImpl::SetBeginFrameSource(BeginFrameSource* source) { |