<!--
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 OOBE 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>

<variants name="CommonScreenName">
  <variant name="Adb-sideloading"/>
  <variant name="Add-child"/>
  <variant name="App-downloading"/>
  <variant name="Assistant-optin-flow"/>
  <variant name="Autolaunch"/>
  <variant name="Choobe"/>
  <variant name="Consolidated-consent"/>
  <variant name="Cryptohome-recovery"/>
  <variant name="Cryptohome-recovery-setup"/>
  <variant name="Device-disabled"/>
  <variant name="Display-size"/>
  <variant name="Drive-pinning"/>
  <variant name="Edu-coexistence-login"/>
  <variant name="Encryption-migration"/>
  <variant name="Family-link-notice"/>
  <variant name="Fingerprint-setup"/>
  <variant name="Gaia-password-changed"/>
  <variant name="Gaia-signin"/>
  <variant name="Gesture-navigation"/>
  <variant name="Guest-tos"/>
  <variant name="Hw-data-collection"/>
  <variant name="Kiosk-enable"/>
  <variant name="Local-state-error"/>
  <variant name="Locale-switch"/>
  <variant name="Management-transition"/>
  <variant name="Marketing-opt-in"/>
  <variant name="Multidevice-setup-screen"/>
  <variant name="Offline-login"/>
  <variant name="Os-install"/>
  <variant name="Os-trial"/>
  <variant name="Parental-handoff"/>
  <variant name="Pin-setup"/>
  <variant name="Recommend-apps"/>
  <variant name="Reset"/>
  <variant name="Saml-confirm-password"/>
  <variant name="Signin-fatal-error"/>
  <variant name="Smart-privacy-protection"/>
  <variant name="Sync-consent"/>
  <variant name="Terms-of-service"/>
  <variant name="Theme-selection"/>
  <variant name="Touchpad-scroll"/>
  <variant name="Tpm-error-message"/>
  <variant name="Update-required"/>
  <variant name="User-creation"/>
  <variant name="Wrong-hwid"/>
</variants>

<variants name="ConsumerUpdateType">
  <variant name="Mandatory"/>
  <variant name="Optional"/>
</variants>

<variants name="OnboardingType">
  <variant name="FirstOnboarding"/>
  <variant name="SubsequentOnboarding"/>
</variants>

<variants name="OOBEGestureNavigationPage">
  <variant name="Back" summary="Gesture Navigation Back Page"/>
  <variant name="Home" summary="Gesture Navigation Home Page"/>
  <variant name="Intro" summary="Gesture Navigation Intro Page"/>
  <variant name="Overview" summary="Gesture Navigation Overview Page"/>
</variants>

<variants name="OOBELegacyScreenName">
  <variant name="Adb-sideloading"/>
  <variant name="Add-child"/>
  <variant name="App-downloading"/>
  <variant name="Assistant-optin-flow"/>
  <variant name="Auto-enrollment-check"/>
  <variant name="Autolaunch"/>
  <variant name="Choobe"/>
  <variant name="Consolidated-consent"/>
  <variant name="Consumer-update"/>
  <variant name="Cryptohome-recovery"/>
  <variant name="Cryptohome-recovery-setup"/>
  <variant name="Debugging"/>
  <variant name="Demo-preferences"/>
  <variant name="Demo-setup"/>
  <variant name="Device-disabled"/>
  <variant name="Display-size"/>
  <variant name="Drive-pinning"/>
  <variant name="Edu-coexistence-login"/>
  <variant name="Encryption-migration"/>
  <variant name="Enroll"/>
  <variant name="Family-link-notice"/>
  <variant name="Fingerprint-setup"/>
  <variant name="Gaia-info"/>
  <variant name="Gaia-password-changed"/>
  <variant name="Gaia-signin"/>
  <variant name="Gesture-navigation"/>
  <variant name="Guest-tos"/>
  <variant name="Hid-detection"/>
  <variant name="Hw-data-collection"/>
  <variant name="Kiosk-enable"/>
  <variant name="Local-state-error"/>
  <variant name="Locale-switch"/>
  <variant name="Management-transition"/>
  <variant name="Marketing-opt-in"/>
  <variant name="Multidevice-setup-screen"/>
  <variant name="Network"/>
  <variant name="Network-selection"/>
  <variant name="Offline-login"/>
  <variant name="Oobe-update"/>
  <variant name="Os-install"/>
  <variant name="Os-trial"/>
  <variant name="Packaged-license"/>
  <variant name="Parental-handoff"/>
  <variant name="Pin-setup"/>
  <variant name="Recommend-apps"/>
  <variant name="Reset"/>
  <variant name="Saml-confirm-password"/>
  <variant name="Signin-fatal-error"/>
  <variant name="Smart-privacy-protection"/>
  <variant name="Sync-consent"/>
  <variant name="Theme-selection"/>
  <variant name="Tos"/>
  <variant name="Touchpad-scroll"/>
  <variant name="Tpm-error-message"/>
  <variant name="Update-required"/>
  <variant name="User-creation"/>
  <variant name="Wrong-hwid"/>
</variants>

