// Copyright 2022 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_FEATURES_H_ #define COMPONENTS_METRICS_METRICS_FEATURES_H_ #include "base/feature_list.h" #include "base/metrics/field_trial_params.h" namespace metrics::features { // Determines at what point the metrics service is allowed to close a log when // Chrome is closed (and backgrounded/foregrounded for mobile platforms). When // this feature is disabled, the metrics service can only close a log if it has // already started sending logs. When this feature is enabled, the metrics // service can close a log starting from when the first log is opened. BASE_DECLARE_FEATURE(kMetricsServiceAllowEarlyLogClose); // This can be used to disable structured metrics as a whole. BASE_DECLARE_FEATURE(kStructuredMetrics); // Determines whether to schedule a flush of persistent histogram memory // immediately after writing a system profile to it. BASE_DECLARE_FEATURE(kFlushPersistentSystemProfileOnWrite); // Determines whether to perform histogram delta snapshots in a background // thread (in contrast to snapshotting unlogged samples in the background, then // marking them as logged on the main thread). BASE_DECLARE_FEATURE(kMetricsServiceDeltaSnapshotInBg); // Determines whether to always flush Local State immediately after an UMA/UKM // log upload. If this is disabled, Local State is only immediately flushed // after an upload if this is a mobile platform and the browser is in the // background. BASE_DECLARE_FEATURE(kReportingServiceAlwaysFlush); // Controls trimming for metrics logs. This feature allows tuning of the log // trimming behaviour via serverside parameters. Do not remove. See // components/metrics/metrics_service_client.cc and // components/metrics/unsent_log_store.cc. BASE_DECLARE_FEATURE(kMetricsLogTrimming); } // namespace metrics::features #endif // COMPONENTS_METRICS_METRICS_FEATURES_H_