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

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

Issue 2749303002: [reference - do not submit] Always create four pools in TaskSchedulerImpl. (Closed)
Patch Set: rebase 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..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() {
« no previous file with comments | « components/task_scheduler_util/browser/initialization.h ('k') | components/task_scheduler_util/common/variations_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698