12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "pdf/metrics_handler.h"
- #include <vector>
- #include "base/metrics/histogram_functions.h"
- #include "pdf/document_metadata.h"
- #include "pdf/file_extension.h"
- namespace chrome_pdf {
- namespace {
- // These values are persisted to logs. Entries should not be renumbered and
- // numeric values should never be reused.
- enum class PdfHasAttachment {
- kNo = 0,
- kYes = 1,
- kMaxValue = kYes,
- };
- } // namespace
- MetricsHandler::MetricsHandler() = default;
- MetricsHandler::~MetricsHandler() = default;
- void MetricsHandler::RecordAttachmentTypes(
- const std::vector<DocumentAttachmentInfo>& attachments) {
- for (const auto& info : attachments) {
- base::UmaHistogramEnumeration("PDF.AttachmentType",
- FileNameToExtensionIndex(info.name));
- }
- }
- void MetricsHandler::RecordDocumentMetrics(const DocumentMetadata& metadata) {
- base::UmaHistogramEnumeration("PDF.Version", metadata.version);
- base::UmaHistogramCustomCounts("PDF.PageCount", metadata.page_count, 1,
- 1000000, 50);
- base::UmaHistogramEnumeration(
- "PDF.HasAttachment", metadata.has_attachments ? PdfHasAttachment::kYes
- : PdfHasAttachment::kNo);
- base::UmaHistogramEnumeration("PDF.FormType", metadata.form_type);
- }
- } // namespace chrome_pdf
|