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

Side by Side Diff: cc/surfaces/display_scheduler_unittest.cc

Issue 1821863002: Hook up ui::Compositor to Display's BeginFrameSource (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unittests Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/surfaces/display_scheduler.h" 5 #include "cc/surfaces/display_scheduler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/test/null_task_runner.h" 8 #include "base/test/null_task_runner.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 10 matching lines...) Expand all
21 class FakeDisplaySchedulerClient : public DisplaySchedulerClient { 21 class FakeDisplaySchedulerClient : public DisplaySchedulerClient {
22 public: 22 public:
23 FakeDisplaySchedulerClient() : draw_and_swap_count_(0) {} 23 FakeDisplaySchedulerClient() : draw_and_swap_count_(0) {}
24 24
25 ~FakeDisplaySchedulerClient() override {} 25 ~FakeDisplaySchedulerClient() override {}
26 26
27 bool DrawAndSwap() override { 27 bool DrawAndSwap() override {
28 draw_and_swap_count_++; 28 draw_and_swap_count_++;
29 return true; 29 return true;
30 } 30 }
31 void UpdateSchedulerBeginFrameSource(BeginFrameSource* source) override {}
31 32
32 void Reset() { draw_and_swap_count_ = 0; } 33 void Reset() { draw_and_swap_count_ = 0; }
33 34
34 int draw_and_swap_count() const { return draw_and_swap_count_; } 35 int draw_and_swap_count() const { return draw_and_swap_count_; }
35 36
36 protected: 37 protected:
37 int draw_and_swap_count_; 38 int draw_and_swap_count_;
38 }; 39 };
39 40
40 class TestDisplayScheduler : public DisplayScheduler { 41 class TestDisplayScheduler : public DisplayScheduler {
41 public: 42 public:
42 TestDisplayScheduler(DisplaySchedulerClient* client, 43 TestDisplayScheduler(DisplaySchedulerClient* client,
43 BeginFrameSource* begin_frame_source, 44 BeginFrameSource* begin_frame_source,
44 base::SingleThreadTaskRunner* task_runner, 45 base::SingleThreadTaskRunner* task_runner,
45 int max_pending_swaps) 46 int max_pending_swaps,
47 const RendererSettings& settings)
46 : DisplayScheduler(client, 48 : DisplayScheduler(client,
47 begin_frame_source, 49 begin_frame_source,
48 task_runner, 50 task_runner,
49 max_pending_swaps), 51 max_pending_swaps,
52 settings),
50 scheduler_begin_frame_deadline_count_(0) {} 53 scheduler_begin_frame_deadline_count_(0) {}
51 54
52 base::TimeTicks DesiredBeginFrameDeadlineTimeForTest() { 55 base::TimeTicks DesiredBeginFrameDeadlineTimeForTest() {
53 return DesiredBeginFrameDeadlineTime(); 56 return DesiredBeginFrameDeadlineTime();
54 } 57 }
55 58
56 void BeginFrameDeadlineForTest() { OnBeginFrameDeadline(); } 59 void BeginFrameDeadlineForTest() { OnBeginFrameDeadline(); }
57 60
58 void ScheduleBeginFrameDeadline() override { 61 void ScheduleBeginFrameDeadline() override {
59 scheduler_begin_frame_deadline_count_++; 62 scheduler_begin_frame_deadline_count_++;
(...skipping 10 matching lines...) Expand all
70 73
71 class DisplaySchedulerTest : public testing::Test { 74 class DisplaySchedulerTest : public testing::Test {
72 public: 75 public:
73 DisplaySchedulerTest() 76 DisplaySchedulerTest()
74 : now_src_(new base::SimpleTestTickClock()), 77 : now_src_(new base::SimpleTestTickClock()),
75 task_runner_(new base::NullTaskRunner), 78 task_runner_(new base::NullTaskRunner),
76 client_(new FakeDisplaySchedulerClient), 79 client_(new FakeDisplaySchedulerClient),
77 scheduler_(new TestDisplayScheduler(client_.get(), 80 scheduler_(new TestDisplayScheduler(client_.get(),
78 &fake_begin_frame_source_, 81 &fake_begin_frame_source_,
79 task_runner_.get(), 82 task_runner_.get(),
80 kMaxPendingSwaps)) { 83 kMaxPendingSwaps,
84 settings_)) {
81 now_src_->Advance(base::TimeDelta::FromMicroseconds(10000)); 85 now_src_->Advance(base::TimeDelta::FromMicroseconds(10000));
82 } 86 }
83 87
84 ~DisplaySchedulerTest() override {} 88 ~DisplaySchedulerTest() override {}
85 89
86 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); } 90 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); }
87 91
88 void BeginFrameForTest() { 92 void BeginFrameForTest() {
89 base::TimeTicks frame_time = now_src_->NowTicks(); 93 base::TimeTicks frame_time = now_src_->NowTicks();
90 base::TimeDelta interval = BeginFrameArgs::DefaultInterval(); 94 base::TimeDelta interval = BeginFrameArgs::DefaultInterval();
91 base::TimeTicks deadline = frame_time + interval; 95 base::TimeTicks deadline = frame_time + interval;
92 fake_begin_frame_source_.TestOnBeginFrame( 96 fake_begin_frame_source_.TestOnBeginFrame(
93 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, 97 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline,
94 interval, BeginFrameArgs::NORMAL)); 98 interval, BeginFrameArgs::NORMAL));
95 } 99 }
96 100
97 protected: 101 protected:
98 base::SimpleTestTickClock& now_src() { return *now_src_; } 102 base::SimpleTestTickClock& now_src() { return *now_src_; }
99 FakeDisplaySchedulerClient& client() { return *client_; } 103 FakeDisplaySchedulerClient& client() { return *client_; }
100 DisplayScheduler& scheduler() { return *scheduler_; } 104 DisplayScheduler& scheduler() { return *scheduler_; }
101 105
102 FakeBeginFrameSource fake_begin_frame_source_; 106 FakeBeginFrameSource fake_begin_frame_source_;
107 RendererSettings settings_;
103 108
104 scoped_ptr<base::SimpleTestTickClock> now_src_; 109 scoped_ptr<base::SimpleTestTickClock> now_src_;
105 scoped_refptr<base::NullTaskRunner> task_runner_; 110 scoped_refptr<base::NullTaskRunner> task_runner_;
106 scoped_ptr<FakeDisplaySchedulerClient> client_; 111 scoped_ptr<FakeDisplaySchedulerClient> client_;
107 scoped_ptr<TestDisplayScheduler> scheduler_; 112 scoped_ptr<TestDisplayScheduler> scheduler_;
108 }; 113 };
109 114
110 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) { 115 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) {
111 SurfaceId root_surface_id1(1); 116 SurfaceId root_surface_id1(1);
112 SurfaceId root_surface_id2(2); 117 SurfaceId root_surface_id2(2);
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 442
438 scheduler_->SetRootSurfaceResourcesLocked(true); 443 scheduler_->SetRootSurfaceResourcesLocked(true);
439 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 444 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
440 445
441 scheduler_->OutputSurfaceLost(); 446 scheduler_->OutputSurfaceLost();
442 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 447 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
443 } 448 }
444 449
445 } // namespace 450 } // namespace
446 } // namespace cc 451 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698