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

Side by Side Diff: cc/test/scheduler_test_common.cc

Issue 267783004: Refactoring the way begin frame sources inside scheduler work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Very minor fixes. Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/scheduler_test_common.h" 5 #include "cc/test/scheduler_test_common.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
(...skipping 16 matching lines...) Expand all
27 return now_src_->Now(); 27 return now_src_->Now();
28 } 28 }
29 29
30 std::string TestDelayBasedTimeSource::TypeString() const { 30 std::string TestDelayBasedTimeSource::TypeString() const {
31 return "TestDelayBasedTimeSource"; 31 return "TestDelayBasedTimeSource";
32 } 32 }
33 33
34 TestDelayBasedTimeSource::~TestDelayBasedTimeSource() { 34 TestDelayBasedTimeSource::~TestDelayBasedTimeSource() {
35 } 35 }
36 36
37 void FakeBeginFrameSource::DidFinishFrame(size_t remaining_frames) {
38 remaining_frames_ = remaining_frames;
39 }
40 void FakeBeginFrameSource::AsValueInto(base::debug::TracedValue* dict) const {
41 dict->SetString("type", "FakeBeginFrameSource");
42 BeginFrameSourceMixIn::AsValueInto(dict);
43 }
44
45 TestBackToBackBeginFrameSource::TestBackToBackBeginFrameSource(
46 scoped_refptr<TestNowSource> now_src,
47 base::SingleThreadTaskRunner* task_runner)
48 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {
49 }
50
51 TestBackToBackBeginFrameSource::~TestBackToBackBeginFrameSource() {
52 }
53
54 base::TimeTicks TestBackToBackBeginFrameSource::Now() {
55 return now_src_->Now();
56 }
57
58 TestSyntheticBeginFrameSource::TestSyntheticBeginFrameSource(
59 scoped_refptr<DelayBasedTimeSource> time_source)
60 : SyntheticBeginFrameSource(time_source) {
61 }
62
63 TestSyntheticBeginFrameSource::~TestSyntheticBeginFrameSource() {
64 }
65
66 TestSchedulerFrameSourcesConstructor::TestSchedulerFrameSourcesConstructor(
67 OrderedSimpleTaskRunner* test_task_runner,
68 TestNowSource* now_src)
69 : test_task_runner_(test_task_runner), now_src_(now_src) {
70 }
71 TestSchedulerFrameSourcesConstructor::~TestSchedulerFrameSourcesConstructor() {
72 }
73
74 BeginFrameSource*
75 TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
76 Scheduler* scheduler) {
77 if (!scheduler->settings_.throttle_frame_production) {
78 TRACE_EVENT1(
79 "cc",
80 "TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource",
81 "source",
82 "TestBackToBackBeginFrameSource");
83 DCHECK(!scheduler->primary_frame_source_internal_);
84 scheduler->primary_frame_source_internal_ =
85 TestBackToBackBeginFrameSource::Create(now_src_, test_task_runner_);
86 return scheduler->primary_frame_source_internal_.get();
87 } else if (scheduler->settings_.begin_frame_scheduling_enabled) {
88 return SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
89 scheduler);
90 } else {
91 TRACE_EVENT1(
92 "cc",
93 "TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource",
94 "source",
95 "TestSyntheticBeginFrameSource");
96 scoped_ptr<TestSyntheticBeginFrameSource> synthetic_source =
97 TestSyntheticBeginFrameSource::Create(
98 now_src_, test_task_runner_, BeginFrameArgs::DefaultInterval());
99
100 DCHECK(!scheduler->vsync_observer_);
101 scheduler->vsync_observer_ = synthetic_source.get();
102
103 DCHECK(!scheduler->primary_frame_source_internal_);
104 scheduler->primary_frame_source_internal_ = synthetic_source.Pass();
105 return scheduler->primary_frame_source_internal_.get();
106 }
107 }
108
109 BeginFrameSource*
110 TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource(
111 Scheduler* scheduler) {
112 TRACE_EVENT1(
113 "cc",
114 "TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource",
115 "source",
116 "TestSyntheticBeginFrameSource");
117 DCHECK(!(scheduler->background_frame_source_internal_));
118 scheduler->background_frame_source_internal_ =
119 TestSyntheticBeginFrameSource::Create(
120 now_src_, test_task_runner_, base::TimeDelta::FromSeconds(1));
121 return scheduler->background_frame_source_internal_.get();
122 }
123
37 TestScheduler::TestScheduler( 124 TestScheduler::TestScheduler(
38 scoped_refptr<TestNowSource> now_src, 125 scoped_refptr<TestNowSource> now_src,
39 SchedulerClient* client, 126 SchedulerClient* client,
40 const SchedulerSettings& scheduler_settings, 127 const SchedulerSettings& scheduler_settings,
41 int layer_tree_host_id, 128 int layer_tree_host_id,
42 const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner) 129 const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner,
130 TestSchedulerFrameSourcesConstructor* frame_sources_constructor)
43 : Scheduler(client, 131 : Scheduler(client,
44 scheduler_settings, 132 scheduler_settings,
45 layer_tree_host_id, 133 layer_tree_host_id,
46 test_task_runner), 134 test_task_runner,
135 frame_sources_constructor),
47 now_src_(now_src), 136 now_src_(now_src),
48 test_task_runner_(test_task_runner.get()) { 137 test_task_runner_(test_task_runner.get()) {
49 if (!settings_.begin_frame_scheduling_enabled) {
50 scoped_refptr<DelayBasedTimeSource> time_source =
51 TestDelayBasedTimeSource::Create(
52 now_src, VSyncInterval(), test_task_runner_);
53 synthetic_begin_frame_source_.reset(
54 new SyntheticBeginFrameSource(this, time_source));
55 }
56 } 138 }
57 139
58 base::TimeTicks TestScheduler::Now() const { 140 base::TimeTicks TestScheduler::Now() const {
59 return now_src_->Now(); 141 return now_src_->Now();
60 } 142 }
61 143
62 TestScheduler::~TestScheduler() { 144 TestScheduler::~TestScheduler() {
63 } 145 }
64 146
65 } // namespace cc 147 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698