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

Side by Side Diff: components/scheduler/renderer/renderer_scheduler_impl_unittest.cc

Issue 1238483003: Revert of Redirect the MessageLoop's task runner to the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 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 "components/scheduler/renderer/renderer_scheduler_impl.h" 5 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "cc/output/begin_frame_args.h" 9 #include "cc/output/begin_frame_args.h"
10 #include "cc/test/ordered_simple_task_runner.h" 10 #include "cc/test/ordered_simple_task_runner.h"
11 #include "components/scheduler/child/scheduler_task_runner_delegate_for_test.h" 11 #include "components/scheduler/child/nestable_task_runner_for_test.h"
12 #include "components/scheduler/child/scheduler_task_runner_delegate_impl.h" 12 #include "components/scheduler/child/scheduler_message_loop_delegate.h"
13 #include "components/scheduler/child/test_time_source.h" 13 #include "components/scheduler/child/test_time_source.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace scheduler { 17 namespace scheduler {
18 18
19 namespace { 19 namespace {
20 class FakeInputEvent : public blink::WebInputEvent { 20 class FakeInputEvent : public blink::WebInputEvent {
21 public: 21 public:
22 explicit FakeInputEvent(blink::WebInputEvent::Type event_type) 22 explicit FakeInputEvent(blink::WebInputEvent::Type event_type)
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 }; // namespace 141 }; // namespace
142 142
143 class RendererSchedulerImplForTest : public RendererSchedulerImpl { 143 class RendererSchedulerImplForTest : public RendererSchedulerImpl {
144 public: 144 public:
145 using RendererSchedulerImpl::OnIdlePeriodEnded; 145 using RendererSchedulerImpl::OnIdlePeriodEnded;
146 using RendererSchedulerImpl::OnIdlePeriodStarted; 146 using RendererSchedulerImpl::OnIdlePeriodStarted;
147 using RendererSchedulerImpl::Policy; 147 using RendererSchedulerImpl::Policy;
148 using RendererSchedulerImpl::PolicyToString; 148 using RendererSchedulerImpl::PolicyToString;
149 149
150 RendererSchedulerImplForTest( 150 RendererSchedulerImplForTest(
151 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner) 151 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner)
152 : RendererSchedulerImpl(main_task_runner), update_policy_count_(0) {} 152 : RendererSchedulerImpl(main_task_runner), update_policy_count_(0) {}
153 153
154 void UpdatePolicyLocked(UpdateType update_type) override { 154 void UpdatePolicyLocked(UpdateType update_type) override {
155 update_policy_count_++; 155 update_policy_count_++;
156 RendererSchedulerImpl::UpdatePolicyLocked(update_type); 156 RendererSchedulerImpl::UpdatePolicyLocked(update_type);
157 } 157 }
158 158
159 void EnsureUrgentPolicyUpdatePostedOnMainThread() { 159 void EnsureUrgentPolicyUpdatePostedOnMainThread() {
160 base::AutoLock lock(any_thread_lock_); 160 base::AutoLock lock(any_thread_lock_);
161 RendererSchedulerImpl::EnsureUrgentPolicyUpdatePostedOnMainThread( 161 RendererSchedulerImpl::EnsureUrgentPolicyUpdatePostedOnMainThread(
(...skipping 28 matching lines...) Expand all
190 190
191 RendererSchedulerImplTest(base::MessageLoop* message_loop) 191 RendererSchedulerImplTest(base::MessageLoop* message_loop)
192 : clock_(new base::SimpleTestTickClock()), message_loop_(message_loop) { 192 : clock_(new base::SimpleTestTickClock()), message_loop_(message_loop) {
193 clock_->Advance(base::TimeDelta::FromMicroseconds(5000)); 193 clock_->Advance(base::TimeDelta::FromMicroseconds(5000));
194 } 194 }
195 195
196 ~RendererSchedulerImplTest() override {} 196 ~RendererSchedulerImplTest() override {}
197 197
198 void SetUp() override { 198 void SetUp() override {
199 if (message_loop_) { 199 if (message_loop_) {
200 main_task_runner_ = 200 nestable_task_runner_ =
201 SchedulerTaskRunnerDelegateImpl::Create(message_loop_.get()); 201 SchedulerMessageLoopDelegate::Create(message_loop_.get());
202 } else { 202 } else {
203 mock_task_runner_ = make_scoped_refptr( 203 mock_task_runner_ = make_scoped_refptr(
204 new cc::OrderedSimpleTaskRunner(clock_.get(), false)); 204 new cc::OrderedSimpleTaskRunner(clock_.get(), false));
205 main_task_runner_ = 205 nestable_task_runner_ =
206 SchedulerTaskRunnerDelegateForTest::Create(mock_task_runner_); 206 NestableTaskRunnerForTest::Create(mock_task_runner_);
207 } 207 }
208 Initialize( 208 Initialize(make_scoped_ptr(
209 make_scoped_ptr(new RendererSchedulerImplForTest(main_task_runner_))); 209 new RendererSchedulerImplForTest(nestable_task_runner_)));
210 } 210 }
211 211
212 void Initialize(scoped_ptr<RendererSchedulerImplForTest> scheduler) { 212 void Initialize(scoped_ptr<RendererSchedulerImplForTest> scheduler) {
213 scheduler_ = scheduler.Pass(); 213 scheduler_ = scheduler.Pass();
214 default_task_runner_ = scheduler_->DefaultTaskRunner(); 214 default_task_runner_ = scheduler_->DefaultTaskRunner();
215 compositor_task_runner_ = scheduler_->CompositorTaskRunner(); 215 compositor_task_runner_ = scheduler_->CompositorTaskRunner();
216 loading_task_runner_ = scheduler_->LoadingTaskRunner(); 216 loading_task_runner_ = scheduler_->LoadingTaskRunner();
217 idle_task_runner_ = scheduler_->IdleTaskRunner(); 217 idle_task_runner_ = scheduler_->IdleTaskRunner();
218 timer_task_runner_ = scheduler_->TimerTaskRunner(); 218 timer_task_runner_ = scheduler_->TimerTaskRunner();
219 scheduler_->GetSchedulerHelperForTesting()->SetTimeSourceForTesting( 219 scheduler_->GetSchedulerHelperForTesting()->SetTimeSourceForTesting(
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 RendererSchedulerImpl::Policy::FIRST_POLICY, 345 RendererSchedulerImpl::Policy::FIRST_POLICY,
346 RendererSchedulerImpl::Policy::POLICY_COUNT, 346 RendererSchedulerImpl::Policy::POLICY_COUNT,
347 &RendererSchedulerImpl::PolicyToString); 347 &RendererSchedulerImpl::PolicyToString);
348 } 348 }
349 349
350 scoped_ptr<base::SimpleTestTickClock> clock_; 350 scoped_ptr<base::SimpleTestTickClock> clock_;
351 // Only one of mock_task_runner_ or message_loop_ will be set. 351 // Only one of mock_task_runner_ or message_loop_ will be set.
352 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_; 352 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_;
353 scoped_ptr<base::MessageLoop> message_loop_; 353 scoped_ptr<base::MessageLoop> message_loop_;
354 354
355 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner_; 355 scoped_refptr<NestableSingleThreadTaskRunner> nestable_task_runner_;
356 scoped_ptr<RendererSchedulerImplForTest> scheduler_; 356 scoped_ptr<RendererSchedulerImplForTest> scheduler_;
357 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_; 357 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_;
358 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; 358 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
359 scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_; 359 scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_;
360 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_; 360 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_;
361 scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner_; 361 scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner_;
362 362
363 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImplTest); 363 DISALLOW_COPY_AND_ASSIGN(RendererSchedulerImplTest);
364 }; 364 };
365 365
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 RunUntilIdle(); 1197 RunUntilIdle();
1198 EXPECT_EQ(Policy::NORMAL, CurrentPolicy()); 1198 EXPECT_EQ(Policy::NORMAL, CurrentPolicy());
1199 } 1199 }
1200 1200
1201 class RendererSchedulerImplWithMockSchedulerTest 1201 class RendererSchedulerImplWithMockSchedulerTest
1202 : public RendererSchedulerImplTest { 1202 : public RendererSchedulerImplTest {
1203 public: 1203 public:
1204 void SetUp() override { 1204 void SetUp() override {
1205 mock_task_runner_ = make_scoped_refptr( 1205 mock_task_runner_ = make_scoped_refptr(
1206 new cc::OrderedSimpleTaskRunner(clock_.get(), false)); 1206 new cc::OrderedSimpleTaskRunner(clock_.get(), false));
1207 main_task_runner_ = 1207 nestable_task_runner_ =
1208 SchedulerTaskRunnerDelegateForTest::Create(mock_task_runner_); 1208 NestableTaskRunnerForTest::Create(mock_task_runner_);
1209 mock_scheduler_ = new RendererSchedulerImplForTest(main_task_runner_); 1209 mock_scheduler_ = new RendererSchedulerImplForTest(nestable_task_runner_);
1210 Initialize(make_scoped_ptr(mock_scheduler_)); 1210 Initialize(make_scoped_ptr(mock_scheduler_));
1211 } 1211 }
1212 1212
1213 protected: 1213 protected:
1214 RendererSchedulerImplForTest* mock_scheduler_; 1214 RendererSchedulerImplForTest* mock_scheduler_;
1215 }; 1215 };
1216 1216
1217 TEST_F(RendererSchedulerImplWithMockSchedulerTest, 1217 TEST_F(RendererSchedulerImplWithMockSchedulerTest,
1218 OnlyOnePendingUrgentPolicyUpdatey) { 1218 OnlyOnePendingUrgentPolicyUpdatey) {
1219 mock_scheduler_->EnsureUrgentPolicyUpdatePostedOnMainThread(); 1219 mock_scheduler_->EnsureUrgentPolicyUpdatePostedOnMainThread();
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 1789
1790 TEST_F(RendererSchedulerImplTest, ShutdownPreventsPostingOfNewTasks) { 1790 TEST_F(RendererSchedulerImplTest, ShutdownPreventsPostingOfNewTasks) {
1791 scheduler_->Shutdown(); 1791 scheduler_->Shutdown();
1792 std::vector<std::string> run_order; 1792 std::vector<std::string> run_order;
1793 PostTestTasks(&run_order, "D1 C1"); 1793 PostTestTasks(&run_order, "D1 C1");
1794 RunUntilIdle(); 1794 RunUntilIdle();
1795 EXPECT_TRUE(run_order.empty()); 1795 EXPECT_TRUE(run_order.empty());
1796 } 1796 }
1797 1797
1798 } // namespace scheduler 1798 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698