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

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

Issue 1424053002: Adds a flag to support "Virtual Time" to the blink scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 1 month 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.h" 5 #include "components/scheduler/renderer/renderer_scheduler.h"
6 6
7 #include "base/command_line.h"
7 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/time/default_tick_clock.h"
8 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
9 #include "base/trace_event/trace_event_impl.h" 11 #include "base/trace_event/trace_event_impl.h"
10 #include "components/scheduler/child/scheduler_task_runner_delegate_impl.h" 12 #include "components/scheduler/child/scheduler_tqm_delegate_impl.h"
13 #include "components/scheduler/child/virtual_time_tqm_delegate.h"
14 #include "components/scheduler/common/scheduler_switches.h"
11 #include "components/scheduler/renderer/renderer_scheduler_impl.h" 15 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
12 16
13 namespace scheduler { 17 namespace scheduler {
14 18
15 RendererScheduler::RendererScheduler() { 19 RendererScheduler::RendererScheduler() {
16 } 20 }
17 21
18 RendererScheduler::~RendererScheduler() { 22 RendererScheduler::~RendererScheduler() {
19 } 23 }
20 24
21 // static 25 // static
22 scoped_ptr<RendererScheduler> RendererScheduler::Create() { 26 scoped_ptr<RendererScheduler> RendererScheduler::Create() {
23 // Ensure worker.scheduler, worker.scheduler.debug and 27 // Ensure worker.scheduler, worker.scheduler.debug and
24 // renderer.scheduler.debug appear as an option in about://tracing 28 // renderer.scheduler.debug appear as an option in about://tracing
25 base::trace_event::TraceLog::GetCategoryGroupEnabled( 29 base::trace_event::TraceLog::GetCategoryGroupEnabled(
26 TRACE_DISABLED_BY_DEFAULT("worker.scheduler")); 30 TRACE_DISABLED_BY_DEFAULT("worker.scheduler"));
27 base::trace_event::TraceLog::GetCategoryGroupEnabled( 31 base::trace_event::TraceLog::GetCategoryGroupEnabled(
28 TRACE_DISABLED_BY_DEFAULT("worker.scheduler.debug")); 32 TRACE_DISABLED_BY_DEFAULT("worker.scheduler.debug"));
29 base::trace_event::TraceLog::GetCategoryGroupEnabled( 33 base::trace_event::TraceLog::GetCategoryGroupEnabled(
30 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug")); 34 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"));
31 35
32 base::MessageLoop* message_loop = base::MessageLoop::current(); 36 base::MessageLoop* message_loop = base::MessageLoop::current();
33 return make_scoped_ptr(new RendererSchedulerImpl( 37 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
34 SchedulerTaskRunnerDelegateImpl::Create(message_loop))); 38 if (command_line->HasSwitch(switches::kEnableVirtualizedTime)) {
39 return make_scoped_ptr(new RendererSchedulerImpl(
40 VirtualTimeTqmDelegate::Create(message_loop, base::TimeTicks::Now())));
41 } else {
42 return make_scoped_ptr(
43 new RendererSchedulerImpl(SchedulerTqmDelegateImpl::Create(
44 message_loop, make_scoped_ptr(new base::DefaultTickClock()))));
45 }
35 } 46 }
36 47
37 // static 48 // static
38 const char* RendererScheduler::UseCaseToString(UseCase use_case) { 49 const char* RendererScheduler::UseCaseToString(UseCase use_case) {
39 switch (use_case) { 50 switch (use_case) {
40 case UseCase::NONE: 51 case UseCase::NONE:
41 return "none"; 52 return "none";
42 case UseCase::COMPOSITOR_GESTURE: 53 case UseCase::COMPOSITOR_GESTURE:
43 return "compositor_gesture"; 54 return "compositor_gesture";
44 case UseCase::MAIN_THREAD_GESTURE: 55 case UseCase::MAIN_THREAD_GESTURE:
(...skipping 16 matching lines...) Expand all
61 return "event_consumed_by_compositor"; 72 return "event_consumed_by_compositor";
62 case InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD: 73 case InputEventState::EVENT_FORWARDED_TO_MAIN_THREAD:
63 return "event_forwarded_to_main_thread"; 74 return "event_forwarded_to_main_thread";
64 default: 75 default:
65 NOTREACHED(); 76 NOTREACHED();
66 return nullptr; 77 return nullptr;
67 } 78 }
68 } 79 }
69 80
70 } // namespace scheduler 81 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/renderer/idle_time_estimator_unittest.cc ('k') | components/scheduler/renderer/renderer_scheduler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698