<!--
Copyright 2024 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of plus address histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="PlusAddressModalCompletionStatus">
<variant name="Canceled" summary="Modal canceled"/>
<variant name="Confirmed" summary="Modal confirmed"/>
<variant name="ConfirmError" summary="Confirm error occured"/>
<variant name="ReserveError" summary="Reserve error occured"/>
</variants>
<variants name="PlusAddressModalType">
<variant name="Modal"
summary="modal dialog or bottomsheet without a legal notice."/>
<variant name="ModalWithNotice"
summary="modal dialog or bottomsheet with a legal notice."/>
</variants>
<variants name="PlusAddressNetworkRequestType">
<variant name="Create" summary="Create a Plus Address after reservation"/>
<variant name="GetOrCreate" summary="Get or create a Plus Address"/>
<variant name="List" summary="Retrieve all Plus Addresses"/>
<variant name="Preallocate" summary="Preallocate plus addresses"/>
<variant name="Reserve" summary="Reserve a Plus Address"/>
</variants>
<histogram name="PlusAddresses.AffiliationRequest.ResponseTime" units="ms"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the latency of plus address affiliation requests. Latency is
measured as the difference between when affiliated plus profiles are
requested on PlusAddressAffiliationMatchHelper and when it retrieves a
response. The metric is emmited right before the final response is returned.
</summary>
</histogram>
<histogram name="PlusAddresses.Blocklist.ParsingResult"
enum="PlusAddressBlocklistDataParsingResult" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Parsing result of the response body of the blocklist data received by the
Component Updater.
</summary>
</histogram>
<histogram name="PlusAddresses.NetworkRequest.OauthError"
enum="GoogleServiceAuthError" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records any OAuth error. This is recorded when the PlusAddressHttpClient
needs to fetch an OAuth token to make a network request. This enum also
captures the non-error case with NONE.
</summary>
</histogram>
<histogram name="PlusAddresses.NetworkRequest.{Type}.Latency" units="ms"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the latency of network requests. Latency is measured as the
difference between when the PlusAddressHttpClient issues the request and
when it receives a response. The PlusAddressHttpClient records this whenever
it gets a response for the network requests it makes.
</summary>
<token key="Type" variants="PlusAddressNetworkRequestType"/>
</histogram>
<histogram name="PlusAddresses.NetworkRequest.{Type}.ResponseByteSize"
units="bytes" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the response body size of network requests. PlusAddressHttpClient
records this whenever it gets a response for the network requests it makes.
</summary>
<token key="Type" variants="PlusAddressNetworkRequestType"/>
</histogram>
<histogram name="PlusAddresses.NetworkRequest.{Type}.ResponseCode"
enum="HttpResponseCode" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records HTTP response codes of network requests. PlusAddressHttpClient
records this whenever it gets a response for the network requests it makes.
</summary>
<token key="Type" variants="PlusAddressNetworkRequestType"/>
</histogram>
<histogram name="PlusAddresses.Submission{Segment}" enum="PlusAddressOrGaia"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a user submitted a plus address or their GAIA email.
Emitted whenever a user submits a form for which they have previously seen
at least one plus address suggestion and one of the form fields contains
either a plus address or the user's GAIA email. {Segment}
</summary>
<token key="Segment">
<variant name="" summary=""/>
<variant name=".FirstTimeUser.No"
summary="Emitted only for users who do not have a plus address (on
any domain) when the plus address suggestion is shown."/>
<variant name=".FirstTimeUser.Yes"
summary="Emitted only for users who have at least one plus address
(on any domain) when the plus address suggestion is shown."/>
<variant name=".ManagedUser.No"
summary="Emitted only for users whose Chrome profile is not managed."/>
<variant name=".ManagedUser.Yes"
summary="Emitted only for users whose Chrome profile is managed."/>
<variant name=".SingleFieldRendererForm"
summary="Emitted only if the focused field was the only field in its
renderer form."/>
<variant name=".SingleFieldRendererForm.ManagedUser.No"
summary="Emitted only if the focused field was the only field in its
renderer form and a user whose Chrome profile is not
managed."/>
</token>
</histogram>
<histogram name="PlusAddresses.Suggestion.Events"
enum="PlusAddressSuggestionEvent2" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records user interactions with the experimental plus addresses feature in
autofill. Includes suggestions and clicks of both new plus address creation
suggestions and existing plus address filling suggestions. Recorded when the
suggestions are shown, and when they are chosen.
</summary>
</histogram>
<histogram name="PlusAddresses.{ModalType}.Events"
enum="PlusAddressModalEvent2" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records user interactions with the {ModalType}. Written when the user clicks
either of the cancel or ok buttons, and when the modal is presented to th
user.
</summary>
<token key="ModalType" variants="PlusAddressModalType"/>
</histogram>
<histogram name="PlusAddresses.{ModalType}.{Status}.Refreshes"
units="refreshes" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records number of times a user refreshes the proposed plus addresses during
the lifetime of a {ModalType}. Emitted once per creation dialog including
error states.
</summary>
<token key="ModalType" variants="PlusAddressModalType"/>
<token key="Status" variants="PlusAddressModalCompletionStatus"/>
</histogram>
<histogram name="PlusAddresses.{ModalType}.{Status}.ShownDuration" units="ms"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration of time the user takes to interact with the
{ModalType}, providing insight on the user experience with it. The duration
is the span between when the modal/bottomsheet is shown and when the user
decides to confirm or cancel the plus address. An error status is recorded
if the user cancels after an error occurs.
</summary>
<token key="ModalType" variants="PlusAddressModalType"/>
<token key="Status" variants="PlusAddressModalCompletionStatus"/>
</histogram>
</histograms>
</histogram-configuration>