blob: 0a27df3e4b4c0f12062608b76180156c1547eae3 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync/service/trusted_vault_histograms.h"
#include <string>
#include "base/metrics/histogram_functions.h"
#include "base/strings/strcat.h"
#include "base/time/time.h"
#include "components/sync/base/time.h"
#include "components/sync/engine/sync_status.h"
#include "components/sync/protocol/nigori_specifics.pb.h"
namespace syncer {
void RecordTrustedVaultHistogramBooleanWithMigrationSuffix(
const std::string& histogram_name,
bool sample,
const SyncStatus& sync_status) {
base::UmaHistogramBoolean(histogram_name, sample);
// Note that the proto field may be unset: in this case the migration time
// will point to the Unix epoch and will be later ignored.
const base::Time migration_time =
ProtoTimeToTime(sync_status.trusted_vault_debug_info.migration_time());
const base::TimeDelta time_delta_since_migration =
base::Time::Now() - migration_time;
if (time_delta_since_migration.is_negative()) {
return;
}
if (time_delta_since_migration < base::Days(180)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLast180Days", sample);
}
if (time_delta_since_migration < base::Days(90)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLast90Days", sample);
}
if (time_delta_since_migration < base::Days(28)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLast28Days", sample);
}
if (time_delta_since_migration < base::Days(7)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLast7Days", sample);
}
if (time_delta_since_migration < base::Days(3)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLast3Days", sample);
}
if (time_delta_since_migration < base::Days(1)) {
base::UmaHistogramBoolean(histogram_name + ".MigratedLastDay", sample);
}
}
} // namespace syncer