Chromium Code Reviews| Index: cc/test/scheduler_test_common.h |
| diff --git a/cc/test/scheduler_test_common.h b/cc/test/scheduler_test_common.h |
| index a50233653410836c44189d5d53381dfaf0d6d3b3..b1be879fa3095929f157ab68394240c1825b59de 100644 |
| --- a/cc/test/scheduler_test_common.h |
| +++ b/cc/test/scheduler_test_common.h |
| @@ -27,7 +27,7 @@ class FakeTimeSourceClient : public TimeSourceClient { |
| virtual void OnTimerTick() OVERRIDE; |
| protected: |
| - bool tick_called_; |
| + bool tick_called_ = false; |
|
brianderson
2014/09/24 06:03:06
Initialize in constructor.
mithro-old
2014/09/24 17:14:55
Removed.
|
| }; |
| class FakeDelayBasedTimeSource : public DelayBasedTimeSource { |
| @@ -73,6 +73,87 @@ class TestDelayBasedTimeSource : public DelayBasedTimeSource { |
| scoped_refptr<TestNowSource> now_src_; |
| }; |
| +struct FakeBeginFrameSource : public BeginFrameSource { |
| + bool needs_begin_frames_ = false; |
| + bool remaining_frames_ = false; |
| + |
| + BeginFrameObserver* GetObserver() { return observer_; } |
| + |
| + BeginFrameObserver::BeginFrameArgsStatus TestOnBeginFrame( |
| + const BeginFrameArgs& args) { |
| + return CallOnBeginFrame(args); |
| + } |
| + |
| + // BeginFrameSource |
| + virtual bool NeedsBeginFrames() const OVERRIDE; |
| + virtual void SetNeedsBeginFrames(bool needs_begin_frames) OVERRIDE; |
| + virtual void DidFinishFrame(size_t remaining_frames) OVERRIDE; |
| + |
| + virtual void AsValueInto(base::debug::TracedValue* dict) const OVERRIDE; |
| + |
| + virtual ~FakeBeginFrameSource() {} |
| +}; |
| + |
| +class TestBackToBackBeginFrameSource : public BackToBackBeginFrameSource { |
| + public: |
| + virtual ~TestBackToBackBeginFrameSource(); |
| + |
| + static scoped_ptr<TestBackToBackBeginFrameSource> Create( |
| + scoped_refptr<TestNowSource> now_src, |
| + base::SingleThreadTaskRunner* task_runner) { |
| + return make_scoped_ptr( |
| + new TestBackToBackBeginFrameSource(now_src, task_runner)); |
| + } |
| + |
| + protected: |
| + TestBackToBackBeginFrameSource(scoped_refptr<TestNowSource> now_src, |
| + base::SingleThreadTaskRunner* task_runner); |
| + |
| + virtual base::TimeTicks Now() OVERRIDE; |
| + |
| + scoped_refptr<TestNowSource> now_src_; |
| +}; |
| + |
| +class TestSyntheticBeginFrameSource : public SyntheticBeginFrameSource { |
| + public: |
| + virtual ~TestSyntheticBeginFrameSource(); |
| + |
| + static scoped_ptr<TestSyntheticBeginFrameSource> Create( |
| + scoped_refptr<TestNowSource> now_src, |
| + OrderedSimpleTaskRunner* task_runner, |
| + base::TimeDelta initial_interval) { |
| + return make_scoped_ptr( |
| + new TestSyntheticBeginFrameSource(TestDelayBasedTimeSource::Create( |
| + now_src, initial_interval, task_runner))); |
| + } |
| + |
| + protected: |
| + TestSyntheticBeginFrameSource( |
| + scoped_refptr<DelayBasedTimeSource> time_source); |
| +}; |
| + |
| +class TestScheduler; |
| +class TestSchedulerFrameSourcesConstructor |
| + : public SchedulerFrameSourcesConstructor { |
| + public: |
| + virtual ~TestSchedulerFrameSourcesConstructor(); |
| + |
| + protected: |
| + virtual BeginFrameSource* ConstructPrimaryFrameSource( |
| + Scheduler* scheduler) OVERRIDE; |
| + virtual BeginFrameSource* ConstructBackgroundFrameSource( |
| + Scheduler* scheduler) OVERRIDE; |
| + |
| + OrderedSimpleTaskRunner* test_task_runner_; |
| + TestNowSource* now_src_; |
| + |
| + protected: |
| + explicit TestSchedulerFrameSourcesConstructor( |
| + OrderedSimpleTaskRunner* test_task_runner, |
| + TestNowSource* now_src); |
| + friend class TestScheduler; |
| +}; |
| + |
| class TestScheduler : public Scheduler { |
| public: |
| static scoped_ptr<TestScheduler> Create( |
| @@ -85,11 +166,14 @@ class TestScheduler : public Scheduler { |
| scoped_refptr<OrderedSimpleTaskRunner> test_task_runner = |
| new OrderedSimpleTaskRunner(now_src, true); |
| + TestSchedulerFrameSourcesConstructor frame_sources_constructor( |
| + test_task_runner.get(), now_src.get()); |
| return make_scoped_ptr(new TestScheduler(now_src, |
| client, |
| scheduler_settings, |
| layer_tree_host_id, |
| - test_task_runner)); |
| + test_task_runner, |
| + &frame_sources_constructor)); |
| } |
| // Extra test helper functionality |
| @@ -97,10 +181,7 @@ class TestScheduler : public Scheduler { |
| return begin_retro_frame_args_.empty(); |
| } |
| - bool IsSyntheticBeginFrameSourceActive() const { |
| - return synthetic_begin_frame_source_->IsActive(); |
| - } |
| - |
| + BeginFrameSource& frame_source() { return *frame_source_; } |
| OrderedSimpleTaskRunner& task_runner() { return *test_task_runner_; } |
| virtual ~TestScheduler(); |
| @@ -110,11 +191,13 @@ class TestScheduler : public Scheduler { |
| virtual base::TimeTicks Now() const OVERRIDE; |
| private: |
| - TestScheduler(scoped_refptr<TestNowSource> now_src, |
| - SchedulerClient* client, |
| - const SchedulerSettings& scheduler_settings, |
| - int layer_tree_host_id, |
| - const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner); |
| + TestScheduler( |
| + scoped_refptr<TestNowSource> now_src, |
| + SchedulerClient* client, |
| + const SchedulerSettings& scheduler_settings, |
| + int layer_tree_host_id, |
| + const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner, |
| + TestSchedulerFrameSourcesConstructor* frame_sources_constructor); |
| scoped_refptr<TestNowSource> now_src_; |
| OrderedSimpleTaskRunner* test_task_runner_; |