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

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: Testing.. 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 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 bool FakeBeginFrameSource::NeedsBeginFrames() const {
38 return needs_begin_frames_;
39 }
40 void FakeBeginFrameSource::SetNeedsBeginFrames(bool needs_begin_frames) {
41 needs_begin_frames_ = needs_begin_frames;
42 }
43 void FakeBeginFrameSource::DidFinishFrame(size_t remaining_frames) {
44 remaining_frames_ = remaining_frames;
45 }
46 void FakeBeginFrameSource::AsValueInto(base::debug::TracedValue* dict) const {
47 dict->SetString("type", "FakeBeginFrameSource");
48 BeginFrameSource::AsValueInto(dict);
49 }
50
51 TestBackToBackBeginFrameSource::TestBackToBackBeginFrameSource(
52 scoped_refptr<TestNowSource> now_src,
53 base::SingleThreadTaskRunner* task_runner)
54 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {
55 }
56
57 TestBackToBackBeginFrameSource::~TestBackToBackBeginFrameSource() {
58 }
59
60 base::TimeTicks TestBackToBackBeginFrameSource::Now() {
61 return now_src_->Now();
62 }
63
64 TestSyntheticBeginFrameSource::TestSyntheticBeginFrameSource(
65 scoped_refptr<DelayBasedTimeSource> time_source,
66 base::TimeTicks initial_timebase,
67 base::TimeDelta initial_interval)
68 : SyntheticBeginFrameSource(time_source,
69 initial_timebase,
70 initial_interval) {
71 }
72
73 TestSyntheticBeginFrameSource::~TestSyntheticBeginFrameSource() {
74 }
75
37 TestScheduler::TestScheduler( 76 TestScheduler::TestScheduler(
38 scoped_refptr<TestNowSource> now_src, 77 scoped_refptr<TestNowSource> now_src,
39 SchedulerClient* client, 78 SchedulerClient* client,
40 const SchedulerSettings& scheduler_settings, 79 const SchedulerSettings& scheduler_settings,
41 int layer_tree_host_id, 80 int layer_tree_host_id,
42 const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner) 81 const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner)
43 : Scheduler(client, 82 : Scheduler(client,
44 scheduler_settings, 83 scheduler_settings,
45 layer_tree_host_id, 84 layer_tree_host_id,
46 test_task_runner), 85 test_task_runner),
47 now_src_(now_src), 86 now_src_(now_src),
48 test_task_runner_(test_task_runner.get()) { 87 test_task_runner_(test_task_runner.get()) {
49 if (!settings_.begin_frame_scheduling_enabled) { 88 }
50 scoped_refptr<DelayBasedTimeSource> time_source = 89
51 TestDelayBasedTimeSource::Create( 90 BeginFrameSource* TestScheduler::GetPrimaryBeginFrameSource() {
52 now_src, VSyncInterval(), test_task_runner_); 91 if (!settings_.throttle_frame_production) {
53 synthetic_begin_frame_source_.reset( 92 primary_frame_source_internal_ =
54 new SyntheticBeginFrameSource(this, time_source)); 93 TestBackToBackBeginFrameSource::Create(now_src_, task_runner_.get());
94 return primary_frame_source_internal_.get();
95 } else if (!settings_.begin_frame_scheduling_enabled) {
96 primary_frame_source_internal_ = TestSyntheticBeginFrameSource::Create(
97 now_src_, test_task_runner_, BeginFrameArgs::DefaultInterval());
98 return primary_frame_source_internal_.get();
55 } 99 }
100 return Scheduler::GetPrimaryBeginFrameSource();
101 }
102
103 BeginFrameSource* TestScheduler::GetBackgroundBeginFrameSource() {
104 background_frame_source_internal_ = TestSyntheticBeginFrameSource::Create(
105 now_src_, test_task_runner_, base::TimeDelta::FromSeconds(1));
106 return background_frame_source_internal_.get();
56 } 107 }
57 108
58 base::TimeTicks TestScheduler::Now() const { 109 base::TimeTicks TestScheduler::Now() const {
59 return now_src_->Now(); 110 return now_src_->Now();
60 } 111 }
61 112
62 TestScheduler::~TestScheduler() { 113 TestScheduler::~TestScheduler() {
63 } 114 }
64 115
65 } // namespace cc 116 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698