blob: a18b7f568e00d4009e16c09f1c38a7c42969c2b2 [file] [log] [blame]
// Copyright 2025 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_ENTERPRISE_BROWSER_REPORTING_REPORT_GENERATION_CONFIG_H_
#define COMPONENTS_ENTERPRISE_BROWSER_REPORTING_REPORT_GENERATION_CONFIG_H_
#include <cstdint>
#include <string>
#include "components/enterprise/browser/reporting/report_type.h"
// Enum represnting how security signals will be included in the current report.
// This enum should be kept in sync with the `SecuritySignalsMode` enum in
// tools/metrics/histograms/metadata/enterprise/enums.xml.
enum class SecuritySignalsMode {
// No security signals will be uploaded in the report.
kNoSignals = 0,
// Security signals will be uploaded alongside an existing report format. Only
// profile status report is currently supported.
kSignalsAttached = 1,
// Security signals will be uploaded exclusively in its own report.
kSignalsOnly = 2,
kMaxValue = kSignalsOnly
};
namespace enterprise_reporting {
// The trigger leading to report generation. Values are bitmasks in the
// |pending_triggers_| bitfield.
enum ReportTrigger : uint32_t {
kTriggerNone = 0, // No trigger.
kTriggerTimer = 1U << 0, // The periodic timer expired.
kTriggerUpdate = 1U << 1, // An update was detected.
kTriggerNewVersion = 1U << 2, // A new version is running.
kTriggerManual = 1U << 3, // Trigger manually.
kTriggerSecurity = 1U << 4, // Triggered by a security trigger.
};
// Struct that includes various configuration of report generation and upload
// process. Only used by profile-level reporting for now.
struct ReportGenerationConfig {
ReportGenerationConfig(ReportTrigger report_trigger,
ReportType report_type,
SecuritySignalsMode security_signals_mode,
bool use_cookies);
explicit ReportGenerationConfig(ReportTrigger report_trigger);
ReportGenerationConfig();
~ReportGenerationConfig();
bool operator==(const ReportGenerationConfig&) const;
// Returns readable string representation of the configuration, used for
// logging and debugging purposes.
std::string ToString() const;
ReportTrigger report_trigger;
ReportType report_type;
SecuritySignalsMode security_signals_mode;
bool use_cookies;
};
} // namespace enterprise_reporting
#endif // COMPONENTS_ENTERPRISE_BROWSER_REPORTING_REPORT_GENERATION_CONFIG_H_