| Index: cc/test/scheduler_test_common.cc
|
| diff --git a/cc/test/scheduler_test_common.cc b/cc/test/scheduler_test_common.cc
|
| index 7001b59ddeadd00e0c4563aa4acdb5f4fceed335..802264e29d478e84116b8943a2e22d5828c21559 100644
|
| --- a/cc/test/scheduler_test_common.cc
|
| +++ b/cc/test/scheduler_test_common.cc
|
| @@ -34,25 +34,113 @@ std::string TestDelayBasedTimeSource::TypeString() const {
|
| TestDelayBasedTimeSource::~TestDelayBasedTimeSource() {
|
| }
|
|
|
| +bool FakeBeginFrameSource::NeedsBeginFrames() const {
|
| + return needs_begin_frames_;
|
| +}
|
| +void FakeBeginFrameSource::SetNeedsBeginFrames(bool needs_begin_frames) {
|
| + needs_begin_frames_ = needs_begin_frames;
|
| +}
|
| +void FakeBeginFrameSource::DidFinishFrame(size_t remaining_frames) {
|
| + remaining_frames_ = remaining_frames;
|
| +}
|
| +void FakeBeginFrameSource::AsValueInto(base::debug::TracedValue* dict) const {
|
| + dict->SetString("type", "FakeBeginFrameSource");
|
| + BeginFrameSource::AsValueInto(dict);
|
| +}
|
| +
|
| +TestBackToBackBeginFrameSource::TestBackToBackBeginFrameSource(
|
| + scoped_refptr<TestNowSource> now_src,
|
| + base::SingleThreadTaskRunner* task_runner)
|
| + : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {
|
| +}
|
| +
|
| +TestBackToBackBeginFrameSource::~TestBackToBackBeginFrameSource() {
|
| +}
|
| +
|
| +base::TimeTicks TestBackToBackBeginFrameSource::Now() {
|
| + return now_src_->Now();
|
| +}
|
| +
|
| +TestSyntheticBeginFrameSource::TestSyntheticBeginFrameSource(
|
| + scoped_refptr<DelayBasedTimeSource> time_source)
|
| + : SyntheticBeginFrameSource(time_source) {
|
| +}
|
| +
|
| +TestSyntheticBeginFrameSource::~TestSyntheticBeginFrameSource() {
|
| +}
|
| +
|
| +TestSchedulerFrameSourcesConstructor::TestSchedulerFrameSourcesConstructor(
|
| + OrderedSimpleTaskRunner* test_task_runner,
|
| + TestNowSource* now_src)
|
| + : test_task_runner_(test_task_runner), now_src_(now_src) {
|
| +}
|
| +TestSchedulerFrameSourcesConstructor::~TestSchedulerFrameSourcesConstructor() {
|
| +}
|
| +
|
| +BeginFrameSource*
|
| +TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
|
| + Scheduler* scheduler) {
|
| + if (!scheduler->settings_.throttle_frame_production) {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource",
|
| + "source",
|
| + "TestBackToBackBeginFrameSource");
|
| + DCHECK(!scheduler->primary_frame_source_internal_);
|
| + scheduler->primary_frame_source_internal_ =
|
| + TestBackToBackBeginFrameSource::Create(now_src_, test_task_runner_);
|
| + return scheduler->primary_frame_source_internal_.get();
|
| + } else if (scheduler->settings_.begin_frame_scheduling_enabled) {
|
| + return SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
|
| + scheduler);
|
| + } else {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource",
|
| + "source",
|
| + "TestSyntheticBeginFrameSource");
|
| + scoped_ptr<TestSyntheticBeginFrameSource> synthetic_source =
|
| + TestSyntheticBeginFrameSource::Create(
|
| + now_src_, test_task_runner_, BeginFrameArgs::DefaultInterval());
|
| +
|
| + DCHECK(!scheduler->vsync_observer_);
|
| + scheduler->vsync_observer_ = synthetic_source.get();
|
| +
|
| + DCHECK(!scheduler->primary_frame_source_internal_);
|
| + scheduler->primary_frame_source_internal_ = synthetic_source.Pass();
|
| + return scheduler->primary_frame_source_internal_.get();
|
| + }
|
| +}
|
| +
|
| +BeginFrameSource*
|
| +TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource(
|
| + Scheduler* scheduler) {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource",
|
| + "source",
|
| + "TestSyntheticBeginFrameSource");
|
| + DCHECK(!(scheduler->background_frame_source_internal_));
|
| + scheduler->background_frame_source_internal_ =
|
| + TestSyntheticBeginFrameSource::Create(
|
| + now_src_, test_task_runner_, base::TimeDelta::FromSeconds(1));
|
| + return scheduler->background_frame_source_internal_.get();
|
| +}
|
| +
|
| TestScheduler::TestScheduler(
|
| scoped_refptr<TestNowSource> now_src,
|
| SchedulerClient* client,
|
| const SchedulerSettings& scheduler_settings,
|
| int layer_tree_host_id,
|
| - const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner)
|
| + const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner,
|
| + TestSchedulerFrameSourcesConstructor* frame_sources_constructor)
|
| : Scheduler(client,
|
| scheduler_settings,
|
| layer_tree_host_id,
|
| - test_task_runner),
|
| + test_task_runner,
|
| + frame_sources_constructor),
|
| now_src_(now_src),
|
| test_task_runner_(test_task_runner.get()) {
|
| - if (!settings_.begin_frame_scheduling_enabled) {
|
| - scoped_refptr<DelayBasedTimeSource> time_source =
|
| - TestDelayBasedTimeSource::Create(
|
| - now_src, VSyncInterval(), test_task_runner_);
|
| - synthetic_begin_frame_source_.reset(
|
| - new SyntheticBeginFrameSource(this, time_source));
|
| - }
|
| }
|
|
|
| base::TimeTicks TestScheduler::Now() const {
|
|
|