<!--
Copyright 2023 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 describes the enumerations referenced by entries in histograms.xml for
this directory. Some enums may instead be listed in the central enums.xml file
at src/tools/metrics/histograms/enums.xml when multiple files use them.

For best practices on writing enumerations descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms

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>

<!-- Enum types -->

<enums>

<enum name="AndroidLocationPermissionState">
  <int value="0" label="NoAccess">No location permissions are granted.</int>
  <int value="1" label="AccessCoarse">
    Permission to access approximate location (ACCESS_COARSE_LOCATION).
  </int>
  <int value="2" label="AccessFine">
    Permission to access precise location (ACCESS_FINE_LOCATION).
  </int>
</enum>

<enum name="AndroidLocationProviderType">
  <int value="0" label="ANDROID"/>
  <int value="1" label="GMS_CORE"/>
</enum>

<enum name="CoreLocationErrorCode">
  <int value="0" label="kCLErrorLocationUnknown"/>
  <int value="1" label="kCLErrorDenied"/>
  <int value="2" label="kCLErrorNetwork"/>
  <int value="3" label="kCLErrorHeadingFailure"/>
  <int value="4" label="kCLErrorRegionMonitoringDenied"/>
  <int value="5" label="kCLErrorRegionMonitoringFailure"/>
  <int value="6" label="kCLErrorRegionMonitoringSetupDelayed"/>
  <int value="7" label="kCLErrorRegionMonitoringResponseDelayed"/>
  <int value="8" label="kCLErrorGeocodeFoundNoResult"/>
  <int value="9" label="kCLErrorGeocodeFoundPartialResult"/>
  <int value="10" label="kCLErrorGeocodeCanceled"/>
  <int value="11" label="kCLErrorDeferredFailed"/>
  <int value="12" label="kCLErrorDeferredNotUpdatingLocation"/>
  <int value="13" label="kCLErrorDeferredAccuracyTooLow"/>
  <int value="14" label="kCLErrorDeferredDistanceFiltered"/>
  <int value="15" label="kCLErrorDeferredCanceled"/>
  <int value="16" label="kCLErrorRangingUnavailable"/>
  <int value="17" label="kCLErrorRangingFailure"/>
  <int value="18" label="kCLErrorPromptDeclined"/>
  <int value="19" label="kCLErrorHistoricalLocationError"/>
</enum>

<enum name="CoreLocationSessionResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kCoreLocationError"/>
  <int value="2" label="kWifiDisabled"/>
</enum>

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

<enum name="GeolocationClientId">
  <int value="0" label="kForTesting"/>
  <int value="1" label="kGeolocationServiceImpl"/>
  <int value="2" label="kGeoLanguageProvider"/>
  <int value="3" label="kFingerprintDataLoader"/>
  <int value="4" label="kOmnibox"/>
</enum>

<!-- LINT.ThenChange(
  /services/device/public/mojom/geolocation_client_id.mojom:GeolocationClientId
) -->

<enum name="GeolocationIOSAuthorizationStatus">
  <int value="0" label="Not determined"/>
  <int value="1" label="Restricted (user cannot grant permission)"/>
  <int value="2" label="Denied"/>
  <int value="3" label="Authorized always"/>
  <int value="4" label="Authorized when in-use"/>
</enum>

<enum name="GmsCoreGranularitySupportState">
  <int value="0" label="Granularity Unsupported (&lt; Week 44, 2022)"/>
  <int value="1" label="Granularity Supported (&gt;= Week 44, 2022)"/>
</enum>

<enum name="LocationProviderManagerMode">
  <int value="0" label="kNetworkOnly"/>
  <int value="1" label="kPlatformOnly"/>
  <int value="2" label="kCustomOnly"/>
  <int value="3" label="kHybridPlatform"/>
  <int value="4" label="kHybridFallbackNetwork"/>
  <int value="5" label="kHybridPlatform2"/>
</enum>

<enum name="LocationProviderManagerSource">
  <int value="0" label="kNetworkProvider"/>
  <int value="1" label="kPlatformProvider"/>
  <int value="2" label="kCustomProvider"/>
</enum>

<enum name="LocationSystemPermissionStatus">
  <int value="0" label="kNotDetermined"/>
  <int value="1" label="kDenied"/>
  <int value="2" label="kAllowed"/>
</enum>

<enum name="NetworkLocationRequestResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kCanceled"/>
  <int value="2" label="kNetworkError"/>
  <int value="3" label="kResponseNotOk"/>
  <int value="4" label="kResponseEmpty"/>
  <int value="5" label="kResponseMalformed"/>
  <int value="6" label="kInvalidPosition"/>
</enum>

<enum name="NetworkLocationRequestSource">
  <int value="0" label="kNetworkLocationProvider"/>
  <int value="1" label="kPublicIpAddressGeolocator"/>
  <int value="2" label="kSystemLocationProvider"/>
</enum>

<enum name="WindowsDevicesGeolocationPositionSource">
  <int value="0" label="PositionSource_Cellular"/>
  <int value="1" label="PositionSource_Satellite"/>
  <int value="2" label="PositionSource_WiFi"/>
  <int value="3" label="PositionSource_IPAddress"/>
  <int value="4" label="PositionSource_Unknown"/>
  <int value="5" label="PositionSource_Default"/>
  <int value="6" label="PositionSource_Obfuscated"/>
</enum>

<enum name="WindowsDevicesGeolocationPositionStatus">
  <int value="0" label="PositionStatus_Ready"/>
  <int value="1" label="PositionStatus_Initializing"/>
  <int value="2" label="PositionStatus_NoData"/>
  <int value="3" label="PositionStatus_Disabled"/>
  <int value="4" label="PositionStatus_NotInitialized"/>
  <int value="5" label="PositionStatus_NotAvailable"/>
</enum>

</enums>

</histogram-configuration>
