<!--
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 Geolocation 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="Geolocation.Android.LocationPermissionState"
    enum="AndroidLocationPermissionState" expires_after="2024-03-10">
  <owner>mattreynolds@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    Android location permission state, recorded when the geolocation permission
    context is initialized.
  </summary>
</histogram>

<histogram name="Geolocation.AuthorizationActionExistingUser"
    enum="GeolocationAuthorizationAction" expires_after="2022-10-16">
  <owner>mattreynolds@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    Records the action performed by an existing user when prompted to authorize
    the use of location by Chrome.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.Header.LocationAge" units="seconds"
    expires_after="M85">
  <obsolete>
    Code for recording this histogram was removed in July 2022. Recording this
    long-expired histogram was slowing down navigations.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    For Geolocation requests from the omnibox on Android, the time since the
    location was most recently acquired. If no location has been acquired, the
    maximum bucket is incremented.
  </summary>
</histogram>

<histogram name="Geolocation.Header.PermissionState"
    enum="GeolocationHeaderPermissionState" expires_after="M85">
  <obsolete>
    Code for recording this histogram was removed in July 2022. Recording this
    long-expired histogram was slowing down navigations.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    Counts Geolocation requests for omnibox searches sliced by various
    permission combinations. The location mode abbreviations indicate one of:
    High Accuracy, Battery Saving, GPS On or Location Mode Off.
  </summary>
</histogram>

<histogram base="true" name="Geolocation.Header.TimeListening" units="ms"
    expires_after="M85">
  <obsolete>
    Code for recording this histogram was removed in July 2022. Recording this
    long-expired histogram was slowing down navigations.
  </obsolete>
  <owner>kcarattini@chromium.org</owner>
  <owner>dominickn@chromium.org</owner>
  <summary>
    For Geolocation requests from the omnibox on Android, the time since the
    location was first acquired. If no location has been acquired, the minimum
    bucket is incremented.
  </summary>
</histogram>

<histogram name="Geolocation.HeaderSentOrNot" enum="GeolocationHeaderSentOrNot"
    expires_after="M85">
  <obsolete>
    Long expired.
  </obsolete>
  <owner>kiyun@google.com</owner>
  <owner>mvanouwerkerk@chromium.org</owner>
  <owner>newt@chromium.org</owner>
  <summary>
    Reason why the X-Geo header was or was not included in a Google search from
    the omnibox. Not recorded in Incognito mode. (X-Geo headers are never
    allowed to be added to such requests in Incognito mode.)

    If multiple reasons for not sending the header are true, only the first
    found during the code flow is recorded. Refer to the code for the order.
  </summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.AccessPoints" units="units"
    expires_after="M85">
  <owner>mattreynolds@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    The number of WiFi access points used to determine geolocation.
  </summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.Event"
    enum="NetworkLocationRequestEvent" expires_after="2024-02-25">
  <owner>mattreynolds@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    Events in NetworkLocationRequest.

    Warning: this histogram was expired after M85 and brought back 2021-04-23;
    data may be missing.
  </summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.RequestInterval"
    units="mins" expires_after="2024-03-03">
  <owner>alvinji@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    For recording the time gap between each HTTP request to geolocation service.
    The maximum bucket is 10 minutes because that is the maxium interval between
    wifi data polls.
  </summary>
</histogram>

<histogram name="Geolocation.NetworkLocationRequest.ResponseCode"
    enum="HttpResponseCode" expires_after="2024-02-25">
  <owner>mattreynolds@chromium.org</owner>
  <owner>device-dev@chromium.org</owner>
  <summary>
    HTTP response codes in NetworkLocationRequest.

    Warning: this histogram was expired after M85 and brought back 2021-05-21;
    data may be missing.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
