blob: 925da2a15ef748c99db3b5fafb4f21c657b9eb5c [file] [log] [blame]
// Copyright 2024 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/metrics/install_date_provider.h"
#include "base/logging.h"
#include "components/metrics/metrics_pref_names.h"
#include "components/prefs/pref_service.h"
namespace metrics {
namespace {
// The following two methods are copied from metrics_state_manager.cc, but are
// simple enough it's not really needed to reuse.
int64_t ReadInstallDate(PrefService* local_state) {
return local_state->GetInt64(prefs::kInstallDate);
}
// Round a timestamp measured in seconds since epoch to one with a granularity
// of an hour. This can be used before uploaded potentially sensitive
// timestamps.
int64_t RoundSecondsToHour(int64_t time_in_seconds) {
return 3600 * (time_in_seconds / 3600);
}
} // namespace
void InstallDateProvider::ProvideSystemProfileMetrics(
SystemProfileProto* system_profile_proto) {
system_profile_proto->set_install_date(
RoundSecondsToHour(ReadInstallDate(local_state_)));
}
} // namespace metrics