39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
// Copyright 2020 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_METRICS_ENTROPY_STATE_PROVIDER_H_
|
|
#define COMPONENTS_METRICS_ENTROPY_STATE_PROVIDER_H_
|
|
|
|
#include "components/metrics/entropy_state.h"
|
|
#include "components/metrics/metrics_provider.h"
|
|
|
|
class PrefService;
|
|
|
|
namespace metrics {
|
|
|
|
// EntropyStateProvider adds information about low entropy sources in the system
|
|
// profile. This includes |low_entropy_source|, |old_low_entropy_source| and
|
|
// |pseudo_low_entropy_source|.
|
|
class EntropyStateProvider : public MetricsProvider {
|
|
public:
|
|
explicit EntropyStateProvider(PrefService* local_state);
|
|
~EntropyStateProvider() override;
|
|
|
|
EntropyStateProvider(const EntropyStateProvider&) = delete;
|
|
EntropyStateProvider& operator=(const EntropyStateProvider&) = delete;
|
|
|
|
// Provides low entropy sources values to system profile in the client's
|
|
// report. This function always provides the same low entropy source values
|
|
// that are used for randomizing field trials throughout the session.
|
|
void ProvideSystemProfileMetrics(
|
|
SystemProfileProto* system_profile_proto) override;
|
|
|
|
private:
|
|
EntropyState entropy_state_;
|
|
};
|
|
|
|
} // namespace metrics
|
|
|
|
#endif // COMPONENTS_METRICS_ENTROPY_STATE_PROVIDER_H_
|