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

Unified Diff: components/task_scheduler_util/initialization_util.cc

Issue 2539263003: Move Task Scheduler Initialization From chrome/browser to Content (Closed)
Patch Set: Created 4 years 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/initialization_util.cc
diff --git a/components/task_scheduler_util/initialization_util.cc b/components/task_scheduler_util/initialization_util.cc
index 967acef935f784591bcebcbbd17b1c2e6693c5ea..4c68202a21422c5113035d4135d832d757e26367 100644
--- a/components/task_scheduler_util/initialization_util.cc
+++ b/components/task_scheduler_util/initialization_util.cc
@@ -171,23 +171,45 @@ VariationsParamsToBrowserSchedulerWorkerPoolParams(
} // namespace
void InitializeDefaultBrowserTaskScheduler() {
gab 2016/11/30 22:36:58 This is still used by iOS I guess?
robliao 2016/11/30 22:46:57 Yep! This goes away when iOS moves, which will be
+ std::vector<base::SchedulerWorkerPoolParams> params_vector;
+ base::TaskScheduler::WorkerPoolIndexForTraitsCallback
+ index_to_traits_callback;
+ GetBrowserTaskSchedulerInitParameters(
+ &params_vector, &index_to_traits_callback);
+ base::TaskScheduler::CreateAndSetDefaultTaskScheduler(
+ params_vector, base::Bind(WorkerPoolIndexForTraits));
+
+ MaybePerformRedirectionToTaskScheduler();
+}
+
+void GetBrowserTaskSchedulerInitParameters(
+ std::vector<base::SchedulerWorkerPoolParams>* params_vector,
+ base::TaskScheduler::WorkerPoolIndexForTraitsCallback*
+ index_to_traits_callback) {
static constexpr char kFieldTrialName[] = "BrowserScheduler";
std::map<std::string, std::string> variation_params;
if (!variations::GetVariationParams(kFieldTrialName, &variation_params))
variation_params = GetDefaultBrowserVariationParams();
- auto params_vector =
+ *params_vector =
VariationsParamsToBrowserSchedulerWorkerPoolParams(variation_params);
- if (params_vector.empty()) {
+ if (params_vector->empty()) {
variation_params = GetDefaultBrowserVariationParams();
- params_vector =
+ *params_vector =
VariationsParamsToBrowserSchedulerWorkerPoolParams(variation_params);
- DCHECK(!params_vector.empty());
+ DCHECK(!params_vector->empty());
}
- base::TaskScheduler::CreateAndSetDefaultTaskScheduler(
- params_vector, base::Bind(WorkerPoolIndexForTraits));
+ *index_to_traits_callback = base::Bind(WorkerPoolIndexForTraits);
+}
+
+void MaybePerformRedirectionToTaskScheduler() {
// TODO(gab): Remove this when http://crbug.com/622400 concludes.
+ static constexpr char kFieldTrialName[] = "BrowserScheduler";
+ std::map<std::string, std::string> variation_params;
+ if (!variations::GetVariationParams(kFieldTrialName, &variation_params))
gab 2016/11/30 22:36:58 I think we should have defaults for individual fie
robliao 2016/11/30 22:46:57 I believe this is the nature of how things are str
gab 2016/11/30 23:10:38 If we fail to get variations then ChromeContentBro
robliao 2016/11/30 23:45:21 The main reason for this is that the failure path:
+ variation_params = GetDefaultBrowserVariationParams();
+
const auto sequenced_worker_pool_param =
variation_params.find("RedirectSequencedWorkerPools");
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(

Powered by Google App Engine
This is Rietveld 408576698