Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(709)

Unified Diff: components/task_scheduler_util/browser/initialization.cc

Issue 2788223002: Generate TaskScheduler::InitParams from components/task_scheduler_util/. (Closed)
Patch Set: self-review Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..4b806370b8a28f93006740ce55687bebec4f09ce 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/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"
@@ -33,33 +30,27 @@ enum WorkerPoolType : size_t {
} // namespace
-std::vector<base::SchedulerWorkerPoolParams>
-GetBrowserWorkerPoolParamsFromVariations() {
- using ThreadPriority = base::ThreadPriority;
-
+std::unique_ptr<base::TaskScheduler::InitParams>
+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);
+ return GetTaskSchedulerInitParams(
+ "", variation_params, base::SchedulerBackwardCompatibility::INIT_COM_STA);
+}
+
+std::vector<base::SchedulerWorkerPoolParams>
+GetBrowserWorkerPoolParamsFromVariations() {
+ const auto init_params = GetBrowserTaskSchedulerInitParamsFromVariations();
+ if (!init_params)
+ return std::vector<base::SchedulerWorkerPoolParams>();
- return GetWorkerPoolParams(immutable_worker_pool_params, variation_params);
+ return std::vector<base::SchedulerWorkerPoolParams>{
+ init_params->background_worker_pool_params,
+ init_params->background_blocking_worker_pool_params,
+ init_params->foreground_worker_pool_params,
+ init_params->foreground_blocking_worker_pool_params};
}
size_t BrowserWorkerPoolIndexForTraits(const base::TaskTraits& traits) {

Powered by Google App Engine
This is Rietveld 408576698