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(); |
+ } |
+} |