blob: 921825e83a12056ec47e7eb9f56bccff3b6ef9a8 [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.
#include "components/omnibox/browser/omnibox_logging_utils.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/strcat.h"
#include "components/omnibox/browser/autocomplete_match.h"
#include "components/omnibox/browser/omnibox_metrics_provider.h"
namespace {
// This function provides a logging implementation that aligns with the original
// definition of the `DEPRECATED_UMA_HISTOGRAM_MEDIUM_TIMES()` macro, which is
// currently being used to log the `FocusToOpenTimeAnyPopupState3` Omnibox
// metric.
void LogHistogramMediumTimes(const std::string& histogram_name,
base::TimeDelta elapsed) {
base::UmaHistogramCustomTimes(histogram_name, elapsed, base::Milliseconds(10),
base::Minutes(3), 50);
}
} // namespace
namespace omnibox {
void LogFocusToOpenTime(
base::TimeDelta elapsed,
bool is_zero_prefix,
::metrics::OmniboxEventProto::PageClassification page_classification,
const AutocompleteMatch& match,
size_t action_index) {
LogHistogramMediumTimes("Omnibox.FocusToOpenTimeAnyPopupState3", elapsed);
std::string summarized_result_type;
switch (OmniboxMetricsProvider::GetClientSummarizedResultType(
match.GetOmniboxEventResultType(action_index))) {
case ClientSummarizedResultType::kSearch:
summarized_result_type = "SEARCH";
break;
case ClientSummarizedResultType::kUrl:
summarized_result_type = "URL";
break;
default:
summarized_result_type = "OTHER";
break;
}
LogHistogramMediumTimes(
base::StrCat(
{"Omnibox.FocusToOpenTimeAnyPopupState3.BySummarizedResultType.",
summarized_result_type}),
elapsed);
const std::string page_context =
::metrics::OmniboxEventProto::PageClassification_Name(
page_classification);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.ByPageContext.",
page_context}),
elapsed);
LogHistogramMediumTimes(
base::StrCat(
{"Omnibox.FocusToOpenTimeAnyPopupState3.BySummarizedResultType.",
summarized_result_type, ".ByPageContext.", page_context}),
elapsed);
if (is_zero_prefix) {
LogHistogramMediumTimes("Omnibox.FocusToOpenTimeAnyPopupState3.ZeroSuggest",
elapsed);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.ZeroSuggest."
"BySummarizedResultType.",
summarized_result_type}),
elapsed);
LogHistogramMediumTimes(
base::StrCat(
{"Omnibox.FocusToOpenTimeAnyPopupState3.ZeroSuggest.ByPageContext.",
page_context}),
elapsed);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.ZeroSuggest."
"BySummarizedResultType.",
summarized_result_type, ".ByPageContext.", page_context}),
elapsed);
} else {
LogHistogramMediumTimes(
"Omnibox.FocusToOpenTimeAnyPopupState3.TypedSuggest", elapsed);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.TypedSuggest."
"BySummarizedResultType.",
summarized_result_type}),
elapsed);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.TypedSuggest."
"ByPageContext.",
page_context}),
elapsed);
LogHistogramMediumTimes(
base::StrCat({"Omnibox.FocusToOpenTimeAnyPopupState3.TypedSuggest."
"BySummarizedResultType.",
summarized_result_type, ".ByPageContext.", page_context}),
elapsed);
}
}
} // namespace omnibox