30 lines
959 B
C++
30 lines
959 B
C++
// Copyright 2016 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_ENABLED_STATE_PROVIDER_H_
|
|
#define COMPONENTS_METRICS_ENABLED_STATE_PROVIDER_H_
|
|
|
|
namespace metrics {
|
|
|
|
// An interface that provides whether metrics should be reported.
|
|
class EnabledStateProvider {
|
|
public:
|
|
virtual ~EnabledStateProvider() {}
|
|
|
|
// Indicates that the user has provided consent to collect and report metrics.
|
|
virtual bool IsConsentGiven() const = 0;
|
|
|
|
// Should collection and reporting be enabled. This should depend on consent
|
|
// being given.
|
|
virtual bool IsReportingEnabled() const;
|
|
|
|
// Enable or disable checking whether field trials are forced or not at
|
|
// EnabledStateProvider::IsReportingEnabled().
|
|
static void SetIgnoreForceFieldTrialsForTesting(bool ignore_trials);
|
|
};
|
|
|
|
} // namespace metrics
|
|
|
|
#endif // COMPONENTS_METRICS_ENABLED_STATE_PROVIDER_H_
|