#include "components/metrics/demographics/demographic_metrics_provider.h"
#include <optional>
#include "base/feature_list.h"
#include "base/metrics/histogram_functions.h"
#include "base/notreached.h"
#include "build/chromeos_buildflags.h"
#include "components/sync/base/features.h"
#include "components/sync/service/sync_service.h"
#include "components/sync/service/sync_service_utils.h"
#include "third_party/metrics_proto/ukm/report.pb.h"
namespace metrics {
namespace {
bool IsValidUploadState(syncer::UploadState upload_state) { … }
bool CanUploadDemographicsToGoogle(syncer::SyncService* sync_service) { … }
}
BASE_FEATURE(…);
DemographicMetricsProvider::DemographicMetricsProvider(
std::unique_ptr<ProfileClient> profile_client,
MetricsLogUploader::MetricServiceType metrics_service_type)
: … { … }
DemographicMetricsProvider::~DemographicMetricsProvider() { … }
std::optional<UserDemographics>
DemographicMetricsProvider::ProvideSyncedUserNoisedBirthYearAndGender() { … }
void DemographicMetricsProvider::ProvideCurrentSessionData(
ChromeUserMetricsExtension* uma_proto) { … }
void DemographicMetricsProvider::
ProvideSyncedUserNoisedBirthYearAndGenderToReport(ukm::Report* report) { … }
void DemographicMetricsProvider::LogUserDemographicsStatusInHistogram(
UserDemographicsStatus status) { … }
}