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

<histogram name="GoogleUpdate.ErrorHresult" enum="Hresult"
    expires_after="2023-06-26">
  <owner>sorin@chromium.org</owner>
  <owner>waffles@chromium.org</owner>
  <summary>The HRESULT for a failed on-demand update check.</summary>
</histogram>

<histogram name="GoogleUpdate.InstallDetails.UpdateCohort" units="units"
    expires_after="2024-06-01">
  <owner>waffles@chromium.org</owner>
  <owner>chrome-metrics-team@google.com</owner>
  <owner>omaha-team@google.com</owner>
  <summary>
    Store the hash of update cohort name as reported by Chrome Updater on
    Windows. Recorded at the start of metrics service. Warning: this histogram
    was expired from 2019-06-01 to 2023-01-23; data may be missing.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Result.Session" enum="BooleanSuccess"
    expires_after="2020-10-15">
<!-- Name completed by histogram_suffixes name="GoogleUpdate.Result.UpdateType" -->

  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) Whether or not an update was successful when looking at the
    Chrome version on the next session where there is no update in progress.
  </summary>
</histogram>

<histogram name="GoogleUpdate.Result.TimeWindow" enum="BooleanSuccess"
    expires_after="2020-10-15">
<!-- Name completed by histogram_suffixes name="GoogleUpdate.Result.UpdateType" -->

  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) Whether or not an update was successful within a specific
    server-configured window of time (e.g. an update may not occur right after
    the user attempts to start it, but if they update sometime in the next X
    days, we can possibly attribute it to the update flow we started). An
    example window value could be on the order of days (e.g. 2 days since an
    update started).
  </summary>
</histogram>

<histogram name="GoogleUpdate.StartingUpdateState"
    enum="BooleanAlreadyUpdating" expires_after="2020-10-15">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    (Android-only) Whether or not an update was being tracked as 'in progress'
    when another update was started.
  </summary>
</histogram>

<histogram name="GoogleUpdate.UpdateErrorCode" enum="GoogleUpdateErrorCode"
    expires_after="2023-09-17">
  <owner>sorin@chromium.org</owner>
  <owner>waffles@chromium.org</owner>
  <summary>The error code for a failed on-demand update check.</summary>
</histogram>

<histogram name="GoogleUpdate.UpgradeResult" enum="GoogleUpdateUpgradeStatus"
    expires_after="2023-08-27">
  <owner>sorin@chromium.org</owner>
  <owner>waffles@chromium.org</owner>
  <summary>The result of an on-demand update check.</summary>
</histogram>

</histograms>

</histogram-configuration>
