Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index 7e6b1ae60c71ec015b3357baacba54e64973a02a..35a4dc38384c28c749414ee77f0b774fc932fc85 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -20,6 +20,9 @@ |
#include "base/strings/string_number_conversions.h" |
#include "base/synchronization/lock.h" |
#include "base/sys_info.h" |
+#include "base/task_scheduler/post_task.h" |
+#include "base/task_scheduler/task_scheduler.h" |
+#include "base/task_scheduler/task_traits.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "base/time/time.h" |
#include "base/values.h" |
@@ -245,6 +248,14 @@ void RenderWidgetCompositor::Initialize(float device_scale_factor, |
params.main_task_runner = |
compositor_deps_->GetCompositorMainThreadTaskRunner(); |
params.mutator_host = animation_host_.get(); |
+ if (base::TaskScheduler::GetInstance()) { |
+ params.image_worker_task_runner = |
+ base::CreateSequencedTaskRunnerWithTraits( |
+ base::TaskTraits() |
+ .WithPriority(base::TaskPriority::BACKGROUND) |
+ .WithShutdownBehavior( |
+ base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN)); |
+ } |
if (!threaded_) { |
// Single-threaded layout tests. |
layer_tree_host_ = |