<variants name="OOBEMarketingCountry">
  <variant name="" summary="all countries"/>
  <variant name="au" summary="Australia"/>
  <variant name="ca" summary="Canada"/>
  <variant name="de" summary="Germany"/>
  <variant name="dk" summary="Denmark"/>
  <variant name="es" summary="Spain"/>
  <variant name="fi" summary="Finland"/>
  <variant name="fr" summary="France"/>
  <variant name="gb" summary="United Kingdom"/>
  <variant name="it" summary="Italy"/>
  <variant name="jp" summary="Japan"/>
  <variant name="nl" summary="Netherlands"/>
  <variant name="no" summary="Norway"/>
  <variant name="se" summary="Sweden"/>
  <variant name="us" summary="United States"/>
</variants>

<variants name="OOBENetworkError">
  <variant name="AuthExtTimeout"/>
  <variant name="None"/>
  <variant name="Offline"/>
  <variant name="Portal"/>
  <variant name="Proxy"/>
</variants>

<!-- OOBEOnlyScreenName variants must be kept in sync with the list of OOBEOnlyScreenNames in
    chrome/browser/ash/login/oobe_metrics_helper.h-->

<variants name="OOBEOnlyScreenName">
  <variant name="Auto-enrollment-check"/>
  <variant name="Connect"/>
  <variant name="Consumer-update"/>
  <variant name="Debugging"/>
  <variant name="Demo-preferences"/>
  <variant name="Demo-setup"/>
  <variant name="Enterprise-enrollment"/>
  <variant name="Gaia-info"/>
  <variant name="Hid-detection"/>
  <variant name="Network-selection"/>
  <variant name="Oobe-update"/>
  <variant name="Packaged-license"/>
  <variant name="Quick-start"/>
</variants>

<variants name="OOBEOptionalScreens">
  <variant name="Display-size"/>
  <variant name="Drive-pinning"/>
  <variant name="Theme-selection"/>
  <variant name="Touchpad-scroll"/>
</variants>

