| Index: cc/test/scheduler_test_common.h
 | 
| diff --git a/cc/test/scheduler_test_common.h b/cc/test/scheduler_test_common.h
 | 
| index 596358a205877ad26517cbcd54182ab602348254..a50233653410836c44189d5d53381dfaf0d6d3b3 100644
 | 
| --- a/cc/test/scheduler_test_common.h
 | 
| +++ b/cc/test/scheduler_test_common.h
 | 
| @@ -5,10 +5,14 @@
 | 
|  #ifndef CC_TEST_SCHEDULER_TEST_COMMON_H_
 | 
|  #define CC_TEST_SCHEDULER_TEST_COMMON_H_
 | 
|  
 | 
| +#include <string>
 | 
| +
 | 
|  #include "base/basictypes.h"
 | 
|  #include "base/memory/scoped_ptr.h"
 | 
|  #include "base/time/time.h"
 | 
|  #include "cc/scheduler/delay_based_time_source.h"
 | 
| +#include "cc/scheduler/scheduler.h"
 | 
| +#include "cc/test/ordered_simple_task_runner.h"
 | 
|  #include "testing/gtest/include/gtest/gtest.h"
 | 
|  
 | 
|  namespace cc {
 | 
| @@ -46,6 +50,76 @@ class FakeDelayBasedTimeSource : public DelayBasedTimeSource {
 | 
|    base::TimeTicks now_;
 | 
|  };
 | 
|  
 | 
| +class TestDelayBasedTimeSource : public DelayBasedTimeSource {
 | 
| + public:
 | 
| +  static scoped_refptr<TestDelayBasedTimeSource> Create(
 | 
| +      scoped_refptr<TestNowSource> now_src,
 | 
| +      base::TimeDelta interval,
 | 
| +      OrderedSimpleTaskRunner* task_runner) {
 | 
| +    return make_scoped_refptr(
 | 
| +        new TestDelayBasedTimeSource(now_src, interval, task_runner));
 | 
| +  }
 | 
| +
 | 
| + protected:
 | 
| +  TestDelayBasedTimeSource(scoped_refptr<TestNowSource> now_src,
 | 
| +                           base::TimeDelta interval,
 | 
| +                           OrderedSimpleTaskRunner* task_runner);
 | 
| +
 | 
| +  // Overridden from DelayBasedTimeSource
 | 
| +  virtual ~TestDelayBasedTimeSource();
 | 
| +  virtual base::TimeTicks Now() const OVERRIDE;
 | 
| +  virtual std::string TypeString() const OVERRIDE;
 | 
| +
 | 
| +  scoped_refptr<TestNowSource> now_src_;
 | 
| +};
 | 
| +
 | 
| +class TestScheduler : public Scheduler {
 | 
| + public:
 | 
| +  static scoped_ptr<TestScheduler> Create(
 | 
| +      scoped_refptr<TestNowSource> now_src,
 | 
| +      SchedulerClient* client,
 | 
| +      const SchedulerSettings& scheduler_settings,
 | 
| +      int layer_tree_host_id) {
 | 
| +    // A bunch of tests require Now() to be > BeginFrameArgs::DefaultInterval()
 | 
| +    now_src->AdvanceNow(base::TimeDelta::FromMilliseconds(100));
 | 
| +
 | 
| +    scoped_refptr<OrderedSimpleTaskRunner> test_task_runner =
 | 
| +        new OrderedSimpleTaskRunner(now_src, true);
 | 
| +    return make_scoped_ptr(new TestScheduler(now_src,
 | 
| +                                             client,
 | 
| +                                             scheduler_settings,
 | 
| +                                             layer_tree_host_id,
 | 
| +                                             test_task_runner));
 | 
| +  }
 | 
| +
 | 
| +  // Extra test helper functionality
 | 
| +  bool IsBeginRetroFrameArgsEmpty() const {
 | 
| +    return begin_retro_frame_args_.empty();
 | 
| +  }
 | 
| +
 | 
| +  bool IsSyntheticBeginFrameSourceActive() const {
 | 
| +    return synthetic_begin_frame_source_->IsActive();
 | 
| +  }
 | 
| +
 | 
| +  OrderedSimpleTaskRunner& task_runner() { return *test_task_runner_; }
 | 
| +
 | 
| +  virtual ~TestScheduler();
 | 
| +
 | 
| + protected:
 | 
| +  // Overridden from 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);
 | 
| +
 | 
| +  scoped_refptr<TestNowSource> now_src_;
 | 
| +  OrderedSimpleTaskRunner* test_task_runner_;
 | 
| +};
 | 
| +
 | 
|  }  // namespace cc
 | 
|  
 | 
|  #endif  // CC_TEST_SCHEDULER_TEST_COMMON_H_
 | 
| 
 |