#include "chrome/browser/ui/webui/print_preview/print_preview_metrics.h"
#include <optional>
#include "base/containers/flat_set.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
#include "base/strings/strcat.h"
#include "base/time/time.h"
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "printing/mojom/print.mojom.h"
#include "printing/print_job_constants.h"
#include "printing/print_settings.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/crosapi/mojom/extension_printer.mojom-shared.h"
#endif
namespace printing {
namespace {
void ReportPrintSettingHistogram(PrintSettingsBuckets setting) { … }
}
void ReportNumberOfPrinters(size_t number) { … }
void ReportPrintDocumentTypeHistograms(PrintDocumentTypeBuckets doctype) { … }
void ReportPrintSettingsStats(const base::Value::Dict& print_settings,
const base::Value::Dict& preview_settings,
bool is_pdf) { … }
void ReportUserActionHistogram(UserActionBuckets event) { … }
void RecordGetPrintersTimeHistogram(mojom::PrinterType printer_type,
const base::TimeTicks& start_time) { … }
#if BUILDFLAG(IS_CHROMEOS_ASH)
void ReportLacrosExtensionPrintJobStatusFromAshHistogram(
crosapi::mojom::StartPrintStatus status) {
base::UmaHistogramEnumeration("Printing.LacrosExtensions.FromAsh.Job.Result",
status);
}
#endif
}