<variants name="OOBEScreenName_ExitReason">
  <variant name="Adb-sideloading.Next"/>
  <variant name="Add-child.Back"/>
  <variant name="Add-child.CreateChildAccount"/>
  <variant name="Add-child.EnterpriseEnroll"/>
  <variant name="Add-child.KioskEnterpriseEnroll"/>
  <variant name="Add-child.SignInAsChild"/>
  <variant name="App-downloading.Next"/>
  <variant name="Assistant-optin-flow.Next"/>
  <variant name="Auto-enrollment-check.Next"/>
  <variant name="Autolaunch.Canceled"/>
  <variant name="Autolaunch.Completed"/>
  <variant name="Connect.EnableDebugging"/>
  <variant name="Connect.Next"/>
  <variant name="Connect.QuickStart"/>
  <variant name="Connect.SetupDemo"/>
  <variant name="Connect.StartOsInstall"/>
  <variant name="Consolidated-consent.AcceptedDemo"/>
  <variant name="Consolidated-consent.AcceptedRegular"/>
  <variant name="Consolidated-consent.BackDemo"/>
  <variant name="Consumer-update.Back"/>
  <variant name="Consumer-update.Updated"/>
  <variant name="Consumer-update.UpdateDeclineCellular"/>
  <variant name="Consumer-update.UpdateError"/>
  <variant name="Consumer-update.UpdateNotRequired"/>
  <variant name="Consumer-update.UpdateSkipped"/>
  <variant name="Cryptohome-recovery-setup.Done"/>
  <variant name="Cryptohome-recovery-setup.Skipped"/>
  <variant name="Cryptohome-recovery.GaiaLogin"/>
  <variant name="Cryptohome-recovery.ManualRecovery"/>
  <variant name="Cryptohome-recovery.NoRecoveryFactor"/>
  <variant name="Cryptohome-recovery.Retry"/>
  <variant name="Cryptohome-recovery.Succeeded"/>
  <variant name="Debugging.Next"/>
  <variant name="Demo-preferences.Canceled"/>
  <variant name="Demo-preferences.Completed"/>
  <variant name="Demo-setup.Canceled"/>
  <variant name="Demo-setup.Completed"/>
  <variant name="Edu-coexistence-login.Done"/>
  <variant name="Enterprise-enrollment.Back"/>
  <variant name="Enterprise-enrollment.BackToAutoEnrollmentCheck"/>
  <variant name="Enterprise-enrollment.Completed"/>
  <variant name="Enterprise-enrollment.TpmDbusError"/>
  <variant name="Enterprise-enrollment.TpmError"/>
  <variant name="Family-link-notice.Done"/>
  <variant name="Fingerprint-setup.Done"/>
  <variant name="Fingerprint-setup.Skipped"/>
  <variant name="Gaia-password-changed.Cancel"/>
  <variant name="Gaia-password-changed.ContinueLogin"/>
  <variant name="Gaia-password-changed.CryptohomeError"/>
  <variant name="Gaia-password-changed.RecreateUser"/>
  <variant name="Gaia-signin.Back"/>
  <variant name="Gaia-signin.BackChild"/>
  <variant name="Gaia-signin.Cancel"/>
  <variant name="Gaia-signin.EnterpriseEnroll"/>
  <variant name="Gaia-signin.StartConsumerKiosk"/>
  <variant name="Gesture-navigation.Next"/>
  <variant name="Gesture-navigation.Skip"/>
  <variant name="Guest-Tos.Accept"/>
  <variant name="Guest-Tos.Back"/>
  <variant name="Guest-Tos.Cancel"/>
  <variant name="Hid-detection.Next"/>
  <variant name="Hw-data-collection.AcceptedWithHWDataUsage"/>
  <variant name="Hw-data-collection.AcceptedWithoutHWDataUsage"/>
  <variant name="Kiosk-enable.Next"/>
  <variant name="Locale-switch.LocaleFetchFailed"/>
  <variant name="Locale-switch.LocaleFetchTimeout"/>
  <variant name="Locale-switch.NoSwitchNeeded"/>
  <variant name="Locale-switch.SwitchDelegated"/>
  <variant name="Locale-switch.SwitchFailed"/>
  <variant name="Locale-switch.SwitchSucceded"/>
  <variant name="Management-transition.Next"/>
  <variant name="Marketing-opt-in.Next"/>
  <variant name="Multidevice-setup-screen.Next"/>
  <variant name="Network-selection.Back"/>
  <variant name="Network-selection.Connected"/>
  <variant name="Offline-login.Back"/>
  <variant name="Offline-login.ReloadOnlineLogin"/>
  <variant name="Oobe-update.UpdateError"/>
  <variant name="Oobe-update.UpdateNotRequired"/>
  <variant name="Oobe-update.UpdateNotRequired_OptOutInfo"/>
  <variant name="Os-trial.Back"/>
  <variant name="Os-trial.NextInstall"/>
  <variant name="Os-trial.NextTry"/>
  <variant name="Packaged-license.DontEnroll"/>
  <variant name="Packaged-license.Enroll"/>
  <variant name="Parental-Handoff.Done"/>
  <variant name="Pin-setup.Done"/>
  <variant name="Pin-setup.Skipped"/>
  <variant name="Pin-setup.TimedOut"/>
  <variant name="Recommend-apps.LoadError"/>
  <variant name="Recommend-apps.Selected"/>
  <variant name="Recommend-apps.Skipped"/>
  <variant name="Reset.Cancel"/>
  <variant name="Saml-confirm-password.Cancel"/>
  <variant name="Saml-confirm-password.TooManyAttempts"/>
  <variant name="Signin-fatal-error.Next"/>
  <variant name="Smart-privacy-protection.ContinueWithFeatureOff"/>
  <variant name="Smart-privacy-protection.ContinueWithFeatureOn"/>
  <variant name="Sync-consent.DeclineOnLacros"/>
  <variant name="Sync-consent.Next"/>
  <variant name="Terms-of-service.Accepted"/>
  <variant name="Terms-of-service.Declined"/>
  <variant name="Theme-selection.Proceed"/>
  <variant name="User-creation.Cancel"/>
  <variant name="User-creation.CreateChildAccount">
    <obsolete>
      This histogram was available before introducing software update sreen
      which requiered split the add child step into it is own screen this
      changes is implemented in M-117. Add-child.CreateChildAccount is replacing
      this one.
    </obsolete>
  </variant>
  <variant name="User-creation.EnterpriseEnroll">
    <obsolete>
      This histogram was available before introducing software update sreen.
      This is replaced by `User-creation.EnterpriseEnrollTriage` and
      `User-creation.EnterpriseEnrollShortcut` starting from M-117.
    </obsolete>
  </variant>
  <variant name="User-creation.EnterpriseEnrollShortcut"/>
  <variant name="User-creation.EnterpriseEnrollTriage"/>
  <variant name="User-creation.KioskEnterpriseEnroll"/>
  <variant name="User-creation.SignIn"/>
  <variant name="User-creation.SignInAsChild">
    <obsolete>
      This histogram was available before introducing software update sreen
      which requiered split the add child step into it is own screen this
      changes is implemented in M-117. Add-child.SignInAsChild histogram is
      replacing this one.
    </obsolete>
  </variant>
  <variant name="User-creation.SignInSchool"/>
  <variant name="User-creation.SignInTriage"/>
  <variant name="Wrong-hwid.Next"/>
</variants>

<variants name="OOBEScreenShownBeforeNetworkError">
  <variant name="AddChild" summary="Add Child Screen"/>
  <variant name="ConsumerUpdate" summary="Consumer Update Screen"/>
  <variant name="Enrollment" summary="Enrollment or Autoenrollment"/>
  <variant name="Signin" summary="Signin Screen"/>
  <variant name="Update" summary="Update Screen"/>
  <variant name="UpdateRequired" summary="Update Required Screen"/>
  <variant name="UserCreation" summary="User Creation Screen"/>
</variants>

<variants name="UpdateStage">
  <variant name="Check"/>
  <variant name="Download"/>
  <variant name="Finalize"/>
  <variant name="Verify"/>
</variants>

<histogram name="OOBE.ArcTermsOfServiceScreen.ReviewFollowingSetup"
    enum="BooleanChecked" expires_after="2023-11-01">
  <obsolete>
    Obsoleted in M-106.
  </obsolete>
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether the review Google Play following setup box is checked. Recorded when
    user leaves ArcTermsOfService screeen.
  </summary>
</histogram>

