Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4490)

Unified Diff: cc/test/scheduler_test_common.h

Issue 267783004: Refactoring the way begin frame sources inside scheduler work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing as per Brian's comments. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..f2d901a8aab99da639cd23c654e08a39aae69d64 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;
};
class FakeDelayBasedTimeSource : public DelayBasedTimeSource {
@@ -73,6 +73,82 @@ 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_; }
+
+ void TestSendBeginFrame(const BeginFrameArgs& args) {
+ 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 TestSchedulerFrameSourcesConstructor
+ : public NON_EXPORTED_BASE(SchedulerFrameSourcesConstructor) {
+ public:
+ explicit TestSchedulerFrameSourcesConstructor(
+ OrderedSimpleTaskRunner* test_task_runner,
+ TestNowSource* now_src);
+ virtual ~TestSchedulerFrameSourcesConstructor();
+
+ protected:
+ virtual BeginFrameSource* ConstructPrimaryFrameSource(
+ Scheduler* scheduler) OVERRIDE;
+ virtual BeginFrameSource* ConstructBackgroundFrameSource(
+ Scheduler* scheduler) OVERRIDE;
+
+ OrderedSimpleTaskRunner* test_task_runner_;
+ TestNowSource* now_src_;
+};
+
class TestScheduler : public Scheduler {
public:
static scoped_ptr<TestScheduler> Create(
@@ -97,10 +173,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();

Powered by Google App Engine
This is Rietveld 408576698