OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ios/chrome/browser/ios_chrome_main_parts.h" | 5 #include "ios/chrome/browser/ios_chrome_main_parts.h" |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/feature_list.h" | 8 #include "base/feature_list.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "components/metrics/metrics_service.h" | 21 #include "components/metrics/metrics_service.h" |
22 #include "components/metrics/profiler/ios/ios_tracking_synchronizer_delegate.h" | 22 #include "components/metrics/profiler/ios/ios_tracking_synchronizer_delegate.h" |
23 #include "components/metrics/profiler/tracking_synchronizer.h" | 23 #include "components/metrics/profiler/tracking_synchronizer.h" |
24 #include "components/metrics_services_manager/metrics_services_manager.h" | 24 #include "components/metrics_services_manager/metrics_services_manager.h" |
25 #include "components/open_from_clipboard/clipboard_recent_content.h" | 25 #include "components/open_from_clipboard/clipboard_recent_content.h" |
26 #include "components/prefs/json_pref_store.h" | 26 #include "components/prefs/json_pref_store.h" |
27 #include "components/prefs/pref_service.h" | 27 #include "components/prefs/pref_service.h" |
28 #include "components/rappor/rappor_service.h" | 28 #include "components/rappor/rappor_service.h" |
29 #include "components/task_scheduler_util/initialization_util.h" | 29 #include "components/task_scheduler_util/initialization_util.h" |
30 #include "components/translate/core/browser/translate_download_manager.h" | 30 #include "components/translate/core/browser/translate_download_manager.h" |
| 31 #include "components/variations/field_trial_config/field_trial_util.h" |
31 #include "components/variations/service/variations_service.h" | 32 #include "components/variations/service/variations_service.h" |
32 #include "components/variations/variations_http_header_provider.h" | 33 #include "components/variations/variations_http_header_provider.h" |
| 34 #include "components/variations/variations_switches.h" |
33 #include "ios/chrome/browser/about_flags.h" | 35 #include "ios/chrome/browser/about_flags.h" |
34 #include "ios/chrome/browser/application_context_impl.h" | 36 #include "ios/chrome/browser/application_context_impl.h" |
35 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" | 37 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
36 #include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" | 38 #include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" |
37 #include "ios/chrome/browser/chrome_paths.h" | 39 #include "ios/chrome/browser/chrome_paths.h" |
38 #include "ios/chrome/browser/chrome_switches.h" | 40 #include "ios/chrome/browser/chrome_switches.h" |
39 #include "ios/chrome/browser/chrome_url_constants.h" | 41 #include "ios/chrome/browser/chrome_url_constants.h" |
40 #import "ios/chrome/browser/first_run/first_run.h" | 42 #import "ios/chrome/browser/first_run/first_run.h" |
41 #include "ios/chrome/browser/install_time_util.h" | 43 #include "ios/chrome/browser/install_time_util.h" |
42 #include "ios/chrome/browser/ios_chrome_field_trials.h" | 44 #include "ios/chrome/browser/ios_chrome_field_trials.h" |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 bool result = http_header_provider->ForceVariationIds( | 297 bool result = http_header_provider->ForceVariationIds( |
296 command_line->GetSwitchValueASCII(switches::kIOSForceVariationIds), | 298 command_line->GetSwitchValueASCII(switches::kIOSForceVariationIds), |
297 &variation_ids); | 299 &variation_ids); |
298 CHECK(result) << "Invalid list of variation ids specified (either in --" | 300 CHECK(result) << "Invalid list of variation ids specified (either in --" |
299 << switches::kIOSForceVariationIds << " or in chrome://flags)"; | 301 << switches::kIOSForceVariationIds << " or in chrome://flags)"; |
300 | 302 |
301 feature_list->InitializeFromCommandLine( | 303 feature_list->InitializeFromCommandLine( |
302 command_line->GetSwitchValueASCII(switches::kEnableIOSFeatures), | 304 command_line->GetSwitchValueASCII(switches::kEnableIOSFeatures), |
303 command_line->GetSwitchValueASCII(switches::kDisableIOSFeatures)); | 305 command_line->GetSwitchValueASCII(switches::kDisableIOSFeatures)); |
304 | 306 |
| 307 #if defined(FIELDTRIAL_TESTING_ENABLED) |
| 308 if (!command_line->HasSwitch( |
| 309 variations::switches::kDisableFieldTrialTestingConfig) && |
| 310 !command_line->HasSwitch(switches::kForceFieldTrials) && |
| 311 !command_line->HasSwitch(variations::switches::kVariationsServerURL)) { |
| 312 variations::AssociateDefaultFieldTrialConfig(feature_list.get()); |
| 313 } |
| 314 #endif // defined(FIELDTRIAL_TESTING_ENABLED) |
| 315 |
305 variations::VariationsService* variations_service = | 316 variations::VariationsService* variations_service = |
306 application_context_->GetVariationsService(); | 317 application_context_->GetVariationsService(); |
307 if (variations_service) | 318 if (variations_service) |
308 variations_service->CreateTrialsFromSeed(feature_list.get()); | 319 variations_service->CreateTrialsFromSeed(feature_list.get()); |
309 | 320 |
310 base::FeatureList::SetInstance(std::move(feature_list)); | 321 base::FeatureList::SetInstance(std::move(feature_list)); |
311 | 322 |
312 SetupIOSFieldTrials(); | 323 SetupIOSFieldTrials(); |
313 } | 324 } |
314 | 325 |
315 void IOSChromeMainParts::SetupMetrics() { | 326 void IOSChromeMainParts::SetupMetrics() { |
316 metrics::MetricsService* metrics = application_context_->GetMetricsService(); | 327 metrics::MetricsService* metrics = application_context_->GetMetricsService(); |
317 metrics->AddSyntheticTrialObserver( | 328 metrics->AddSyntheticTrialObserver( |
318 variations::VariationsHttpHeaderProvider::GetInstance()); | 329 variations::VariationsHttpHeaderProvider::GetInstance()); |
319 // Now that field trials have been created, initializes metrics recording. | 330 // Now that field trials have been created, initializes metrics recording. |
320 metrics->InitializeMetricsRecordingState(); | 331 metrics->InitializeMetricsRecordingState(); |
321 } | 332 } |
322 | 333 |
323 void IOSChromeMainParts::StartMetricsRecording() { | 334 void IOSChromeMainParts::StartMetricsRecording() { |
324 bool wifiOnly = local_state_->GetBoolean(prefs::kMetricsReportingWifiOnly); | 335 bool wifiOnly = local_state_->GetBoolean(prefs::kMetricsReportingWifiOnly); |
325 bool isConnectionCellular = net::NetworkChangeNotifier::IsConnectionCellular( | 336 bool isConnectionCellular = net::NetworkChangeNotifier::IsConnectionCellular( |
326 net::NetworkChangeNotifier::GetConnectionType()); | 337 net::NetworkChangeNotifier::GetConnectionType()); |
327 bool mayUpload = !wifiOnly || !isConnectionCellular; | 338 bool mayUpload = !wifiOnly || !isConnectionCellular; |
328 | 339 |
329 application_context_->GetMetricsServicesManager()->UpdateUploadPermissions( | 340 application_context_->GetMetricsServicesManager()->UpdateUploadPermissions( |
330 mayUpload); | 341 mayUpload); |
331 } | 342 } |
OLD | NEW |