<histogram name="OOBE.ArcTermsOfServiceScreen.UserActions"
    enum="ArcTosScreenUserActions" expires_after="2023-11-01">
  <obsolete>
    Obsoleted in M-106.
  </obsolete>
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Tracks all user actions on the ArcTermsOfService screen. Recorded when user
    clicks on buttons on the ArcTermsOfService screen.
  </summary>
</histogram>

<histogram name="OOBE.BootToOOBECompleted.{CompletedOobeFlowType}" units="ms"
    expires_after="2024-03-03">
  <owner>osamafathy@chromium.org</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Time from boot until pre-login OOBE is completed. If the device was rebooted
    during OOBE, the time is calculated since the last boot.
  </summary>
  <token key="CompletedOobeFlowType">
    <variant name="AutoEnrollment"/>
    <variant name="Demo"/>
    <variant name="Regular"/>
  </token>
</histogram>

<histogram name="OOBE.BootToSignInCompleted" units="ms"
    expires_after="2024-03-03">
  <owner>alemate@chromium.org</owner>
  <owner>rsorokin@chromium.org</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Time from the login screen start to user session start.

    Warning: this histogram was expired from 2022-04-03 to 2023-04-04; data may
    be missing.
  </summary>
</histogram>

<histogram name="OOBE.CHOOBE.FlowSkipped" enum="BooleanSkipped"
    expires_after="2024-03-24">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the CHOOBE flow was skipped without selecting any screens. Recorded
    after the user completes the CHOOBE flow.
  </summary>
</histogram>

<histogram name="OOBE.CHOOBE.ScreenCompleted.{OOBEOptionalScreens}"
    enum="BooleanSelected" expires_after="2024-03-24">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the {OOBEOptionalScreens} screen was selected and completed from the
    CHOOBE screen. Recorded after the user completes the CHOOBE flow. If the
    user visits the same screen multiple times, only a single event will be
    recorded.

    The histogram is not recorded if the {OOBEOptionalScreens} screen was shown
    outside of the CHOOBE flow.
  </summary>
  <token key="OOBEOptionalScreens" variants="OOBEOptionalScreens"/>
</histogram>

<histogram name="OOBE.CHOOBE.SettingChanged.{OOBEOptionalScreens}"
    enum="BooleanChanged" expires_after="2024-03-24">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the setting in {OOBEOptionalScreens} screen was changed when the
    screen was visited. Recorded when the user clicks &quot;next&quot; or
    &quot;return to CHOOBE&quot; button. This metric is recorded regardless of
    whether the CHOOBE screen was shown.

    The histogram is recorded once per visit to the screen.
  </summary>
  <token key="OOBEOptionalScreens" variants="OOBEOptionalScreens"/>
</histogram>

<histogram name="OOBE.ChromeVersionBeforeUpdate" units="custom"
    expires_after="2024-03-24">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Chrome major version recorded in OOBE before any updates are applied.
  </summary>
</histogram>

<histogram name="OOBE.ConsolidatedConsentScreen.RecoveryOptInResult"
    enum="RecoveryOptInResult" expires_after="2024-03-03">
  <owner>anastasiian@chromium.org</owner>
  <owner>cros-lurs@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Tracks the result of the cryptohome recovery opt-in on the consolidated
    consent screen. Recorded when user exists the consolidated consent screen.
  </summary>
</histogram>

<histogram name="OOBE.ConsolidatedConsentScreen.UserActions"
    enum="ConsolidatedConsentScreenUserAction" expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Tracks user actions on the consolidated consent screen. Recorded when user
    clicks on buttons on the consolidated consent screen.
  </summary>
</histogram>

<histogram name="OOBE.ConsumerUpdateScreen.IsMandatory" enum="Boolean"
    expires_after="2023-12-31">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the consumer update was mandatory or optional. This is decided based
    on the estimate of time needed for the update to be applied. This is
    recorded when the skip button in the consumer update is decided to be shown
    or stay hidden.
  </summary>
</histogram>

<histogram name="OOBE.ConsumerUpdateScreen.IsOptionalUpdateSkipped"
    enum="Boolean" expires_after="2023-12-31">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the optional consumer update was skipped. This is recorded when the
    skip button is clicked or when the update is completed. or stay hidden.
  </summary>
</histogram>

<histogram name="OOBE.ConsumerUpdateScreen.SkipReason"
    enum="OobeConsumerUpdateScreenSkippedReason" expires_after="2023-12-31">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    The reason for skipping the update. These reasons do not include when the
    user skips the update screen but the update continues in the background.
  </summary>
</histogram>

<histogram name="OOBE.ConsumerUpdateScreen.UpdateTime.{ConsumerUpdateType}"
    units="ms" expires_after="2023-12-31">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Time spent starting from the update screen is shown until the
    {ConsumerUpdateType} update is completed before rebooting the device.
  </summary>
  <token key="ConsumerUpdateType" variants="ConsumerUpdateType"/>
</histogram>

<histogram name="OOBE.DrivePinning.Enabled" enum="BooleanEnabled"
    expires_after="2023-12-31">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the user has enabled or disabled Drive Pinning. Recorded once with
    the final decision made by the user. The recording is done after onboarding
    is completed and before starting the drive pinning feature.
  </summary>
</histogram>

<histogram name="OOBE.Enrollment.IsUserEnrollingAConsumer" enum="Boolean"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether the enrollment screen is shown for a user that was already
    determined to be a consumer during the consumer update.
  </summary>
