| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/metrics/ios_chrome_metrics_service_client.h" | 5 #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 #include "components/metrics/profiler/tracking_synchronizer.h" | 34 #include "components/metrics/profiler/tracking_synchronizer.h" |
| 35 #include "components/metrics/stability_metrics_helper.h" | 35 #include "components/metrics/stability_metrics_helper.h" |
| 36 #include "components/metrics/ui/screen_info_metrics_provider.h" | 36 #include "components/metrics/ui/screen_info_metrics_provider.h" |
| 37 #include "components/metrics/url_constants.h" | 37 #include "components/metrics/url_constants.h" |
| 38 #include "components/omnibox/browser/omnibox_metrics_provider.h" | 38 #include "components/omnibox/browser/omnibox_metrics_provider.h" |
| 39 #include "components/prefs/pref_registry_simple.h" | 39 #include "components/prefs/pref_registry_simple.h" |
| 40 #include "components/prefs/pref_service.h" | 40 #include "components/prefs/pref_service.h" |
| 41 #include "components/signin/core/browser/signin_status_metrics_provider.h" | 41 #include "components/signin/core/browser/signin_status_metrics_provider.h" |
| 42 #include "components/sync/device_info/device_count_metrics_provider.h" | 42 #include "components/sync/device_info/device_count_metrics_provider.h" |
| 43 #include "components/translate/core/browser/translate_ranker_metrics_provider.h" | 43 #include "components/translate/core/browser/translate_ranker_metrics_provider.h" |
| 44 #include "components/ukm/ukm_service.h" |
| 44 #include "components/variations/variations_associated_data.h" | 45 #include "components/variations/variations_associated_data.h" |
| 45 #include "components/version_info/version_info.h" | 46 #include "components/version_info/version_info.h" |
| 46 #include "ios/chrome/browser/application_context.h" | 47 #include "ios/chrome/browser/application_context.h" |
| 47 #include "ios/chrome/browser/chrome_paths.h" | 48 #include "ios/chrome/browser/chrome_paths.h" |
| 48 #include "ios/chrome/browser/google/google_brand.h" | 49 #include "ios/chrome/browser/google/google_brand.h" |
| 49 #include "ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h" | 50 #include "ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h" |
| 50 #include "ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.h" | 51 #include "ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.h" |
| 51 #include "ios/chrome/browser/signin/ios_chrome_signin_status_metrics_provider_de
legate.h" | 52 #include "ios/chrome/browser/signin/ios_chrome_signin_status_metrics_provider_de
legate.h" |
| 52 #include "ios/chrome/browser/sync/ios_chrome_sync_client.h" | 53 #include "ios/chrome/browser/sync/ios_chrome_sync_client.h" |
| 53 #include "ios/chrome/browser/tab_parenting_global_observer.h" | 54 #include "ios/chrome/browser/tab_parenting_global_observer.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 84 | 85 |
| 85 return client; | 86 return client; |
| 86 } | 87 } |
| 87 | 88 |
| 88 // static | 89 // static |
| 89 void IOSChromeMetricsServiceClient::RegisterPrefs( | 90 void IOSChromeMetricsServiceClient::RegisterPrefs( |
| 90 PrefRegistrySimple* registry) { | 91 PrefRegistrySimple* registry) { |
| 91 metrics::MetricsService::RegisterPrefs(registry); | 92 metrics::MetricsService::RegisterPrefs(registry); |
| 92 metrics::StabilityMetricsHelper::RegisterPrefs(registry); | 93 metrics::StabilityMetricsHelper::RegisterPrefs(registry); |
| 93 metrics::RegisterMetricsReportingStatePrefs(registry); | 94 metrics::RegisterMetricsReportingStatePrefs(registry); |
| 95 ukm::UkmService::RegisterPrefs(registry); |
| 94 } | 96 } |
| 95 | 97 |
| 96 metrics::MetricsService* IOSChromeMetricsServiceClient::GetMetricsService() { | 98 metrics::MetricsService* IOSChromeMetricsServiceClient::GetMetricsService() { |
| 97 return metrics_service_.get(); | 99 return metrics_service_.get(); |
| 98 } | 100 } |
| 99 | 101 |
| 102 metrics::MetricsService* IOSChromeMetricsServiceClient::GetMetricsService() { |
| 103 return ukm_service_.get(); |
| 104 } |
| 105 |
| 100 void IOSChromeMetricsServiceClient::SetMetricsClientId( | 106 void IOSChromeMetricsServiceClient::SetMetricsClientId( |
| 101 const std::string& client_id) { | 107 const std::string& client_id) { |
| 102 crash_keys::SetMetricsClientIdFromGUID(client_id); | 108 crash_keys::SetMetricsClientIdFromGUID(client_id); |
| 103 } | 109 } |
| 104 | 110 |
| 105 int32_t IOSChromeMetricsServiceClient::GetProduct() { | 111 int32_t IOSChromeMetricsServiceClient::GetProduct() { |
| 106 return metrics::ChromeUserMetricsExtension::CHROME; | 112 return metrics::ChromeUserMetricsExtension::CHROME; |
| 107 } | 113 } |
| 108 | 114 |
| 109 std::string IOSChromeMetricsServiceClient::GetApplicationLocale() { | 115 std::string IOSChromeMetricsServiceClient::GetApplicationLocale() { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 web::WebState* web_state) { | 181 web::WebState* web_state) { |
| 176 metrics_service_->OnApplicationNotIdle(); | 182 metrics_service_->OnApplicationNotIdle(); |
| 177 } | 183 } |
| 178 | 184 |
| 179 void IOSChromeMetricsServiceClient::WebStateDidStopLoading( | 185 void IOSChromeMetricsServiceClient::WebStateDidStopLoading( |
| 180 web::WebState* web_state) { | 186 web::WebState* web_state) { |
| 181 metrics_service_->OnApplicationNotIdle(); | 187 metrics_service_->OnApplicationNotIdle(); |
| 182 } | 188 } |
| 183 | 189 |
| 184 void IOSChromeMetricsServiceClient::Initialize() { | 190 void IOSChromeMetricsServiceClient::Initialize() { |
| 191 PrefService* local_state = GetApplicationContext()->GetLocalState(); |
| 185 metrics_service_ = base::MakeUnique<metrics::MetricsService>( | 192 metrics_service_ = base::MakeUnique<metrics::MetricsService>( |
| 186 metrics_state_manager_, this, GetApplicationContext()->GetLocalState()); | 193 metrics_state_manager_, this, local_state); |
| 194 |
| 195 if (base::FeatureList::IsEnabled(kUkmFeature)) |
| 196 ukm_service_.reset(new ukm::UkmService(local_state, this)); |
| 187 | 197 |
| 188 // Register metrics providers. | 198 // Register metrics providers. |
| 189 metrics_service_->RegisterMetricsProvider( | 199 metrics_service_->RegisterMetricsProvider( |
| 190 base::MakeUnique<metrics::NetworkMetricsProvider>( | 200 base::MakeUnique<metrics::NetworkMetricsProvider>( |
| 191 web::WebThread::GetBlockingPool())); | 201 web::WebThread::GetBlockingPool())); |
| 192 | 202 |
| 193 // Currently, we configure OmniboxMetricsProvider to not log events to UMA | 203 // Currently, we configure OmniboxMetricsProvider to not log events to UMA |
| 194 // if there is a single incognito session visible. In the future, it may | 204 // if there is a single incognito session visible. In the future, it may |
| 195 // be worth revisiting this to still log events from non-incognito sessions. | 205 // be worth revisiting this to still log events from non-incognito sessions. |
| 196 metrics_service_->RegisterMetricsProvider( | 206 metrics_service_->RegisterMetricsProvider( |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 | 327 |
| 318 void IOSChromeMetricsServiceClient::OnURLOpenedFromOmnibox(OmniboxLog* log) { | 328 void IOSChromeMetricsServiceClient::OnURLOpenedFromOmnibox(OmniboxLog* log) { |
| 319 metrics_service_->OnApplicationNotIdle(); | 329 metrics_service_->OnApplicationNotIdle(); |
| 320 } | 330 } |
| 321 | 331 |
| 322 metrics::EnableMetricsDefault | 332 metrics::EnableMetricsDefault |
| 323 IOSChromeMetricsServiceClient::GetMetricsReportingDefaultState() { | 333 IOSChromeMetricsServiceClient::GetMetricsReportingDefaultState() { |
| 324 return metrics::GetMetricsReportingDefaultState( | 334 return metrics::GetMetricsReportingDefaultState( |
| 325 GetApplicationContext()->GetLocalState()); | 335 GetApplicationContext()->GetLocalState()); |
| 326 } | 336 } |
| OLD | NEW |