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 e4d23c7ee895190f1ab1b872ec25da3815c6ab48..e8847b4a67ac545f90316049560d26dbedc109d5 100644 |
| --- a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| +++ b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm |
| @@ -20,6 +20,7 @@ |
| #include "base/rand_util.h" |
| #include "base/strings/string16.h" |
| #include "base/threading/platform_thread.h" |
| +#include "components/browser_sync/profile_sync_service.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" |
| @@ -54,6 +55,7 @@ |
| #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" |
| +#include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h" |
| #include "ios/chrome/browser/sync/ios_chrome_sync_client.h" |
| #include "ios/chrome/browser/tab_parenting_global_observer.h" |
| #include "ios/chrome/browser/tabs/tab_model_list.h" |
| @@ -327,16 +329,20 @@ void IOSChromeMetricsServiceClient::RegisterForNotifications() { |
| ->GetChromeBrowserStateManager() |
| ->GetLoadedBrowserStates(); |
| for (ios::ChromeBrowserState* browser_state : loaded_browser_states) { |
| - RegisterForHistoryDeletions(browser_state); |
| + RegisterForBrowserStateEvents(browser_state); |
| } |
| } |
| -void IOSChromeMetricsServiceClient::RegisterForHistoryDeletions( |
| +void IOSChromeMetricsServiceClient::RegisterForBrowserStateEvents( |
| ios::ChromeBrowserState* browser_state) { |
| history::HistoryService* history_service = |
| ios::HistoryServiceFactory::GetForBrowserState( |
| browser_state, ServiceAccessType::IMPLICIT_ACCESS); |
| ObserveServiceForDeletions(history_service); |
| + browser_sync::ProfileSyncService* sync = |
| + IOSChromeProfileSyncServiceFactory::GetInstance()->GetForBrowserState( |
| + browser_state); |
| + ObserveServiceForSyncDisables(static_cast<syncer::SyncService*>(sync)); |
| } |
| void IOSChromeMetricsServiceClient::OnTabParented(web::WebState* web_state) { |
| @@ -357,3 +363,28 @@ void IOSChromeMetricsServiceClient::OnHistoryDeleted() { |
| if (ukm_service_) |
| ukm_service_->Purge(); |
| } |
| + |
| +std::set<syncer::SyncService*> |
| +ChromeMetricsServiceClient::GetAllSyncServices() { |
| + std::set<syncer::SyncService*> sync_services; |
|
Alexei Svitkine (slow)
2017/02/01 19:31:07
Nit: Move before line 374
Steven Holte
2017/02/03 00:04:34
Removed this function
|
| + std::vector<ios::ChromeBrowserState*> loaded_browser_states = |
| + GetApplicationContext() |
| + ->GetChromeBrowserStateManager() |
| + ->GetLoadedBrowserStates(); |
| + for (ios::ChromeBrowserState* browser_state : loaded_browser_states) { |
| + browser_sync::ProfileSyncService* sync = |
| + IOSChromeProfileSyncServiceFactory::GetInstance()->GetForBrowserState( |
|
Alexei Svitkine (slow)
2017/02/01 19:31:07
Nit: Cache IOSChromeProfileSyncServiceFactory::Get
Steven Holte
2017/02/03 00:04:34
Removed function
|
| + browser_state); |
| + sync_services.insert(sync); |
| + } |
| + return sync_services; |
| +} |
| + |
| +void IOSChromeMetricsServiceClient::OnSyncPrefsChanged(bool must_purge) { |
| + if (ukm_service_) { |
| + if (must_purge) |
| + ukm_service_->Purge(); |
| + if (update_running_services_) |
| + update_running_services_.Run(); |
| + } |
| +} |