</histogram>

<histogram
    name="OOBE.ErrorScreensTime.{OOBEScreenShownBeforeNetworkError}.{OOBENetworkError}"
    units="ms" expires_after="2024-02-20">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Time spent on error screens during {OOBEScreenShownBeforeNetworkError} when
    the last error is {OOBENetworkError} error. Recorded when the host screen is
    destroyed. Note: None error means that the ErrorScreen was finally hidden.
  </summary>
  <token key="OOBEScreenShownBeforeNetworkError"
      variants="OOBEScreenShownBeforeNetworkError"/>
  <token key="OOBENetworkError" variants="OOBENetworkError"/>
</histogram>

<histogram name="OOBE.FingerprintSetupScreen.UserActions"
    enum="FingerprintSetupScreenUserAction" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Tracks all user actions on the fingerprint screen. Recorded when user clicks
    on buttons on the fingerprint screen.
  </summary>
</histogram>

<histogram name="OOBE.GaiaLoginTime" units="ms" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records the amount of time spent by user to complete GAIA login during
    first-run OOBE. Recorded after receiving authentication success signal. Not
    recorded for SAML flow.
  </summary>
</histogram>

<histogram name="OOBE.GaiaPasswordChangedScreen.UserActions"
    enum="GaiaPasswordChangedScreenUserAction" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Tracks all user actions on the GaiaPasswordChanged screen. Recorded when
    user clicks on buttons on the screen.
  </summary>
</histogram>

<histogram name="OOBE.GaiaScreen.LoginRequests" enum="GaiaLoginVariant"
    expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>rsorokin@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Tracks all user login requests differentiated by flows on the Gaia screen.
    Recorded when password is entered for authentication. Note: this is not
    recorded for SAML flows.

    Warning: this histogram was expired from 2022-04-25 to 2022-08-18; data may
    be missing.
  </summary>
</histogram>

<histogram name="OOBE.GaiaScreen.PasswordIgnoredChars" enum="Boolean"
    expires_after="2024-03-03">
  <owner>anastasiian@chromium.org</owner>
  <owner>cros-lurs@google.com</owner>
  <summary>
    Records whether user password contains characters ignored by Gaia. The
    histogram is recorded after online login and not recorded for SAML users.
  </summary>
</histogram>

<histogram name="OOBE.GaiaScreen.SuccessLoginRequests" enum="GaiaLoginVariant"
    expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>rsorokin@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Tracks all successful user login requests differentiated by flows on the
    Gaia screen. Recorded when authentication is successful. Note: this is not
    recorded for SAML flows.

    Warning: this histogram was expired from 2022-04-25 to 2022-08-18; data may
    be missing.
  </summary>
</histogram>

<histogram
    name="OOBE.GestureNavigationScreen.PageShownTime.{OOBEGestureNavigationPage}"
    units="ms" expires_after="2024-02-20">
  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Records the amount of time that each page within the gesture navigation OOBE
    screen is shown. Recorded when the gesture navigation oobe screen is
    exiting.

    Warning: this histogram was expired from 2021-08-09 to 2023-04-04; data may
    be missing.
  </summary>
  <token key="OOBEGestureNavigationPage" variants="OOBEGestureNavigationPage"/>
</histogram>

<histogram
    name="OOBE.HidDetectionScreen.BluetoothPairing.Duration.{PairingResult}"
    units="ms" expires_after="2024-02-20">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records how long it takes for a pairing attempt, initiated automatically
    during the OOBE HID detection screen, to finish. If the user needed to go
    through an auth process during pairing, the time the user took to confirm
    that is included.
  </summary>
  <token key="PairingResult">
    <variant name="Failure"/>
    <variant name="Success"/>
  </token>
</histogram>

<histogram name="OOBE.HidDetectionScreen.BluetoothPairing.Result"
    enum="HidDetectionBluetoothPairingResult" expires_after="2024-03-17">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records if a HID pairing attempt (initiated automatically by the OOBE HID
    detection screen) paired successfully via Bluetooth or did not pair
    successfully via Bluetooth. This is expected to fail most of the time
    because of it being initiated in a loop automatically while the OOBE HID
    Detection screen is open.
  </summary>
</histogram>

<histogram name="OOBE.HidDetectionScreen.BluetoothPairing.TimeoutExceeded"
    enum="BooleanSuccess" expires_after="2023-11-01">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records success each time a pairing session times out while on the OOBE HID
    detection page.
  </summary>
</histogram>

<histogram name="OOBE.HidDetectionScreen.BluetoothPairingAttempts"
    units="attempts" expires_after="2024-03-10">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the total number of pairing attempts with Bluetooth human interface
    devices (HID). This metric is emitted after the HID detection screen exits
    in OOBE. It does not include devices attempted to be paired with before or
    after the HID detection screen.
  </summary>
</histogram>

<histogram name="OOBE.HidDetectionScreen.HidConnected" enum="HidType"
    expires_after="2023-11-01">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the type of a connected human interface device (HID). This metric is
    emitted each time a HID is connected during the HID detection screen in
    OOBE. It does not include devices connected before the screen is shown or
    after the screen is hidden.
  </summary>
</histogram>

