Chromium Code Reviews| Index: ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| index bb7b212845d05e8f610cdba1e978cb58761e1b8c..8beb17dd967d9ca3af0c38016b5803ff005c5692 100644 |
| --- a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| +++ b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| @@ -21,6 +21,8 @@ |
| #include "base/strings/string16.h" |
| #include "base/threading/platform_thread.h" |
| #include "components/crash/core/common/crash_keys.h" |
| +#include "components/history/core/browser/history_service.h" |
| +#include "components/keyed_service/core/service_access_type.h" |
| #include "components/metrics/call_stack_profile_metrics_provider.h" |
| #include "components/metrics/drive_metrics_provider.h" |
| #include "components/metrics/metrics_pref_names.h" |
| @@ -41,11 +43,14 @@ |
| #include "components/signin/core/browser/signin_status_metrics_provider.h" |
| #include "components/sync/device_info/device_count_metrics_provider.h" |
| #include "components/translate/core/browser/translate_ranker_metrics_provider.h" |
| +#include "components/ukm/ukm_service.h" |
| #include "components/variations/variations_associated_data.h" |
| #include "components/version_info/version_info.h" |
| #include "ios/chrome/browser/application_context.h" |
| +#include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" |
| #include "ios/chrome/browser/chrome_paths.h" |
| #include "ios/chrome/browser/google/google_brand.h" |
| +#include "ios/chrome/browser/history/history_service_factory.h" |
| #include "ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h" |
| #include "ios/chrome/browser/metrics/mobile_session_shutdown_metrics_provider.h" |
| #include "ios/chrome/browser/signin/ios_chrome_signin_status_metrics_provider_delegate.h" |
| @@ -91,12 +96,17 @@ void IOSChromeMetricsServiceClient::RegisterPrefs( |
| metrics::MetricsService::RegisterPrefs(registry); |
| metrics::StabilityMetricsHelper::RegisterPrefs(registry); |
| metrics::RegisterMetricsReportingStatePrefs(registry); |
| + ukm::UkmService::RegisterPrefs(registry); |
| } |
| metrics::MetricsService* IOSChromeMetricsServiceClient::GetMetricsService() { |
| return metrics_service_.get(); |
| } |
| +ukm::UkmService* IOSChromeMetricsServiceClient::GetUkmService() { |
| + return ukm_service_.get(); |
| +} |
| + |
| void IOSChromeMetricsServiceClient::SetMetricsClientId( |
| const std::string& client_id) { |
| crash_keys::SetMetricsClientIdFromGUID(client_id); |
| @@ -180,8 +190,12 @@ void IOSChromeMetricsServiceClient::WebStateDidStopLoading( |
| } |
| void IOSChromeMetricsServiceClient::Initialize() { |
| + PrefService* local_state = GetApplicationContext()->GetLocalState(); |
| metrics_service_ = base::MakeUnique<metrics::MetricsService>( |
| - metrics_state_manager_, this, GetApplicationContext()->GetLocalState()); |
| + metrics_state_manager_, this, local_state); |
| + |
| + if (base::FeatureList::IsEnabled(ukm::kUkmFeature)) |
| + ukm_service_.reset(new ukm::UkmService(local_state, this)); |
|
sdefresne
2017/01/23 09:53:04
Please use base::MakeUnique here:
if (base::Fea
Steven Holte
2017/01/23 20:37:29
Done.
|
| // Register metrics providers. |
| metrics_service_->RegisterMetricsProvider( |
| @@ -307,6 +321,22 @@ void IOSChromeMetricsServiceClient::RegisterForNotifications() { |
| OmniboxEventGlobalTracker::GetInstance()->RegisterCallback( |
| base::Bind(&IOSChromeMetricsServiceClient::OnURLOpenedFromOmnibox, |
| base::Unretained(this))); |
| + |
| + std::vector<ios::ChromeBrowserState*> loaded_browser_states = |
| + GetApplicationContext() |
| + ->GetChromeBrowserStateManager() |
| + ->GetLoadedBrowserStates(); |
| + for (ios::ChromeBrowserState* browser_state : loaded_browser_states) { |
| + RegisterForHistoryDeletions(browser_state); |
| + } |
| +} |
| + |
| +void IOSChromeMetricsServiceClient::RegisterForHistoryDeletions( |
| + ios::ChromeBrowserState* browser_state) { |
| + history::HistoryService* history_service = |
| + ios::HistoryServiceFactory::GetForBrowserState( |
| + browser_state, ServiceAccessType::IMPLICIT_ACCESS); |
| + ObserveServiceForDeletions(history_service); |
| } |
| void IOSChromeMetricsServiceClient::OnTabParented(web::WebState* web_state) { |
| @@ -322,3 +352,8 @@ IOSChromeMetricsServiceClient::GetMetricsReportingDefaultState() { |
| return metrics::GetMetricsReportingDefaultState( |
| GetApplicationContext()->GetLocalState()); |
| } |
| + |
| +void IOSChromeMetricsServiceClient::OnHistoryDeleted() { |
| + if (ukm_service_) |
| + ukm_service_->Purge(); |
| +} |