Index: content/renderer/scheduler/renderer_scheduler.cc |
diff --git a/content/renderer/scheduler/renderer_scheduler.cc b/content/renderer/scheduler/renderer_scheduler.cc |
index ec30f7f5eb9f26b4d74ed194d60009c7f5fa7d10..56e29f568d44893e015f7ad5a52962bf0b0ca543 100644 |
--- a/content/renderer/scheduler/renderer_scheduler.cc |
+++ b/content/renderer/scheduler/renderer_scheduler.cc |
@@ -4,7 +4,11 @@ |
#include "content/renderer/scheduler/renderer_scheduler.h" |
+#include "base/command_line.h" |
+#include "base/message_loop/message_loop_proxy.h" |
+#include "content/public/common/content_switches.h" |
#include "content/renderer/scheduler/null_renderer_scheduler.h" |
+#include "content/renderer/scheduler/renderer_scheduler_impl.h" |
namespace content { |
@@ -16,8 +20,19 @@ RendererScheduler::~RendererScheduler() { |
// static |
scoped_ptr<RendererScheduler> RendererScheduler::Create() { |
- // TODO(rmcilroy): Use the RendererSchedulerImpl when the scheduler is enabled |
+ // FIXME: Some chromeos browser tests timeout with the scheduler enabled. |
+ // See crbug.com/444574 |
+#ifdef OS_CHROMEOS |
return make_scoped_ptr(new NullRendererScheduler()); |
+#endif |
+ |
+ CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kDisableBlinkScheduler)) { |
+ return make_scoped_ptr(new NullRendererScheduler()); |
+ } else { |
+ return make_scoped_ptr( |
+ new RendererSchedulerImpl(base::MessageLoopProxy::current())); |
+ } |
} |
} // namespace content |