<histogram name="OOBE.HidDetectionScreen.HidDisconnected" enum="HidType"
    expires_after="2023-11-01">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the type of a connected human interface device (HID) that is
    disconnected. This metric is emitted each time a HID is disconnected during
    the HID detection screen in OOBE. It does not include devices disconnected
    before the screen is shown or after the screen is hidden.
  </summary>
</histogram>

<histogram name="OOBE.HidDetectionScreen.InitialHidsMissing" enum="HidsMissing"
    expires_after="2024-03-10">
  <owner>gordonseto@google.com</owner>
  <owner>cros-connectivity@google.com</owner>
  <summary>
    Records the types of human interface devices (HIDs) that are not connected
    when OOBE starts. This metric is not emitted for Chrome OS devices that have
    the OOBE HID detection screen disabled.
  </summary>
</histogram>

<histogram
    name="OOBE.MarketingOptInScreen.BackendConnector.{OOBEMarketingCountry}"
    enum="MarketingOptInBackendConnectorEvent" expires_after="2024-02-20">
  <owner>rrsilva@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    The result of a request performed by the MarketingBackendConnector used in
    the OOBE MarketingOptInScreen when subscribing users in
    {OOBEMarketingCountry} to Chromebook emails. This data is used to determine
    the success rate of the requests being performed.
  </summary>
  <token key="OOBEMarketingCountry" variants="OOBEMarketingCountry"/>
</histogram>

<histogram name="OOBE.MarketingOptInScreen.Event.{OOBEMarketingCountry}"
    enum="MarketingOptInScreenEvent" expires_after="2024-02-20">
  <owner>rrsilva@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records the choice users in {OOBEMarketingCountry} takes when prompted with
    a toggle on the OOBE MarketingOptInScreen to subscribe to Chromebook emails.
  </summary>
  <token key="OOBEMarketingCountry" variants="OOBEMarketingCountry"/>
</histogram>

<histogram name="OOBE.MarketingOptInScreen.GeolocationResolve"
    enum="MarketingOptInGeolocationEvent" expires_after="2024-03-10">
  <owner>rrsilva@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records whether the user's geolocation was resolved successfully.
  </summary>
</histogram>

<histogram name="OOBE.NetworkErrorShown.{OOBEScreenShownBeforeNetworkError}"
    enum="NetworkErrorType" expires_after="2024-02-20">
  <owner>achuith@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Number of times error screen has appeared during
    {OOBEScreenShownBeforeNetworkError}
  </summary>
  <token key="OOBEScreenShownBeforeNetworkError"
      variants="OOBEScreenShownBeforeNetworkError"/>
</histogram>

<histogram name="OOBE.OnboardingFlowDuration.{OnboardingType}" units="ms"
    expires_after="2024-03-18">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Records the total time it took the user to complete the onboarding flow,
    starting from after the login of the new user (before the first onboarding
    screen is shown). and ending after the completion of the last onboarding
    screen (before the start of the session). The time recorded includes the
    time while the device is turned off.
  </summary>
  <token key="OnboardingType" variants="OnboardingType"/>
</histogram>

<histogram name="OOBE.OnboardingFlowStatus.{OnboardingType}"
    enum="BooleanStartedCompleted" expires_after="2024-03-18">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Records &quot;Started&quot; and &quot;Completed&quot; events for the entire
    onboarding flow of a new user. &quot;Started&quot; is recorded after a new
    user logs-in (before the first onboarding screen is shown).
    &quot;Completed&quot; is recorded after the completion of the last screen in
    the onboarding flow (before the start of the session).
  </summary>
  <token key="OnboardingType" variants="OnboardingType"/>
</histogram>

<histogram name="OOBE.OobeFlowDuration" units="ms" expires_after="2024-03-18">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Records the total time it took the user to complete OOBE, starting from the
    first start of OOBE (before the first OOBE screen is shown) and ending after
    the completion of the last onboarding screen for the first user (before the
    start of the first session). The time recorded includes the time while the
    device is turned off.
  </summary>
</histogram>

<histogram name="OOBE.OobeFlowStatus" enum="BooleanStartedCompleted"
    expires_after="2024-03-18">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Records &quot;Started&quot; and &quot;Completed&quot; events for the entire
    OOBE flow. &quot;Started&quot; is recorded at the first start of OOBE before
    the first OOBE screen is shown. &quot;Completed&quot; is recorded after the
    completion of the last screen in the onboarding flow of the first user and
    before sign-in is completed.
  </summary>
</histogram>

<histogram name="OOBE.OobeStartToOnboardingStartTime" units="ms"
    expires_after="2024-03-18">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Records the total time it took the user to complete OOBE, starting from the
    first start of OOBE (before the first OOBE screen is shown) and ending after
    the completion of the last onboarding screen for the first user (before the
    start of the first session). The time recorded includes the time while the
    device is turned off.
  </summary>
</histogram>

<histogram name="OOBE.PinSetupScreen.UserActions"
    enum="PinSetupScreenUserAction" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Tracks all user actions on the PinSetup screen. Recorded when user clicks on
    buttons on the PinSetup screen or when screen is automatically skipped.
  </summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.DownloadTime" units="ms"
    expires_after="2024-02-04">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>The time it takes to fetch the recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Fetcher.ResponseCode"
    enum="HttpResponseCode" expires_after="2024-02-04">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>The response code of fetching the recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.Action"
    enum="RecommendAppsScreenAction" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>The user action on the recommend apps screen.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedAppCount" units="apps"
    expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>The number of apps user selected.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.SelectedRecommendedPercentage"
    units="%" expires_after="2023-12-01">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>The ratio of selected and recommended apps.</summary>
