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

Unified Diff: components/sync_driver/device_info_sync_service.cc

Issue 1082853007: [Sync] Record histogram for mismatched device_ids (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync_driver/device_info_sync_service.cc
diff --git a/components/sync_driver/device_info_sync_service.cc b/components/sync_driver/device_info_sync_service.cc
index 76ea831a70d94fd00dc3419635aeb668ff612411..9443cd1bc739e9f60112f132c15c02b94c97fef3 100644
--- a/components/sync_driver/device_info_sync_service.cc
+++ b/components/sync_driver/device_info_sync_service.cc
@@ -4,6 +4,7 @@
#include "components/sync_driver/device_info_sync_service.h"
+#include "base/metrics/histogram.h"
#include "base/strings/stringprintf.h"
#include "components/sync_driver/local_device_info_provider.h"
#include "sync/api/sync_change.h"
@@ -21,6 +22,37 @@ using syncer::SyncDataList;
using syncer::SyncErrorFactory;
using syncer::SyncMergeResult;
+namespace {
+
+// TODO(pavely): Remove histogram once device_id mismatch is understood.
stanisc 2015/04/24 23:05:40 Perhaps mention the crbug here.
pavely 2015/04/27 18:40:35 Done.
+// When signin_scoped_device_id from pref doesn't match the one in
+// DeviceInfoSpecfics record histogram telling if sync or pref copy was empty.
+// This will indicate how often such mismatch happens and what was the state
+// before.
+enum DeviceIdMismatchForHistogram {
+ DEVICE_ID_MISMATCH_BOTH_NONEMPTY = 0,
+ DEVICE_ID_MISMATCH_SYNC_EMPTY,
+ DEVICE_ID_MISMATCH_PREF_EMPTY,
+ DEVICE_ID_MISMATCH_COUNT,
+};
+
+void RecordDeviceIdChangedHistogram(const std::string& device_id_from_sync,
+ const std::string& device_id_from_pref) {
+ DCHECK(device_id_from_sync != device_id_from_pref);
+ DeviceIdMismatchForHistogram device_id_mismatch_for_histogram =
+ DEVICE_ID_MISMATCH_BOTH_NONEMPTY;
+ if (device_id_from_sync.empty()) {
+ device_id_mismatch_for_histogram = DEVICE_ID_MISMATCH_SYNC_EMPTY;
+ } else if (device_id_from_pref.empty()) {
+ device_id_mismatch_for_histogram = DEVICE_ID_MISMATCH_PREF_EMPTY;
+ }
+ UMA_HISTOGRAM_ENUMERATION("Sync.DeviceIdMismatchDetails",
+ device_id_mismatch_for_histogram,
+ DEVICE_ID_MISMATCH_COUNT);
+}
+
+} // namespace
+
DeviceInfoSyncService::DeviceInfoSyncService(
LocalDeviceInfoProvider* local_device_info_provider)
: local_device_backup_time_(-1),
@@ -85,6 +117,13 @@ SyncMergeResult DeviceInfoSyncService::MergeDataAndStartSyncing(
if (!has_local_device_backup_time() && has_synced_backup_time) {
set_local_device_backup_time(synced_backup_time);
}
+ // TODO(pavely): Remove histogram once device_id mismatch is understood.
+ if (synced_local_device_info->signin_scoped_device_id() !=
+ local_device_info->signin_scoped_device_id()) {
+ RecordDeviceIdChangedHistogram(
+ synced_local_device_info->signin_scoped_device_id(),
+ local_device_info->signin_scoped_device_id());
+ }
// Store the synced device info for the local device only
// it is the same as the local info. Otherwise store the local
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698