OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/renderer/scheduler/renderer_scheduler_impl.h" | 5 #include "content/renderer/scheduler/renderer_scheduler_impl.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "cc/output/begin_frame_args.h" | 8 #include "cc/output/begin_frame_args.h" |
9 #include "cc/test/ordered_simple_task_runner.h" | 9 #include "cc/test/ordered_simple_task_runner.h" |
10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
12 | 12 |
13 namespace content { | 13 namespace content { |
14 | 14 |
15 class RendererSchedulerImplForTest : public RendererSchedulerImpl { | |
16 public: | |
17 RendererSchedulerImplForTest( | |
18 scoped_refptr<cc::OrderedSimpleTaskRunner> task_runner, | |
19 scoped_refptr<cc::TestNowSource> clock) | |
20 : RendererSchedulerImpl(task_runner), clock_(clock) {} | |
21 ~RendererSchedulerImplForTest() override {} | |
22 | |
23 protected: | |
24 base::TimeTicks Now() const override { return clock_->Now(); } | |
25 | |
26 private: | |
27 scoped_refptr<cc::TestNowSource> clock_; | |
28 }; | |
29 | |
30 class RendererSchedulerImplTest : public testing::Test { | 15 class RendererSchedulerImplTest : public testing::Test { |
31 public: | 16 public: |
32 RendererSchedulerImplTest() | 17 RendererSchedulerImplTest() |
33 : clock_(cc::TestNowSource::Create(5000)), | 18 : clock_(cc::TestNowSource::Create(5000)), |
34 mock_task_runner_(new cc::OrderedSimpleTaskRunner(clock_, false)), | 19 mock_task_runner_(new cc::OrderedSimpleTaskRunner(clock_, false)), |
35 scheduler_(new RendererSchedulerImplForTest(mock_task_runner_, clock_)), | 20 scheduler_(new RendererSchedulerImpl(mock_task_runner_)), |
36 default_task_runner_(scheduler_->DefaultTaskRunner()), | 21 default_task_runner_(scheduler_->DefaultTaskRunner()), |
37 compositor_task_runner_(scheduler_->CompositorTaskRunner()), | 22 compositor_task_runner_(scheduler_->CompositorTaskRunner()), |
38 loading_task_runner_(scheduler_->LoadingTaskRunner()), | 23 loading_task_runner_(scheduler_->LoadingTaskRunner()), |
39 idle_task_runner_(scheduler_->IdleTaskRunner()) {} | 24 idle_task_runner_(scheduler_->IdleTaskRunner()) { |
| 25 scheduler_->SetTimeSourceForTesting(clock_); |
| 26 } |
40 ~RendererSchedulerImplTest() override {} | 27 ~RendererSchedulerImplTest() override {} |
41 | 28 |
42 void RunUntilIdle() { mock_task_runner_->RunUntilIdle(); } | 29 void RunUntilIdle() { mock_task_runner_->RunUntilIdle(); } |
43 | 30 |
44 void EnableIdleTasks() { | 31 void EnableIdleTasks() { |
45 scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( | 32 scheduler_->WillBeginFrame(cc::BeginFrameArgs::Create( |
46 BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), | 33 BEGINFRAME_FROM_HERE, clock_->Now(), base::TimeTicks(), |
47 base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); | 34 base::TimeDelta::FromMilliseconds(1000), cc::BeginFrameArgs::NORMAL)); |
48 scheduler_->DidCommitFrameToCompositor(); | 35 scheduler_->DidCommitFrameToCompositor(); |
49 } | 36 } |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
538 FROM_HERE, base::Bind(&PostingYieldingTestTask, scheduler_.get(), | 525 FROM_HERE, base::Bind(&PostingYieldingTestTask, scheduler_.get(), |
539 compositor_task_runner_, true, &should_yield_before, | 526 compositor_task_runner_, true, &should_yield_before, |
540 &should_yield_after)); | 527 &should_yield_after)); |
541 RunUntilIdle(); | 528 RunUntilIdle(); |
542 // We should be able to switch to compositor priority mid-task. | 529 // We should be able to switch to compositor priority mid-task. |
543 EXPECT_FALSE(should_yield_before); | 530 EXPECT_FALSE(should_yield_before); |
544 EXPECT_TRUE(should_yield_after); | 531 EXPECT_TRUE(should_yield_after); |
545 } | 532 } |
546 | 533 |
547 } // namespace content | 534 } // namespace content |
OLD | NEW |