Index: components/scheduler/renderer/renderer_scheduler.cc |
diff --git a/components/scheduler/renderer/renderer_scheduler.cc b/components/scheduler/renderer/renderer_scheduler.cc |
index 20d663437a961ce27d4ff5dd8bc90dc52a13247f..9f55ccab8bad5e89af2e42af4b80f141275e39c9 100644 |
--- a/components/scheduler/renderer/renderer_scheduler.cc |
+++ b/components/scheduler/renderer/renderer_scheduler.cc |
@@ -4,10 +4,14 @@ |
#include "components/scheduler/renderer/renderer_scheduler.h" |
+#include "base/command_line.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/time/default_tick_clock.h" |
#include "base/trace_event/trace_event.h" |
#include "base/trace_event/trace_event_impl.h" |
#include "components/scheduler/child/scheduler_task_runner_delegate_impl.h" |
+#include "components/scheduler/child/virtual_time_task_runner_delegate.h" |
+#include "components/scheduler/common/scheduler_switches.h" |
#include "components/scheduler/renderer/renderer_scheduler_impl.h" |
namespace scheduler { |
@@ -30,8 +34,18 @@ scoped_ptr<RendererScheduler> RendererScheduler::Create() { |
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug")); |
base::MessageLoop* message_loop = base::MessageLoop::current(); |
- return make_scoped_ptr(new RendererSchedulerImpl( |
- SchedulerTaskRunnerDelegateImpl::Create(message_loop))); |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kEnableVirtualizedTime)) { |
+ return make_scoped_ptr( |
+ new RendererSchedulerImpl(VirtualTimeTaskRunnerDelegate::Create( |
+ message_loop, base::TimeTicks::Now()), |
+ RendererSchedulerImpl::TimeSource::VIRTUAL)); |
+ } else { |
+ return make_scoped_ptr(new RendererSchedulerImpl( |
+ SchedulerTaskRunnerDelegateImpl::Create( |
+ message_loop, make_scoped_ptr(new base::DefaultTickClock())), |
+ RendererSchedulerImpl::TimeSource::NORMAL)); |
+ } |
} |
// static |