</histogram>

<histogram name="OOBE.RecommendApps.Screen.State"
    enum="RecommendAppsScreenState" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <owner>chromesky-eng@google.com</owner>
  <summary>Whether the reocmmend apps screen is shown.</summary>
</histogram>

<histogram name="OOBE.StepCompletionTime.{OOBELegacyScreenName}" units="ms"
    expires_after="never">
<!-- expires-never: Core metric for monitoring OOBE flow regressions. -->

  <owner>alemate@chromium.org</owner>
  <owner>antrim@chromium.org</owner>
  <owner>rsorokin@chromium.org</owner>
  <owner>cros-oac@google.com</owner>
  <summary>Time spent on {OOBELegacyScreenName} OOBE screen.</summary>
  <token key="OOBELegacyScreenName" variants="OOBELegacyScreenName"/>
</histogram>

<histogram name="OOBE.StepCompletionTime2.{CommonScreenName}.{OnboardingType}"
    units="ms" expires_after="2024-03-26">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Time spent on {CommonScreenName} OOBE screen. Recorded only after exiting
    the screen.
  </summary>
  <token key="CommonScreenName" variants="CommonScreenName"/>
  <token key="OnboardingType" variants="OnboardingType"/>
</histogram>

<histogram name="OOBE.StepCompletionTime2.{OOBEOnlyScreenName}" units="ms"
    expires_after="2024-03-26">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Time spent on {OOBEOnlyScreenName} OOBE screen. Recorded only after exiting
    the screen.
  </summary>
  <token key="OOBEOnlyScreenName" variants="OOBEOnlyScreenName"/>
</histogram>

<histogram
    name="OOBE.StepCompletionTimeByExitReason.{OOBEScreenName_ExitReason}"
    units="ms" expires_after="2024-02-20">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>Time spent on specific OOBE screen grouped by exit reason.</summary>
  <token key="OOBEScreenName_ExitReason" variants="OOBEScreenName_ExitReason"/>
</histogram>

<histogram name="OOBE.StepShownStatus.Multidevice-setup-screen.Skipped"
    enum="OobeMultideviceScreenSkippedReason" expires_after="2024-03-03">
  <owner>bhartmire@google.com</owner>
  <owner>chromeos-cross-device-eng@google.com</owner>
  <summary>
    The reason why the Multidevice setup screen is skipped in OOBE. Recorded
    when determining that the screen should be skipped. This metric breaks down
    the &quot;Not shown&quot; bucket of
    &quot;OOBE.StepShownStatus.Multidevice-setup-screen&quot;.
  </summary>
</histogram>

<histogram name="OOBE.StepShownStatus.{OOBELegacyScreenName}"
    enum="BooleanShown" expires_after="never">
<!-- expires-never: Core metric for monitoring OOBE flow regressions. -->

  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether {OOBELegacyScreenName} screen was shown or not. Recorded before
    showing screen.
  </summary>
  <token key="OOBELegacyScreenName" variants="OOBELegacyScreenName"/>
</histogram>

<histogram name="OOBE.StepShownStatus2.{CommonScreenName}.{OnboardingType}"
    enum="BooleanShown" expires_after="2024-03-26">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether {CommonScreenName} screen was shown or not. Recorded before showing
    screen.

    The &quot;Not Shown&quot; bucket represents instances where the user reached
    the point where the screen is usually shown, but the pre-conditions for
    showing the screen was not met.
  </summary>
  <token key="CommonScreenName" variants="CommonScreenName"/>
  <token key="OnboardingType" variants="OnboardingType"/>
</histogram>

<histogram name="OOBE.StepShownStatus2.{OOBEOnlyScreenName}"
    enum="BooleanShown" expires_after="2024-03-26">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether {OOBEOnlyScreenName} screen was shown or not. Recorded before
    showing screen.

    The &quot;Not Shown&quot; bucket represents instances where the user reached
    the point where the screen is usually shown, but the pre-conditions for
    showing the screen was not met.
  </summary>
  <token key="OOBEOnlyScreenName" variants="OOBEOnlyScreenName"/>
</histogram>

<histogram name="OOBE.SyncConsentScreen.Behavior" enum="SyncConsentBehavior"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether the sync consent screen was shown, skipped with sync disabled, or
    skipped with sync enabled. Recorded when the screen is closed. Metrics
    Sync.InitialState2 and OOBE.SyncConsentScreen.SyncEnabled provide more
    detail on the state of the sync engine.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.IsCapabilityKnown" enum="BooleanKnown"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Indicates whether account capability information is fetched for user when
    SyncConsent screen is shown.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.IsMinorUser" enum="Boolean"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Indicates whether the current user is a minor user (impacted by AADC
    regulations). We cannot use nudge techniques on UI if the user is a minor
    user.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.LacrosSyncOptIns.DataType.{OsDataType}"
    enum="BooleanEnabled" expires_after="2024-05-01">
  <owner>bchikhaoui@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records the selected data type to sync during the OS Sync consent screen in
    OOBE flow with Lacros enabled.
  </summary>
  <token key="OsDataType">
    <variant name="SyncApps"/>
    <variant name="SyncSettings"/>
    <variant name="SyncWallpaper"/>
    <variant name="SyncWifi"/>
  </token>
