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..8a7fa6adc75b9732c50f0d53c2f58da70241a365 100644 |
--- a/cc/test/scheduler_test_common.cc |
+++ b/cc/test/scheduler_test_common.cc |
@@ -34,6 +34,45 @@ 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, |
+ base::TimeTicks initial_timebase, |
+ base::TimeDelta initial_interval) |
+ : SyntheticBeginFrameSource(time_source, |
+ initial_timebase, |
+ initial_interval) { |
+} |
+ |
+TestSyntheticBeginFrameSource::~TestSyntheticBeginFrameSource() { |
+} |
+ |
TestScheduler::TestScheduler( |
scoped_refptr<TestNowSource> now_src, |
SchedulerClient* client, |
@@ -46,13 +85,25 @@ TestScheduler::TestScheduler( |
test_task_runner), |
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)); |
+} |
+ |
+BeginFrameSource* TestScheduler::GetPrimaryBeginFrameSource() { |
+ if (!settings_.throttle_frame_production) { |
+ primary_frame_source_internal_ = |
+ TestBackToBackBeginFrameSource::Create(now_src_, task_runner_.get()); |
+ return primary_frame_source_internal_.get(); |
+ } else if (!settings_.begin_frame_scheduling_enabled) { |
+ primary_frame_source_internal_ = TestSyntheticBeginFrameSource::Create( |
+ now_src_, test_task_runner_, BeginFrameArgs::DefaultInterval()); |
+ return primary_frame_source_internal_.get(); |
} |
+ return Scheduler::GetPrimaryBeginFrameSource(); |
+} |
+ |
+BeginFrameSource* TestScheduler::GetBackgroundBeginFrameSource() { |
+ background_frame_source_internal_ = TestSyntheticBeginFrameSource::Create( |
+ now_src_, test_task_runner_, base::TimeDelta::FromSeconds(1)); |
+ return background_frame_source_internal_.get(); |
} |
base::TimeTicks TestScheduler::Now() const { |