1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// 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_
|