Index: components/task_scheduler_util/browser/initialization.cc |
diff --git a/components/task_scheduler_util/browser/initialization.cc b/components/task_scheduler_util/browser/initialization.cc |
index 29223f5656d05809faccbcc5dbf8ba745671bcf0..9257d6a1fc14474a21925083ce4ca2a84fd83cfb 100644 |
--- a/components/task_scheduler_util/browser/initialization.cc |
+++ b/components/task_scheduler_util/browser/initialization.cc |
@@ -8,11 +8,8 @@ |
#include <string> |
#include "base/command_line.h" |
-#include "base/logging.h" |
-#include "base/task_scheduler/scheduler_worker_params.h" |
+#include "base/memory/ptr_util.h" |
#include "base/task_scheduler/switches.h" |
-#include "base/task_scheduler/task_traits.h" |
-#include "base/threading/platform_thread.h" |
#include "base/threading/sequenced_worker_pool.h" |
#include "components/task_scheduler_util/common/variations_util.h" |
#include "components/variations/variations_associated_data.h" |
@@ -23,51 +20,24 @@ namespace { |
constexpr char kFieldTrialName[] = "BrowserScheduler"; |
-enum WorkerPoolType : size_t { |
- BACKGROUND = 0, |
- BACKGROUND_BLOCKING, |
- FOREGROUND, |
- FOREGROUND_BLOCKING, |
- WORKER_POOL_COUNT // Always last. |
-}; |
- |
} // namespace |
-std::vector<base::SchedulerWorkerPoolParams> |
-GetBrowserWorkerPoolParamsFromVariations() { |
- using ThreadPriority = base::ThreadPriority; |
- |
+std::unique_ptr<base::TaskSchedulerInitParams> |
+GetBrowserTaskSchedulerInitParamsFromVariations() { |
std::map<std::string, std::string> variation_params; |
if (!::variations::GetVariationParams(kFieldTrialName, &variation_params)) |
- return std::vector<base::SchedulerWorkerPoolParams>(); |
+ return nullptr; |
- std::vector<SchedulerImmutableWorkerPoolParams> immutable_worker_pool_params; |
- DCHECK_EQ(BACKGROUND, immutable_worker_pool_params.size()); |
- immutable_worker_pool_params.emplace_back("Background", |
- ThreadPriority::BACKGROUND); |
- DCHECK_EQ(BACKGROUND_BLOCKING, immutable_worker_pool_params.size()); |
- immutable_worker_pool_params.emplace_back("BackgroundBlocking", |
- ThreadPriority::BACKGROUND); |
- DCHECK_EQ(FOREGROUND, immutable_worker_pool_params.size()); |
- immutable_worker_pool_params.emplace_back("Foreground", |
- ThreadPriority::NORMAL); |
- // Tasks posted to SequencedWorkerPool or BrowserThreadImpl may be redirected |
- // to this pool. Since COM STA is initialized in these environments, it must |
- // also be initialized in this pool. |
- DCHECK_EQ(FOREGROUND_BLOCKING, immutable_worker_pool_params.size()); |
- immutable_worker_pool_params.emplace_back( |
- "ForegroundBlocking", ThreadPriority::NORMAL, |
- base::SchedulerBackwardCompatibility::INIT_COM_STA); |
+ auto init_params = base::MakeUnique<base::TaskSchedulerInitParams>( |
+ StringToVariableWorkerPoolParams(variation_params["Background"]), |
+ StringToVariableWorkerPoolParams(variation_params["BackgroundBlocking"]), |
+ StringToVariableWorkerPoolParams(variation_params["Foreground"]), |
+ StringToVariableWorkerPoolParams(variation_params["ForegroundBlocking"])); |
- return GetWorkerPoolParams(immutable_worker_pool_params, variation_params); |
-} |
+ if (init_params->IsValid()) |
+ return init_params; |
-size_t BrowserWorkerPoolIndexForTraits(const base::TaskTraits& traits) { |
- const bool is_background = |
- traits.priority() == base::TaskPriority::BACKGROUND; |
- if (traits.may_block() || traits.with_base_sync_primitives()) |
- return is_background ? BACKGROUND_BLOCKING : FOREGROUND_BLOCKING; |
- return is_background ? BACKGROUND : FOREGROUND; |
+ return nullptr; |
} |
void MaybePerformBrowserTaskSchedulerRedirection() { |