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

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

Issue 2653693004: UKM Sync Observer (Closed)
Patch Set: Address comments Created 3 years, 11 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 7d0e51a86d3d827a99ae55809847694fb3b9a475..1e11c9ece0f2bf8ba72b9c580a6bc88410020e27 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"
@@ -877,15 +879,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(
@@ -907,7 +913,7 @@ void ChromeMetricsServiceClient::Observe(
break;
case chrome::NOTIFICATION_PROFILE_ADDED:
skym 2017/02/03 01:03:59 I'm worried unimportant profiles are going to keep
Steven Holte 2017/02/04 00:16:32 I'm not too worried about this since the multi-pro
skym 2017/02/07 16:45:44 Okay. Thanks for adding the histogram to track thi
- RegisterForHistoryDeletions(content::Source<Profile>(source).ptr());
+ RegisterForProfileEvents(content::Source<Profile>(source).ptr());
break;
default:
@@ -927,3 +933,13 @@ void ChromeMetricsServiceClient::OnHistoryDeleted() {
if (ukm_service_)
ukm_service_->Purge();
}
+
+void ChromeMetricsServiceClient::OnSyncPrefsChanged(bool must_purge) {
+ if (ukm_service_) {
+ if (must_purge)
+ ukm_service_->Purge();
+ // Signal service manager to enable/disable UKM based on new state.
+ if (update_running_services_)
+ update_running_services_.Run();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698