chromium/components/sync/service/passphrase_type_metrics_provider.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SYNC_SERVICE_PASSPHRASE_TYPE_METRICS_PROVIDER_H_
#define COMPONENTS_SYNC_SERVICE_PASSPHRASE_TYPE_METRICS_PROVIDER_H_

#include <vector>

#include "base/functional/callback.h"
#include "components/metrics/metrics_provider.h"

namespace syncer {

class SyncService;

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. Keep in sync with the homonym enum
// in tools/metrics/histograms/metadata/sync/enums.xml.
// Exposed in the header file for testing.
// LINT.IfChange(PassphraseTypeForMetrics)
enum class PassphraseTypeForMetrics {};
// LINT.ThenChange(/tools/metrics/histograms/metadata/sync/enums.xml:PassphraseTypeForMetrics)

// A registerable metrics provider that will emit sync passphrase type upon UMA
// upload. If it's impossible to detect real passphrase type, special enum
// values will be used (kNoActiveSyncingProfiles and
// kVariousStateAcrossProfiles).
class PassphraseTypeMetricsProvider : public metrics::MetricsProvider {};

}  // namespace syncer

#endif  // COMPONENTS_SYNC_SERVICE_PASSPHRASE_TYPE_METRICS_PROVIDER_H_