| Index: components/scheduler/renderer/renderer_scheduler.cc
|
| diff --git a/components/scheduler/renderer/renderer_scheduler.cc b/components/scheduler/renderer/renderer_scheduler.cc
|
| index aedc3c6f40bf0c7ba8c43fcf5b13f304a6980503..19a7e00b59644ada27456a9c35df6a4f2cd2202c 100644
|
| --- a/components/scheduler/renderer/renderer_scheduler.cc
|
| +++ b/components/scheduler/renderer/renderer_scheduler.cc
|
| @@ -5,6 +5,7 @@
|
| #include "components/scheduler/renderer/renderer_scheduler.h"
|
|
|
| #include "base/command_line.h"
|
| +#include "base/feature_list.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/time/default_tick_clock.h"
|
| #include "base/trace_event/trace_event.h"
|
| @@ -15,6 +16,10 @@
|
| #include "components/scheduler/renderer/renderer_scheduler_impl.h"
|
|
|
| namespace scheduler {
|
| +namespace {
|
| +const base::Feature kExpensiveTaskBlockingPolicyFeature{
|
| + "SchedulerExpensiveTaskBlocking", base::FEATURE_DISABLED_BY_DEFAULT};
|
| +}
|
|
|
| RendererScheduler::RendererScheduler() {
|
| }
|
| @@ -33,16 +38,23 @@ scoped_ptr<RendererScheduler> RendererScheduler::Create() {
|
| base::trace_event::TraceLog::GetCategoryGroupEnabled(
|
| TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"));
|
|
|
| + scoped_ptr<RendererSchedulerImpl> scheduler;
|
| base::MessageLoop* message_loop = base::MessageLoop::current();
|
| base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| if (command_line->HasSwitch(switches::kEnableVirtualizedTime)) {
|
| - return make_scoped_ptr(new RendererSchedulerImpl(
|
| + scheduler.reset(new RendererSchedulerImpl(
|
| VirtualTimeTqmDelegate::Create(message_loop, base::TimeTicks::Now())));
|
| } else {
|
| - return make_scoped_ptr(
|
| - new RendererSchedulerImpl(SchedulerTqmDelegateImpl::Create(
|
| - message_loop, make_scoped_ptr(new base::DefaultTickClock()))));
|
| + scheduler.reset(new RendererSchedulerImpl(SchedulerTqmDelegateImpl::Create(
|
| + message_loop, make_scoped_ptr(new base::DefaultTickClock()))));
|
| + }
|
| +
|
| + // Runtime features are not currently available in html_viewer.
|
| + if (base::FeatureList::GetInstance()) {
|
| + scheduler->SetExpensiveTaskBlockingAllowed(
|
| + base::FeatureList::IsEnabled(kExpensiveTaskBlockingPolicyFeature));
|
| }
|
| + return make_scoped_ptr<RendererScheduler>(scheduler.release());
|
| }
|
|
|
| // static
|
|
|