<!--
Copyright 2020 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 Profile 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
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

<!-- LINT.IfChange(BrowserProfileType) -->

<variants name="BrowserProfileType">
  <variant name="EnterpriseIsolated"/>
  <variant name="Guest"/>
  <variant name="Incognito"/>
  <variant name="OtherOffTheRecordProfile"/>
  <variant name="Regular"/>
  <variant name="System"/>
</variants>

<!-- LINT.ThenChange(//chrome/browser/profiles/profile_load_tracker_win.cc:BrowserProfileType) -->

<!-- LINT.IfChange(ProfileActivityThreshold) -->

<variants name="ProfileActivityThreshold">
  <variant name="" summary="28 days"/>
  <variant name=".1Day" summary="1 day"/>
  <variant name=".7Days" summary="7 days"/>
</variants>

<!-- LINT.ThenChange(//components/profile_metrics/counts.cc:ProfileActivityThreshold) -->

<variants name="ProfilePickerFlowType">
  <variant name="FREFlow" summary="Recorded for the FRE flow."/>
  <variant name="GlicFlow" summary="Recorded for the Glic flow."/>
  <variant name="ProfilePickerFlow"
      summary="Recorded for the regular Profile Picker Flow."/>
</variants>

<!-- LINT.IfChange(ProfileStateGroup) -->

<variants name="ProfileStateGroup">
  <variant name="_ActiveMultiProfile"
      summary="Recorded only for users with &gt;=2 active profiles; recorded
               for all their profiles."/>
  <variant name="_All" summary="Recorded for every profile of every user."/>
  <variant name="_AllManagedDevice"
      summary="Recorded for every profile of every user on managed devices."/>
  <variant name="_AllUnmanagedDevice"
      summary="Recorded for every profile of every user on unmanaged devices."/>
  <variant name="_LatentMultiProfile"
      summary="Recorded only for users with &gt;=2 profiles but only one
               active; recorded for all their profiles."/>
  <variant name="_LatentMultiProfileActive"
      summary="Recorded only for users with &gt;=2 profiles but only one
               active; recorded only for the one active profile."/>
  <variant name="_LatentMultiProfileOthers"
      summary="Recorded only for users with &gt;=2 profiles but only one
               active; recorded only for the non-active profiles."/>
  <variant name="_ManagementDisclaimerAccepted"
      summary="Recorded for profiles where management disclaimer was
               accepted."/>
  <variant name="_ManagementDisclaimerNotAccepted"
      summary="Recorded for profiles where management disclaimer was not
               accepted."/>
  <variant name="_SingleProfile"
      summary="Recorded only for single-profile users."/>
  <variant name="_UponDeletion"
      summary="Recorded for a profile upon its deletion"/>
</variants>

<!-- LINT.ThenChange(//components/profile_metrics/state.h:StateSuffix) -->

<histogram name="Profile.AddNewUser" enum="ProfileAddNewUser"
    expires_after="2027-01-31">
  <owner>rogerta@chromium.org</owner>
  <summary>The frequency of ways that new user profiles are added.</summary>
</histogram>

<histogram name="Profile.AddSignInFlowOutcome"
    enum="ProfileSignedInFlowOutcome" expires_after="2026-12-20">
  <owner>rsult@google.com</owner>
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the outcome of signed-in profile creation whenever it's started (by
    user choosing to sign-in in the first screen of the profile creation flow).
  </summary>
</histogram>

<histogram name="Profile.AppCount" units="units" expires_after="2024-07-07">
  <owner>etienneb@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>The number of installed apps when a profile is opened.</summary>
</histogram>

<histogram name="Profile.Avatar" enum="ProfileAvatar"
    expires_after="2027-01-17">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>The frequency of selection of each avatar.</summary>
</histogram>

<histogram name="Profile.BookmarksSize" units="MB" expires_after="2027-01-17">
  <owner>etienneb@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>Size of the bookmarks database.</summary>
</histogram>

<histogram name="Profile.BrowserActive.PerProfile" enum="Profile"
    expires_after="2027-01-24">
  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Recorded every time a browser window becomes active. Each profile on a
    client is assigned a unique bucket, i.e. whenever a browser window of
    profile x becomes active, an entry is recorded in bucket x.

    Example: A user has 2 profiles and opens 1 browser window for each of them.
    When the user switches back and forth between the windows, multiple entries
    will be recorded in bucket 1 and 2, corresponding to the profiles.

    Note: The guest profile has bucket 0. Regular profiles start at bucket 1.
    Incognito browser windows count towards the original profile.
  </summary>
</histogram>

<histogram name="Profile.DeleteProfileAction" enum="ProfileDeleteAction"
    expires_after="never">
<!-- expires-never: Used to log the profile deletions actions and their source.
      Profile deletion removes the entire local profile, which means that it
      deletes user data and this operation cannot be undone. Therefore it is
      important to not see unexplainable spikes in the profile deletion
      operations. -->

  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    This histogram tracks which UI screen was used to initiate and confirm the
    deletion of a profile. This does not track when the profile is actually
    deleted, which is an asynchronous process that happens later. Not all
    buckets in the histogram correspond to profile deletion so the sum is not
    the count of deleted profiles.
  </summary>
</histogram>

<histogram name="Profile.DeleteProfileContext" enum="ProfileDeleteContext"
    expires_after="2026-12-27">
  <owner>alexilin@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <owner>msalama@chromium.org</owner>
  <summary>
    This histogram tracks the context of profile deletion whenever a profile is
    scheduled for deletion (from user action in the UI). Only recorded if the
    profile has a valid entry in ProfileAttributesStorage.
  </summary>
</histogram>

<histogram name="Profile.Destroyer.OffTheRecord" enum="ProfileDestructionType"
    expires_after="2027-01-17">
  <owner>arabm@google.com</owner>
  <owner>dullweber@chromium.org</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    Track if the off-the-record profile was immidiately destroyed when asked to
    be destroyed, or was scheduled for a delayed destruction, and possibly was
    not destroyed properly after the delay and was crashed.
  </summary>
</histogram>

<histogram name="Profile.DidDestroyProfileBeforeShutdown" enum="Boolean"
    expires_after="2027-01-08">
  <owner>nicolaso@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Whether any profile reached a refcount of 0 at any point, prior to exiting
    Chrome. Recorded during teardown.

    Warning: this histogram was expired from 2023-10-11 to 2024-06-18; data may
    be missing.
  </summary>
</histogram>

<histogram name="Profile.Guest.ForcedByPolicy" enum="BooleanForced"
    expires_after="2027-01-03">
  <owner>duellweber@chromium.org</owner>
  <owner>arabm@google.com</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    Records if a Guest session is started by user's request or is forced by a
    policy. This is recorded when a Guest profile is created.
  </summary>
</histogram>

<histogram name="Profile.Guest.OTR.Lifetime" units="minutes"
    expires_after="2027-01-17">
  <owner>arabm@google.com</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    This histogram records the lifetime duration of an off-the-record Guest
    profile. It is recorded once the profile for the Guest session is closed.
  </summary>
</histogram>

<histogram name="Profile.Incognito.Lifetime" units="minutes"
    expires_after="2027-01-31">
  <owner>rhalavati@chromium.org</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    This histogram records the lifetime duration of incognito profiles. It is
    recorded once an off the record profile for an incognito session is closed.
    From M91, this metric is not recorded for ChromeOS non user-triggered
    Incognito profiles.
  </summary>
</histogram>

<histogram name="Profile.Incognito.MainFrameNavigationsPerSession"
    units="navigations" expires_after="2027-01-10">
  <owner>rhalavati@chromium.org</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    This histogram records the number of mainframe navigations that have been
    done during one Incognito session. It is recorded once an off the record
    profile for an incognito session is closed. From M91, this metric is not
    recorded for ChromeOS non user-triggered Incognito profiles.
  </summary>
</histogram>

<histogram name="Profile.Incognito.MovedToBackgroundAfterDuration"
    units="minutes" expires_after="2027-01-17">
  <owner>arabm@google.com</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    This histogram records the duration of an Incognito session on Android, when
    it goes to background or is closed by the user. The session duration is
    considered from when the Incognito profile is created.
  </summary>
</histogram>

<histogram name="Profile.Incognito.ResumedAfterReportedDuration"
    units="minutes" expires_after="never">
<!-- expires-never: One of the top level productmetrics we want to track closely,
    which which in conjunction with MovedToBackgroundAfterDuration helps measure
    session duration. -->

  <owner>arabm@google.com</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    When Chrome comes back to foreground on Android and it already has an
    Incognito session, this histogram records the last duration time reported by
    'Profile.Incognito.MovedToBackgroundAfterDuration' metric. The subtraction
    of these two histograms can give a histogram of Incognito session duration.
  </summary>
</histogram>

<histogram name="Profile.KeepAliveLeakAtShutdown" enum="ProfileKeepAliveOrigin"
    expires_after="2027-01-08">
  <owner>nicolaso@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Recorded during BrowserProcess teardown. Indicates that a Profile still has
    ScopedProfileKeepAlive objects referencing it, of the given origin. This is
    a sign of a bug, or incorrect usage of the ScopedProfileKeepAlive API.

    Only regular Profiles are considered for this metric (no Incognito, Guest,
    or System Profiles).

    Warning: this histogram was expired from 2024-04-28 to 2024-06-18; data may
    be missing.
  </summary>
</histogram>

<histogram name="Profile.LiveProfileCount" units="profiles"
    expires_after="2026-12-27">
  <owner>nicolaso@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Number of Profiles that are currently loaded in memory, with a non-zero
    refcount. Recorded 30 minutes after startup, and every 30 minutes
    afterwards. Only regular Profiles are considered for this metric (no
    Incognito, Guest, or System Profiles).

    See also Profile.ZombieProfileCount, the number of Profiles with a refcount
    of 0.

    Warning: this histogram was expired 2023-10-11 to 2024-06-18; data may be
    missing.
  </summary>
</histogram>

<histogram name="Profile.Menu.ClickedActionableItem{ProfileType}"
    enum="ProfileMenuActionableItem" expires_after="2027-02-07">
  <owner>rsult@google.com</owner>
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Recorded when an actionable item (e.g. button, link) in the profile menu is
    clicked. {ProfileType}.
  </summary>
  <token key="ProfileType">
    <variant name="" summary="Output for all profile types"/>
    <variant name="_Supervised"
        summary="Output only for profiles which are subject to parental
                 controls"/>
  </token>
</histogram>

<histogram name="Profile.NetUserCount" enum="ProfileNetUserCount"
    expires_after="2027-01-17">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Counts of users added and deleted. Percentages are not meaningful. Please
    look at the ratio of the counts/percentages.
  </summary>
</histogram>

<histogram name="Profile.NukeFromDisk.Result" enum="NukeProfileResult"
    expires_after="2027-01-08">
  <owner>nicolaso@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Recorded when a profile directory gets deleted from disk, e.g. because it
    was an ephemeral profile, or the user requested its destruction. Indicates
    whether the operation succeeded or failed.

    If the operation fails, it may be retried (up to 3 times). Each try is
    tracked as a separate enum value.

    Warning: this histogram was expired 2024-04-28 to 2024-06-18; data may be
    missing.
  </summary>
</histogram>

<histogram name="Profile.NumberOfAccountsPerProfile" units="units"
    expires_after="2027-01-17">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the number of Google-managed accounts linked to a profile. This may
    be counted multiple times per profile. Please review with the &quot;Show
    user counts&quot; option enabled on the dashboard.
  </summary>
</histogram>

<histogram name="Profile.NumberOfActiveProfiles{ProfileActivityThreshold}"
    units="profiles" expires_after="2027-01-31">
  <owner>droger@chromium.org</owner>
  <owner>feuunk@chromium.org</owner>
  <summary>
    Counts the number of profiles used in the last {ProfileActivityThreshold} on
    a user's machine. Only emitted for users with at least one profile (of any
    type). This histogram can be compared with Profile.NumberOfProfiles, which
    counts all profiles regardless of activity and also is emitted on clients
    with no profiles of any type. These include only &quot;regular&quot;
    profiles; neither of these histograms include system or guest profiles even
    if some are open at the time the histogram is emitted. Both histograms do
    not count incognito profiles separately; they are considered part of their
    &quot;parent&quot; profile.

    However, as of Feb 2024 intention is not reality. Chrome on Android assumes
    the (sole) profile is active, even if it is not. Before M129, Chrome on iOS
    assumed the (sole) profile is inactive, even if it is active. On desktop
    platforms (all milestones) and on iOS M129+, the activity detection is
    believed to work reliably.

    Also of note: ChromeOS has a notion of &quot;users&quot;. A ChromeOS device
    may have multiple users. Users are an entirely different concept than
    profiles. ChromeOS may allow a user to have and use multiple profiles
    someday. As of Feb 2024, it does not.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.
  </summary>
  <token key="ProfileActivityThreshold" variants="ProfileActivityThreshold"/>
</histogram>

<histogram name="Profile.NumberOfManagedProfiles{ProfileActivityThreshold}"
    units="profiles" expires_after="2027-02-07">
  <owner>agawronska@chromium.org</owner>
  <owner>cros-families-eng@google.com</owner>
  <summary>
    Counts the number of locally managed profiles on a user's machine. Only
    emitted for users with at least one profile (of any type). Does not include
    guest profiles even if they are managed per device policy and even if one is
    open at the time the histogram is emitted. An incognito profile is also not
    counted separately (even if it is managed); it is considered part of its
    &quot;parent&quot; profile.

    This is intended to count only profiles that have been used in the last
    {ProfileActivityThreshold}. However, active usage detection does not work
    correctly on all platforms and for all Chrome versions. See details in the
    description of Profile.NumberOfActiveProfiles.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.

    Might have incomplete data between 2021-03-12 and 2021-05-26.
  </summary>
  <token key="ProfileActivityThreshold" variants="ProfileActivityThreshold"/>
</histogram>

<histogram name="Profile.NumberOfProfiles" units="profiles"
    expires_after="2027-01-31">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Counts the number of profiles on a user's machine. Includes only
    &quot;regular&quot; profiles; does not include system or guest profiles even
    if some are open at the time the histogram is emitted. An incognito profile
    is also not counted separately; it is considered part of its
    &quot;parent&quot; profile.

    Note: ChromeOS has a notion of &quot;users&quot;. A ChromeOS device may have
    multiple users. Users are an entirely different concept than profiles.
    ChromeOS may allow a user to have and use multiple profiles someday. As of
    Feb 2024, it does not.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.

    This counts the total number of profiles on the user's device, regardless of
    whether they've been used recently.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfilesAtProfileInit" units="profiles"
    expires_after="2027-01-17">
  <owner>alexilin@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the count of profiles every time a profile is initialized. The count
    includes the newly initialized profile. Only recorded for on-disk profiles
    (Incognito and Guest are excluded, for example).

    The total histogram count can be used to estimate how many profiles were
    initialized in total.
  </summary>
</histogram>

<histogram name="Profile.NumberOfProfilesAtProfileSwitch" units="profiles"
    expires_after="2027-01-17">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the count of profiles for each profile switch (incl. switching
    between concurrently open profiles by activating their browser windows). The
    count excludes the Guest profile so records in bucket 1 denote switches
    between the single profile and the Guest profile.
  </summary>
</histogram>

<histogram name="Profile.NumberOfSignedInProfiles{ProfileActivityThreshold}"
    units="profiles" expires_after="2027-02-07">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Counts the number of signed-in (syncing) profiles on a user's machine. Only
    emitted for users with at least one profile (of any type).

    This is intended to count only profiles that have been used in the last
    {ProfileActivityThreshold}. However, active usage detection does not work
    correctly on all platforms and for all Chrome versions. See details in the
    description of Profile.NumberOfActiveProfiles.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.
  </summary>
  <token key="ProfileActivityThreshold" variants="ProfileActivityThreshold"/>
</histogram>

<histogram name="Profile.NumberOfUnusedProfiles{ProfileActivityThreshold}"
    units="profiles" expires_after="2027-01-03">
  <owner>msarda@chromium.org</owner>
  <owner>droger@chromium.org</owner>
  <summary>
    Counts the number of profiles that have not been used within the past 28
    days on a user's machine. Only emitted for users with at least one profile
    (of any type).

    This is intended to count only profiles that have not been used in the last
    {ProfileActivityThreshold}. However, active usage detection does not work
    correctly on all platforms and for all Chrome versions. See details in the
    description of Profile.NumberOfActiveProfiles.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.
  </summary>
  <token key="ProfileActivityThreshold" variants="ProfileActivityThreshold"/>
</histogram>

<histogram name="Profile.PercentageOfManagedProfiles{ProfileActivityThreshold}"
    units="units" expires_after="2026-12-21">
  <owner>longbowei@google.com</owner>
  <owner>zhangwenyu@google.com</owner>
  <owner>cros-families-eng@google.com</owner>
  <summary>
    Tracks the percentage (0-100) of profiles that are locally managed. Only
    emitted for users with at least one profile (of any type). Both numerator
    and denominator include only &quot;regular&quot; profiles; neither include
    system or guest profiles (even if some are open at the time the histogram is
    emitted and even if guest profiles are managed per device policy). Likewise,
    both histograms do not count incognito profiles separately (even if
    managed); they are considered part of their &quot;parent&quot; profile.

    This is intended to count only profiles in the numerator that have been used
    in the last {ProfileActivityThreshold}. However, active usage detection does
    not work correctly on all platforms and for all Chrome versions. See details
    in the description of Profile.NumberOfActiveProfiles.

    On non-iOS platforms, this histogram is emitted on startup if it has been
    more than 24 hours since the last time the histogram was emitted. It is also
    emitted while Chrome is running when Chrome realizes that it has been 24
    hours since the last time the histogram was emitted. (This normally happens
    24 hours after the last emit, but may be longer if the device was asleep /
    suspended at the time. If so, it will be emitted when the device wakes up.)
    One consequence of this 24 hour timer is that a user may use Chrome in a day
    and not emit this histogram. For example, if a user used Chrome the previous
    day at 5pm and a histogram was emitted then, then used Chrome on this day at
    10am, then closed Chrome, this histogram will not be emitted on this day.

    On iOS, this histogram is always emitted on profile open and not emitted any
    other time.
  </summary>
  <token key="ProfileActivityThreshold" variants="ProfileActivityThreshold"/>
</histogram>

<histogram name="Profile.ProfileError2" enum="ProfileErrorType"
    expires_after="2027-02-07">
  <owner>etienneb@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Counts the number of times a profile error dialog is shown. The dialog will
    ask the user if they want to upload an error report for Google to debug the
    issue.
  </summary>
</histogram>

<histogram name="Profile.ProfilesOrderChanged" enum="BooleanHit"
    expires_after="2026-07-29">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Counts the number of times the user reorders profiles by drag and drop in
    the profile picker. Recorded every time the profile ordering changes.
  </summary>
</histogram>

<histogram name="Profile.SessionDuration.PerProfile" enum="Profile"
    expires_after="2027-02-07">
  <owner>msarda@chromium.org</owner>
  <owner>alexilin@chromium.org</owner>
  <summary>
    Browsing session duration in minutes, recorded per profile. Each profile on
    a client is assigned a unique bucket.

    Recorded when the user switches profiles, after some time of
    inactivity(usually 5 minutes) or at browser shutdown.

    Example: A user has 2 profiles. They open a browser window of profile 1 and
    interact with the browser for 8 minutes. Then they open a browser window of
    profile 2 and interact with the browser for 3 minutes. Then they do nothing
    (=stay inactive) for while. The recorded values will be: (bucket 1: 8),
    (bucket 2: 3).

    Note: The guest profile has bucket 0. Regular profiles start at bucket 1.
    Incognito profiles count towards the original profile.
  </summary>
</histogram>

<histogram name="Profile.State.LastUsed{ProfileStateGroup}" units="days"
    expires_after="2027-02-07">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    The number of days since a profile was last used. Recorded on startup of
    Chrome and whenever Chrome is used after at least 30 minutes of inactivity.
    {ProfileStateGroup}
  </summary>
</histogram>

<histogram name="Profile.State.SyncEnabled{ProfileStateGroup}"
    enum="BooleanEnabled" expires_after="2027-02-07">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    The sync status of the profile. Recorded on startup of Chrome and whenever
    Chrome is used after at least 30 minutes of inactivity. {ProfileStateGroup}
  </summary>
</histogram>

<histogram
    name="Profile.State.UnconsentedPrimaryAccountType{ProfileStateGroup}"
    enum="ProfileUnconsentedPrimaryAccountType" expires_after="2027-02-07">
  <owner>droger@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    The type of profile's unconsented primary account. Recorded on startup of
    Chrome and whenever Chrome is used after at least 30 minutes of inactivity.
    {ProfileStateGroup}
  </summary>
</histogram>

<histogram name="Profile.TotalSize" units="MB" expires_after="2027-01-17">
  <owner>etienneb@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>Total size of the profile data (excluding sub-folders).</summary>
</histogram>

<histogram name="Profile.TotalSizeRecursive" units="MB"
    expires_after="2027-01-17">
  <owner>anthonyvd@chromium.org</owner>
  <owner>chrome-catan@google.com</owner>
  <summary>
    Total size of the profile data (including sub-folders).

    Recorded with some delay after a profile is loaded, excluding off-the-record
    profiles.
  </summary>
</histogram>

<histogram name="Profile.UserAction.PerProfile" enum="Profile"
    expires_after="never">
<!-- expires-never: Used by the Chrome Profile Metrics dashboard to track user
      actions per profile, for users with multiple active profiles. -->

  <owner>msarda@chromium.org</owner>
  <owner>tangltom@chromium.org</owner>
  <summary>
    Helper histogram to track user actions per profile. Recorded when there is
    an active profile browser instance and a UMA UserAction is recorded, i.e. if
    there's an active profile, a recording of a UMA UserAction will result in a
    recording of a sample in this histogram.

    Each profile on a client is assigned a unique bucket, i.e. whenever a user
    action happens in a browser of profile x, an entry is recorded in bucket x.

    This histogram is used in the profile dashboard, see go/profile-metrics and
    go/profile-metrics-dashboard.

    Example: A user has 2 profiles and opens a browser window for each of them.
    When the user adds a new tab in each of the browsers, an entry is recorded
    in bucket 1 and 2, corresponding to the profiles. (Adding a new tab is a
    recorded user metrics action.)

    Note: The guest profile has bucket 0. Regular profiles start at bucket 1.
    Incognito profiles count towards the original profile.
  </summary>
</histogram>

<histogram name="Profile.Windows.ProfileLockStatus.{BrowserProfileType}"
    enum="ProfileLockStatus" expires_after="2027-03-13">
  <owner>spvm@chromium.org</owner>
  <owner>catan-team@chromium.org</owner>
  <summary>
    Records the status of the creation/acquiry of the Profile.lock file on
    Windows in a {BrowserProfileType} profile. Specifically whether it was
    locked by another process or if the previous session crashed. Recorded once
    per profile load.
  </summary>
</histogram>

<histogram
    name="Profile.Windows.ProfilePreviousExitStatus.{BrowserProfileType}"
    enum="ProfilePreviousExitStatus" expires_after="2027-03-13">
  <owner>spvm@chromium.org</owner>
  <owner>catan-team@chromium.org</owner>
  <summary>
    Records the status of the previous exit of the profile load for a
    {BrowserProfileType} profile on Windows. Specifically, whether there was a
    crash, and whether there was an unacked crash bubble present. Recorded once
    per profile load only if Profile.lock was successfully acquired and both
    Profile.waiting_for_crash_ack and Profile.crashed were successfully created.
  </summary>
</histogram>

<histogram name="Profile.Windows.{Operation}{File}Result.{BrowserProfileType}"
    enum="WinGetLastError" expires_after="2027-03-13">
  <owner>spvm@chromium.org</owner>
  <owner>catan-team@chromium.org</owner>
  <summary>
    Records the Windows error code following the {Operation} call on the
    `Profile.{File}` file in a {BrowserProfileType} profile, which may otherwise
    corrupt subsequent data reporting of Profile.Windows.LoadStatus given that
    the marker files were left around.
  </summary>
  <token key="Operation">
    <variant name="Create" summary="base::File::File()"/>
    <variant name="Delete" summary="base::DeleteFile()"/>
  </token>
  <token key="File">
    <variant name="CrashAck" summary="waiting_for_crash_ack"/>
    <variant name="Dirty" summary="dirty"/>
    <variant name="Lock" summary="lock"/>
  </token>
</histogram>

<histogram name="Profile.ZombieProfileCount" units="profiles"
    expires_after="2026-11-01">
  <owner>nicolaso@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Number of Profiles that are in a &quot;zombie&quot; state. Recorded 30
    minutes after startup, and every 30 minutes afterwards. Only regular
    Profiles are considered for this metric (no Incognito, Guest, or System
    Profiles). A &quot;zombie&quot; profile is one of 2 things, depending on the
    DestroyProfileOnBrowserClose (DPoBC) variation:

    If DPoBC is false: the Profile has a refcount of 0, but is still loaded in
    memory.

    If DPoBC is false: the Profile object was destroyed, and isn't loaded in
    memory anymore.

    When a Profile is destroyed but gets loaded from disk again, it stops being
    a zombie.

    See also Profile.LiveProfileCount, the number of profiles with a non-zero
    refcount.
  </summary>
</histogram>

<histogram name="Profile.{Database}Size" units="MB" expires_after="2027-01-03">
  <owner>etienneb@chromium.org</owner>
  <owner>gab@chromium.org</owner>
  <summary>
    Size of the {Database} database.

    These metrics were expired between July 2022 and June 2023 and may be
    missing data.
  </summary>
  <token key="Database">
    <variant name="Cookies"/>
    <variant name="Extension"/>
    <variant name="Favicons"/>
    <variant name="History"/>
    <variant name="TopSites"/>
    <variant name="TotalHistory"/>
    <variant name="VisitedLinks"/>
    <variant name="WebData"/>
  </token>
</histogram>

<histogram name="ProfileChooser.HasProfilesShown" enum="BooleanShown"
    expires_after="2026-10-11">
  <owner>droger@chromium.org</owner>
  <owner>chrome-password-manager-metrics-alerts@google.com</owner>
  <summary>
    Whether any profile was shown in the list when the profile chooser was
    opened.
  </summary>
</histogram>

<histogram name="ProfilePicker.AskOnStartup" enum="BooleanEnabled"
    expires_after="2024-02-25">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the state of the &quot;Ask on startup&quot; user preference that
    controls whether the profile picker should be shown on startup. Recorded on
    startup of Chrome.
  </summary>
</histogram>

<histogram name="ProfilePicker.AskOnStartupChanged" enum="BooleanEnabled"
    expires_after="2023-04-23">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the state of the &quot;Ask on startup&quot; checkbox upon user
    action to check/uncheck &quot;Ask on startup&quot; in the profile picker
    main screen.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstProfileTime.FirstWebContentsFinishReason"
    enum="StartupProfilingFinishReason" expires_after="2027-01-17">
  <owner>dgn@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    [Desktop] The reason for which profile picker startup profiling was deemed
    complete. Logged once per session when the user opens a profile from the
    profile picker shown on startup.

    Used to understand user behavior shifts when
    ProfilePicker.FirstProfileTime.FirstWebContentsNonEmptyPaint regresses
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstProfileTime.FirstWebContentsNonEmptyPaint"
    units="ms" expires_after="2027-01-24">
  <owner>dgn@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Measure the elapsed time from when the user selects a profile on the startup
    profile picker to the first non empty paint of the first web contents. This
    is recorded when the user selects an existing profile from that profile
    picker shown on startup.

    Together with ProfilePicker.StartupTime.FirstPaint.FromApplicationStart,
    this metric is intended to capture the startup latency for a common case
    where Startup.FirstWebContents.NonEmptyPaint3 is not recorded due to the
    profile picker interrupting browser startup.
  </summary>
</histogram>

<histogram
    name="ProfilePicker.FirstProfileTime.FirstWebContentsNonEmptyPaint.AutoLaunchByOs"
    units="ms" expires_after="2026-12-27">
  <owner>atharvmaan@google.com</owner>
  <owner>chrome-desktop-ui-waterloo@google.com</owner>
  <summary>
    Same as ProfilePicker.FirstProfileTime.FirstWebContentsNonEmptyPaint, but
    recorded only for browser launches initiated automatically by the OS.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.DefaultBrowser"
    enum="FirstRunDefaultBrowserChoice" expires_after="2027-01-24">
  <owner>dgn@chromium.org</owner>
  <owner>for-you-fre@google.com</owner>
  <summary>
    Records the user's choice for the prompt asking if they want to set Chrome
    to be their default browser, in the first run experience.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.ExitStatus" enum="FirstRunExitStatus"
    expires_after="2027-02-07">
  <owner>dgn@chromium.org</owner>
  <owner>for-you-fre@google.com</owner>
  <summary>
    Records the status when the first run experience is exited. Note that some
    experiments can override the behaviour at the end of the first run, based on
    the the status. This histogram is recorded before the override happens.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.FinishReason"
    enum="FirstRunFinishReason" expires_after="2027-01-24">
  <owner>dgn@chromium.org</owner>
  <owner>for-you-fre@google.com</owner>
  <summary>
    Records the reason why the first run experience was marked finished. This
    aims at tracking how often policies or some pre-existing state suppresses
    the first run experience. It is tracked by the first run service itself,
    when the flow completes (or is suppressed).
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.OrganizationAvailableTiming" units="ms"
    expires_after="2026-12-14">
  <owner>ernn@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the time between the first run of Chrome on Desktop is loaded and
    the organization name is available to be shown in the enterprise disclaimer.
    This is only logged if the device is managed and the policy store is loaded
    in the specified time delay.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.PolicyStoreState"
    enum="FirstRunCloudPolicyStoreState" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the loading state of the clould policy store when it is loaded or
    after a specified time delay. This is recorded for the first run experience
    on desktop for managed devices. This is needed to track if the managed
    organization name has been properly displayed in the first run experience
    managed disclaimer.
  </summary>
</histogram>

<histogram name="ProfilePicker.FirstRun.ServiceCreated" enum="BooleanCreated"
    expires_after="2027-01-17">
  <owner>dgn@chromium.org</owner>
  <owner>for-you-fre@google.com</owner>
  <summary>
    Records first run service creations in this current profile. true is
    recorded if the service was successfully created, and false is recorded if
    it was suppressed because the feature is disabled. If this is not the first
    run or the profile is not able to display the first run experience, nothing
    will be recorded.
  </summary>
</histogram>

<histogram name="ProfilePicker.FREFlow.FeatureShowcase.StartBrowsing"
    enum="FeatureShowcaseStep" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the Feature Showcase step the user was looking at when they clicked
    the 'Start Browsing' button.
  </summary>
</histogram>

<histogram name="ProfilePicker.FREFlow.FeatureShowcase.StepEligible"
    enum="FeatureShowcaseStep" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the Feature Showcase step when it is eligible to be shown to the
    user during the first run experience. Recorded when the user first enter the
    Feature Showcase step. Records each step the user is eligible for.
  </summary>
</histogram>

<histogram name="ProfilePicker.FREFlow.FeatureShowcase.StepShown"
    enum="FeatureShowcaseStep" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the Feature Showcase step when it is shown to the user during the
    first run experience. Recorded every time a step is shown.
  </summary>
</histogram>

<histogram
    name="ProfilePicker.FREFlow.FeatureShowcase.StepUserAction.{FeatureShowcaseStep}"
    enum="FeatureShowcaseStepUserAction" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the action taken by the user on the {FeatureShowcaseStep} step in
    the First Run Experience Feature Showcase. Recorded when the step is
    completed.
  </summary>
<!-- LINT.IfChange(FeatureShowcaseStepSuffix) -->

  <token key="FeatureShowcaseStep">
    <variant name="DefaultBrowser" summary="Default Browser"/>
    <variant name="Gemini" summary="Gemini"/>
    <variant name="GoogleLens" summary="Google Lens"/>
    <variant name="PasswordManager" summary="Password Manager"/>
    <variant name="ThemesAndCustomization" summary="Themes and Customization"/>
  </token>
<!-- LINT.ThenChange(//chrome/browser/ui/views/profiles/feature_showcase/feature_showcase_metrics.cc:FeatureShowcaseStepSuffix) -->

</histogram>

<histogram
    name="ProfilePicker.FREFlow.FeatureShowcase.ThemesAndCustomization.ThemeChanged"
    enum="Boolean" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records when the user changes the theme or color scheme mode on the Themes
    and Customization step of the First Run Experience Feature Showcase.
    Recorded the first (and only) time a user interacts with the color picker on
    the Themes and Customization step.
  </summary>
</histogram>

<histogram name="ProfilePicker.FREFlow.MediaEffects.{Action}"
    enum="ProfileManagementFlowStep" expires_after="2027-01-14">
  <owner>ernn@google.com</owner>
  <owner>kbajkiewicz@google.com</owner>
  <owner>chrome-signin-desktop-team@google.com</owner>
  <summary>
    Records the step every time the user clicks on the media effects action
    button in the First Run Experience flow to {Action} media effects, i.e.
    sound and animations (if applicable).
  </summary>
  <token key="Action">
    <variant name="Disable" summary="disable"/>
    <variant name="Enable" summary="enable"/>
  </token>
</histogram>

<histogram name="ProfilePicker.ReauthResult" enum="ProfilePickerReauthResult"
    expires_after="2024-05-17">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Recorded when the user is reauth-ing to unlock a Profile using the profile
    picker flows. Records successful and failed flows.
  </summary>
</histogram>

<histogram name="ProfilePicker.Shown" enum="ProfilePickerEntryPoint"
    expires_after="2027-01-17">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the reason why the profile picker has been shown to the user.
    Recorded every time the profile picker window is shown or reactivated.
  </summary>
</histogram>

<histogram name="ProfilePicker.SignInProviderStep"
    enum="ProfilePickerSignInProviderStep" expires_after="2027-01-14">
  <owner>droger@google.com</owner>
  <owner>ernn@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records steps from the ProfilePickerSignInProvider, when they are reached.
    Introduced for debugging https://crbug.com/445316497, extended to provide
    better insights into the flow during the FRE refresh project.
  </summary>
</histogram>

<histogram name="ProfilePicker.StartupTime.BeforeCreation" units="ms"
    expires_after="2027-01-17">
  <owner>rsult@google.com</owner>
  <owner>dgn@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the time between Chrome startup and the call to
    ProfilePickerView::Display(). Only recorded when the profile picker is shown
    at startup.

    Warning: this histogram was expired from 2025-07-13 to 2025-09-02; data may
    be missing.
  </summary>
</histogram>

<histogram name="ProfilePicker.StartupTime.FirstPaint" units="ms"
    expires_after="2027-02-07">
  <owner>rsult@google.com</owner>
  <owner>dgn@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the time between web view creation and the first paint. Only
    recorded when the profile picker is shown at startup.
  </summary>
</histogram>

<histogram
    name="ProfilePicker.StartupTime.FirstPaint.FromApplicationStart{StartupTemperatureSuffix}"
    units="ms" expires_after="2027-02-07">
  <owner>alexilin@chromium.org</owner>
  <owner>dgn@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the time from the application start to the first non-empty paint of
    profile picker's web contents. Only recorded when the profile picker is
    shown at startup.

    See Startup.FirstWebContents.NonEmptyPaint3 for a definition of application
    start.

    Warning: this histogram was expired from 2025-07-13 to 2025-09-02; data may
    be missing.

    {StartupTemperatureSuffix}
  </summary>
  <token key="StartupTemperatureSuffix">
    <variant name="" summary="All startups."/>
    <variant name=".ColdStartup"
        summary="Startup was cold (mostly hard faults)."/>
    <variant name=".WarmStartup"
        summary="Startup was warm (almost no hard faults)."/>
  </token>
</histogram>

<histogram name="ProfilePicker.UiVisited" enum="ProfilePickerPages"
    expires_after="2024-09-22">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Represents user navigation in the profile picker. Recorded every time a
    different UI is visible in the profile picker.
  </summary>
</histogram>

<histogram name="ProfilePicker.UserAction" enum="ProfilePickerAction"
    expires_after="2027-01-17">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the action performed by the user in the profile picker.
  </summary>
</histogram>

<histogram name="ProfilePicker.{ProfilePickerFlowType}.FlowEndedAtStep"
    enum="ProfileManagementFlowStep" expires_after="2027-02-07">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the step at which the flow was ended. The value is emitted when the
    flow is completed or aborted.

    {ProfilePickerFlowType}
  </summary>
</histogram>

<histogram name="ProfilePicker.{ProfilePickerFlowType}.FlowTotalDuration"
    units="ms" expires_after="2027-01-31">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the total flow duration. The value is emitted when the flow is
    completed or aborted.

    {ProfilePickerFlowType}
  </summary>
</histogram>

<histogram name="ProfilePicker.{ProfilePickerFlowType}.SignInError"
    enum="SigninUIErrorType" expires_after="2027-02-07">
  <owner>anthie@google.com</owner>
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the error type when there is an error during the sign-in flow.
    {ProfilePickerFlowType}
  </summary>
</histogram>

<histogram
    name="ProfilePicker.{ProfilePickerFlowType}.{StepFlowDuration}{StepName}"
    units="ms" expires_after="2027-01-31">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the duration of {StepName} {StepFlowDuration}. The value is emitted
    when the step is ended or switched.

    {ProfilePickerFlowType}
  </summary>
  <token key="StepName">
<!-- LINT.IfChange(StepName) -->

    <variant name="" summary="a single step"/>
    <variant name=".DefaultBrowser" summary="the default browser promo step"/>
    <variant name=".DeviceSignalsDisclaimer"
        summary="the device signals disclaimer step"/>
    <variant name=".FeatureShowcase" summary="the feature showcase step"/>
    <variant name=".FinishFlow" summary="the Finish flow step"/>
    <variant name=".FinishOrContinue" summary="the finish or continue step"/>
    <variant name=".FinishSamlFlow" summary="the Finish SAML flow step"/>
    <variant name=".FREIntro" summary="the FRE main page step"/>
    <variant name=".PickerMainApp" summary="the profile picker main page step"/>
    <variant name=".PostSignInSteps" summary="the post sign in steps"/>
    <variant name=".Reauth" summary="the reauth step"/>
    <variant name=".SearchEngineChoice"
        summary="the search engine choice screen step"/>
    <variant name=".SigninFlow" summary="the sign in flow step"/>
    <variant name=".Welcome" summary="the welcome step"/>
<!-- LINT.ThenChange(//chrome/browser/ui/views/profiles/profile_management_flow_controller.cc:GetStepHistogramSuffix) -->

  </token>
  <token key="StepFlowDuration">
    <variant name="StepShownDuration"
        summary="from the time the step was shown to the user until it ended
                 (includes the user action duration only). This is not
                 recorded for skipped steps."/>
    <variant name="StepTotalDuration"
        summary="from the trigger of the step until it ended (includes step
                 latency and user action duration). This is recorded for
                 skipped steps; only includes latency."/>
  </token>
</histogram>

<histogram name="ProfilePicker.{ProfilePickerFlowType}.{StepStatus}"
    enum="ProfileManagementFlowStep" expires_after="2027-02-07">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the step that {StepStatus}. Recorded when the step status change
    happens.

    {ProfilePickerFlowType}
  </summary>
  <token key="StepStatus">
    <variant name="StepEnd" summary="has ended"/>
    <variant name="StepShown" summary="was shown"/>
    <variant name="StepSkipped" summary="was skipped"/>
    <variant name="StepStart" summary="has started"/>
  </token>
</histogram>

</histograms>

</histogram-configuration>