</histogram>

<histogram name="OOBE.SyncConsentScreen.LacrosSyncOptIns.SyncEverything"
    enum="BooleanEnabled" expires_after="2024-05-01">
  <owner>bchikhaoui@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Indicate if sync all os types is enabled for the sync consent OOBE when
    Lacros enabled.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.LoadingTime" units="ms"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records the amount of time while waiting for sync engine to be initialized,
    before the SyncConsent screen is shown.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.ReviewFollowingSetup"
    enum="BooleanChecked" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether the review following setup box is checked. Recorded when user leaves
    SyncConsent screen.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.SyncEnabled" enum="BooleanEnabled"
    expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Final state of the sync service at the end of the sync consent OOBE step.
    The dialog may have been shown or skipped (e.g. by enterprise policy). See
    OOBE.SyncConsentScreen.Behavior for skip reasons.
  </summary>
</histogram>

<histogram name="OOBE.SyncConsentScreen.UserChoice"
    enum="SyncConsentUserChoice" expires_after="2024-03-03">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Which button the user clicked on the out-of-box sync consent screen.
    Recorded when the user clicks the button, which also closes the screen.
  </summary>
</histogram>

<histogram name="OOBE.ThemeSelectionScreen.SelectedTheme" enum="SelectedTheme"
    expires_after="2024-02-07">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Theme selected from OOBE theme selection screen. Recorded after the next
    button is clicked.
  </summary>
</histogram>

<histogram name="OOBE.UpdateScreen.StageTime.{UpdateStage}" units="ms"
    expires_after="2024-02-20">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Time spent on {UpdateStage} stage of the ChromeOS update. Recorded when the
    stage is done and the next is about to start.
  </summary>
  <token key="UpdateStage" variants="UpdateStage"/>
</histogram>

<histogram name="OOBE.UpdateScreen.UpdateDownloadingTime" units="ms"
    expires_after="2023-12-01">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Time spent on downloading ChromeOS update when critical updated is found
    during OOBE. Recorded when update is uploaded and ChromeOS device is about
    to restart to apply the update.
  </summary>
</histogram>

<histogram name="OOBE.WebUI.LoadTime.FirstRun" units="ms"
    expires_after="2024-03-03">
  <owner>rsorokin@chromium.org</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Time required for ChromeOS to load the First Run WebUI (i.e. out-of-box
    experience). Recorded at most once per Chrome lifetime (if OOBE is shown).
  </summary>
</histogram>

<histogram name="OOBE.WebViewLoader.FirstLoadResult.{WebViewID}"
    enum="OobeWebViewLoadResult" expires_after="2024-02-20">
  <owner>osamafathy@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Records the first result of loading the webview {WebViewID} in OOBE flow.
    This metric is emitted every time a webview in OOBE is loaded using OOBE
    WebViewLoader. Only the first load result of each load is emitted, ignoring
    the re-load results.
  </summary>
  <token key="WebViewID">
    <variant name="ArcTosView"/>
    <variant name="ConsolidatedConsentArcTosWebview"/>
    <variant name="ConsolidatedConsentCrosEulaWebview"/>
    <variant name="ConsolidatedConsentGoogleEulaWebview"/>
    <variant name="ConsolidatedConsentPrivacyPolicyWebview"/>
    <variant name="GuestTosCrosEulaWebview"/>
    <variant name="GuestTosGoogleEulaWebview"/>
  </token>
</histogram>

<histogram name="OOBE.WelcomeScreen.A11yUserActions"
    enum="WelcomeScreenA11yUserAction" expires_after="2024-03-03">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Measures usage of the accessibility options on the welcome screen during
    OOBE. Recorded when user enables or disables any of the accessibility
    options from accessibility menu on the welcome screen.
  </summary>
</histogram>

<histogram name="OOBE.WelcomeScreen.AcceptChromeVoxHint" enum="BooleanEnabled"
    expires_after="2024-03-03">
  <owner>akihiroota@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether or not the user accepted the ChromeVox hint. Recorded when the user
    interacts with the ChromeVox hint dialog.
  </summary>
</histogram>

<histogram name="OOBE.WelcomeScreen.ChromeVoxHintSpokenSuccess"
    enum="BooleanEnabled" expires_after="2024-03-03">
  <owner>akihiroota@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Whether or not the ChromeVox hint was successfully spoken. Recorded when the
    ChromeVox hint dialog is shown.

    Warning: this histogram was expired from 2022-04-25 to 2022-08-18 and from
    2022-10-04 to 2023-04-04; data may be missing.
  </summary>
</histogram>

<histogram name="OOBE.WelcomeScreen.UserChangedLocale" enum="Boolean"
    expires_after="2024-03-03">
  <owner>bohdanty@google.com</owner>
  <owner>cros-oobe@google.com</owner>
  <summary>
    Whether or not the user changed the language on the Welcome Screen. Records
    when the user leaves the Welcome Screen if they have changed the locale in
    the UI.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
