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( |
+ ¶ms_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( |