Index: components/task_scheduler_util/variations/browser_variations_util.cc |
diff --git a/components/task_scheduler_util/variations/browser_variations_util.cc b/components/task_scheduler_util/variations/browser_variations_util.cc |
index a3616b10bc492b21eaf76d5df8a26035f9e7a12f..29f2e32f8a4bfc3be5bc2ac48abb02ec1399daa3 100644 |
--- a/components/task_scheduler_util/variations/browser_variations_util.cc |
+++ b/components/task_scheduler_util/variations/browser_variations_util.cc |
@@ -136,7 +136,20 @@ void MaybePerformBrowserTaskSchedulerRedirection() { |
switches::kDisableBrowserTaskScheduler) && |
sequenced_worker_pool_param != variation_params.end() && |
sequenced_worker_pool_param->second == "true") { |
- base::SequencedWorkerPool::EnableWithRedirectionToTaskSchedulerForProcess(); |
+ // Check a variation that allows capping all redirections at USER_VISIBLE |
+ // (no USER_BLOCKING) to observe the side-effects of multiple priority |
+ // levels in the foreground IO pool. |
+ const auto sequenced_worker_pool_cap_priority_param = |
+ variation_params.find("CapSequencedWorkerPoolsAtUserVisible"); |
+ |
+ const base::TaskPriority max_task_priority = |
+ sequenced_worker_pool_cap_priority_param != variation_params.end() && |
+ sequenced_worker_pool_cap_priority_param->second == "true" |
+ ? base::TaskPriority::USER_VISIBLE |
+ : base::TaskPriority::HIGHEST; |
+ |
+ base::SequencedWorkerPool::EnableWithRedirectionToTaskSchedulerForProcess( |
+ max_task_priority); |
} else { |
base::SequencedWorkerPool::EnableForProcess(); |
} |