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 7cbd896b6c2e829fbe680c5f6d32d8d2a23ce2a1..8ea21f626c50e73a4c69b18a0b20ddc40766dcda 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,14 @@ void IOSChromeMetricsServiceClient::OnHistoryDeleted() { |
if (ukm_service_) |
ukm_service_->Purge(); |
} |
+ |
+void IOSChromeMetricsServiceClient::OnSyncPrefsChanged(bool must_purge) { |
+ if (ukm_service_) { |
+ if (must_purge) { |
+ ukm_service_->Purge(); |
+ ukm_service_->ResetClientId(); |
+ } |
+ if (update_running_services_) |
+ update_running_services_.Run(); |
+ } |
+} |