chromium/components/metrics/metrics_switches.h

// Copyright 2014 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_METRICS_SWITCHES_H_
#define COMPONENTS_METRICS_METRICS_SWITCHES_H_

namespace base {
class CommandLine;
}

namespace metrics {
namespace switches {

// Alphabetical list of switches specific to the metrics component. Document
// each in the .cc file.

extern const char kExportUmaLogsToFile[];
extern const char kForceEnableMetricsReporting[];
extern const char kMetricsRecordingOnly[];
extern const char kMetricsUploadIntervalSec[];
extern const char kResetVariationState[];
extern const char kUkmServerUrl[];
extern const char kUmaServerUrl[];
extern const char kUmaInsecureServerUrl[];

}  // namespace switches

// Returns true if `kMetricsRecordingOnly` is on the command line for the
// current process.
bool IsMetricsRecordingOnlyEnabled();

// Returns true if `kForceEnableMetricsReporting` is on the command line for the
// current process.
bool IsMetricsReportingForceEnabled();

// Returns true if `kForceMsbbSettingOnForUkm` is on the command line for the
// current process.
bool IsMsbbSettingForcedOnForUkm();

// Adds `kMetricsRecordingOnly` to `command_line` if not already present.
void EnableMetricsRecordingOnlyForTesting(base::CommandLine* command_line);

// Adds `kForceEnableMetricsReporting` to the command line for the current
// process if not already present.
void ForceEnableMetricsReportingForTesting();

}  // namespace metrics

#endif  // COMPONENTS_METRICS_METRICS_SWITCHES_H_