| 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 |