| 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() {
|
|
|