Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(262)

Unified Diff: chrome/browser/metrics/chrome_metrics_service_client.cc

Issue 2653693004: UKM Sync Observer (Closed)
Patch Set: Complex state Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metrics/chrome_metrics_service_client.cc
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index 22aeeb2a6024694d2176f0e0bf82c8a5a90d2f1f..4dcbb75c3556267a04cd061bf58e03d12a60604a 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -41,6 +41,7 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/safe_browsing/certificate_reporting_metrics_provider.h"
#include "chrome/browser/sync/chrome_sync_client.h"
+#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/browser/ui/browser_otr_state.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/chrome_paths.h"
@@ -50,6 +51,7 @@
#include "chrome/common/features.h"
#include "chrome/common/pref_names.h"
#include "chrome/installer/util/util_constants.h"
+#include "components/browser_sync/profile_sync_service.h"
#include "components/browser_watcher/stability_debugging.h"
#include "components/history/core/browser/history_service.h"
#include "components/metrics/call_stack_profile_metrics_provider.h"
@@ -895,15 +897,19 @@ void ChromeMetricsServiceClient::RegisterForNotifications() {
content::NotificationService::AllBrowserContextsAndSources());
for (Profile* profile :
g_browser_process->profile_manager()->GetLoadedProfiles()) {
- RegisterForHistoryDeletions(profile);
+ RegisterForProfileEvents(profile);
}
}
-void ChromeMetricsServiceClient::RegisterForHistoryDeletions(Profile* profile) {
+void ChromeMetricsServiceClient::RegisterForProfileEvents(Profile* profile) {
history::HistoryService* history_service =
HistoryServiceFactory::GetForProfile(profile,
ServiceAccessType::IMPLICIT_ACCESS);
ObserveServiceForDeletions(history_service);
+ browser_sync::ProfileSyncService* sync =
+ ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile);
+ if (sync)
+ ObserveServiceForSyncDisables(static_cast<syncer::SyncService*>(sync));
}
void ChromeMetricsServiceClient::Observe(
@@ -925,7 +931,7 @@ void ChromeMetricsServiceClient::Observe(
break;
case chrome::NOTIFICATION_PROFILE_ADDED:
- RegisterForHistoryDeletions(content::Source<Profile>(source).ptr());
+ RegisterForProfileEvents(content::Source<Profile>(source).ptr());
break;
default:
@@ -945,3 +951,14 @@ void ChromeMetricsServiceClient::OnHistoryDeleted() {
if (ukm_service_)
ukm_service_->Purge();
}
+
+void ChromeMetricsServiceClient::OnSyncPrefsChanged(bool must_purge) {
+ if (!ukm_service_)
+ return;
+ if (must_purge) {
+ ukm_service_->Purge();
+ ukm_service_->ResetClientId();
+ }
+ // Signal service manager to enable/disable UKM based on new state.
+ UpdateRunningServices();
+}

Powered by Google App Engine
This is Rietveld 408576698