<!--
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="AdUserActivationStatus">
  <int value="0" label="No activation"/>
  <int value="1" label="Received activation"/>
</enum>

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

<enum name="AdvertisedAltSvcState">
  <int value="0" label="Unknown"/>
  <int value="1" label="QuicNotBroken"/>
  <int value="2" label="QuicBroken"/>
</enum>

<!-- LINT.ThenChange(//services/network/public/mojom/load_timing_internal_info.mojom:AdvertisedAltSvcState) -->

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

<enum name="CaptchaFrameAgentContext">
  <int value="0" label="Unknown"/>
  <int value="1" label="No known agent is active on tab"/>
  <int value="2" label="Glic agent is active on tab"/>
  <int value="3" label="DevTools agent is active on tab"/>
  <int value="4" label="Multiple agents are active on tab"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/page_load_metrics/observers/captcha_metrics_observer.h:CaptchaFrameAgentContext) -->

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

<enum name="CaptchaProvider">
  <int value="0" label="Unknown"/>
  <int value="1" label="reCaptcha"/>
  <int value="2" label="hCaptcha"/>
  <int value="3" label="Cloudflare Turnstile"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/page_load_metrics/observers/captcha_provider_manager.h:CaptchaProvider) -->

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

<enum name="ConnectionReuseStatus">
  <int value="0" label="kNonReuse"/>
  <int value="1" label="kDNSReused"/>
  <int value="2" label="kReused"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/gws_page_load_metrics_observer.h:ConnectionReuseStatus) -->

<enum name="CrossOriginAdStatus">
  <int value="0" label="Ad Origin indeterminable"/>
  <int value="1" label="Main Frame Origin same as Ad"/>
  <int value="2" label="Main Frame Origin differs from Ad"/>
</enum>

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

<enum name="GwsWarmUpType">
  <int value="0" label="RegularSignedIn"/>
  <int value="1" label="RegularPrewarmed"/>
  <int value="2" label="ReegularCold"/>
  <int value="3" label="OffTheRecordSignedIn"/>
  <int value="4" label="OffTheRecordPrewarmed"/>
  <int value="5" label="OffTheRecordColdButRegularSignedIn"/>
  <int value="6" label="OffTheRecordColdButRegularPrewarmed"/>
  <int value="7" label="OffTheRecordAndRegularCold"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/google/browser/gws_page_load_metrics_observer.cc:WarmUpType) -->

<enum name="HeavyAdStatus2">
  <int value="0" label="Not heavy"/>
  <int value="1" label="Network">
    The ad exceeded the network threshold for the Heavy Ad Intervention.
  </int>
  <int value="2" label="Total CPU">
    The ad exceeded the total CPU usage threshold for the Heavy Ad Intervention.
  </int>
  <int value="3" label="Peak CPU">
    The ad exceeded the peak CPU usage threshold for the Heavy Ad Intervention.
  </int>
</enum>

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

<enum name="HttpConnectionInfoCoarse">
  <int value="0" label="HTTP1"/>
  <int value="1" label="HTTP2"/>
  <int value="2" label="QUIC"/>
  <int value="3" label="OTHER"/>
</enum>

<!-- LINT.ThenChange(//net/http/http_connection_info.h:HttpConnectionInfoCoarse) -->

<enum name="InternalErrorLoadEvent">
  <summary>Internal Errors in the page_load_metrics system</summary>
  <int value="0" label="Invalid timing IPC sent from renderer (deprecated)"/>
  <int value="1"
      label="IPC received while not tracking a relevant committed load"/>
  <int value="2" label="IPC received from a frame we navigated away from"/>
  <int value="3" label="IPC received from a bad URL scheme"/>
  <int value="4" label="No IPCs received for this navigation"/>
  <int value="5" label="Page end reported before navigation start"/>
  <int value="6"
      label="Multiple aborted provisional loads at navigation start"/>
  <int value="7"
      label="User input received while not tracking a relevant committed load
             (deprecated)"/>
  <int value="8" label="Inter process TimeTicks skew"/>
  <int value="9" label="No commit or failed provisional load received"/>
  <int value="10" label="No page load end time recorded"/>
  <int value="11" label="Timing IPC received from subframe (deprecated)"/>
  <int value="12" label="Invalid timing IPC (invalid timing descendent)"/>
  <int value="13" label="Invalid timing IPC (invalid behavior descendent)"/>
  <int value="14" label="Invalid timing IPC (invalid timing)"/>
  <int value="15"
      label="Subframe navigation start before main frame navigation start"/>
  <int value="16"
      label="IPC received from subframe while not tracking a committed load"/>
  <int value="17"
      label="PageLoadFeatures received from browser process while not
             tracking a relevant committed load"/>
</enum>

<enum name="LcppPredictResult">
  <int value="0" label="Success">Prediction is success.</int>
  <int value="1" label="Failure: No hit">
    Prediction failed. No learned locator hit the actual LCP.
  </int>
  <int value="2" label="Failure(False positive): Unrecorded LCP">
    Prediction failed. LCP is predicted but the actual LCP is unrecorded one.
  </int>
  <int value="3" label="Failure(False positive): Duplication">
    Prediction failed. LCP is predicted but the actual LCP is one with the same
    locator.
  </int>
  <int value="4" label="Failure(False positive): Another indexed LCP.">
    Prediction failed. LCP is predicted but the actual LCP is one with another
    leaned locator.
  </int>
</enum>

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

<enum name="NavigationAbandonReasonEnum">
  <int value="0" label="kFrameRemoved"/>
  <int value="1" label="kExplicitCancellation"/>
  <int value="2" label="kInternalCancellation"/>
  <int value="3" label="kRenderProcessGone"/>
  <int value="4" label="kNeverStarted"/>
  <int value="5" label="kFailedSecurityCheck"/>
  <int value="6" label="kOther"/>
  <int value="7" label="kHidden"/>
  <int value="8" label="kErrorPage"/>
  <int value="9" label="kAppBackgrounded"/>
  <int value="10" label="kNewReloadNavigation"/>
  <int value="11" label="kNewHistoryNavigation"/>
  <int value="12" label="kNewOtherNavigationBrowserInitiated"/>
  <int value="13" label="kNewOtherNavigationRendererInitiated"/>
  <int value="14" label="kNewDuplicateNavigation"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/abandoned_page_load_metrics_observer.h:AbandonReason) -->

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

<enum name="NavigationMilestoneEnum2">
  <int value="0" label="kNavigationStart"/>
  <int value="1" label="kLoaderStart"/>
  <int value="2" label="kFirstRedirectedRequestStart"/>
  <int value="3" label="kFirstRedirectResponseStart"/>
  <int value="4" label="kFirstRedirectResponseLoaderCallback"/>
  <int value="5" label="kNonRedirectedRequestStart"/>
  <int value="6" label="kNonRedirectResponseStart"/>
  <int value="7" label="kNonRedirectResponseLoaderCallback"/>
  <int value="8" label="kCommitSent"/>
  <int value="9" label="kCommitReceived"/>
  <int value="10" label="kDidCommit"/>
  <int value="11" label="kParseStart"/>
  <int value="12" label="kFirstContentfulPaint"/>
  <int value="13" label="kDOMContentLoaded"/>
  <int value="14" label="kLoadEventStarted"/>
  <int value="15" label="kLargestContentfulPaint"/>
  <int value="16" label="kAFTStart"/>
  <int value="17" label="kAFTEnd"/>
  <int value="18" label="kHeaderChunkStart"/>
  <int value="19" label="kHeaderChunkEnd"/>
  <int value="20" label="kBodyChunkStart"/>
  <int value="21" label="kBodyChunkEnd"/>
  <int value="22" label="kSecondRedirectedRequestStart"/>
  <int value="23" label="kSecondedirectResponseStart"/>
  <int value="24" label="kCommitReplySent"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/abandoned_page_load_metrics_observer.h:NavigationMilestone) -->

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

<enum name="NavigationSourceTypeEnum">
  <int value="0" label="kUnknown"/>
  <int value="1" label="kFromNewTabPage"/>
  <int value="2" label="kStartedInBackground"/>
  <int value="3" label="kStartedInBackgroundFromNewTabPage"/>
  <int value="4" label="kFromGWSPage"/>
  <int value="5" label="kStartedInBackgroundFromGWSPage"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/gws_page_load_metrics_observer.h:NavigationSourceType) -->

<enum name="PageActionCTREvent">
  <int value="0" label="Shown"/>
  <int value="1" label="Clicked"/>
</enum>

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

<enum name="PageActionIconType">
  <int value="0" label="Bookmarks Star"/>
  <int value="1" label="(Deprecated) Click to Call"/>
  <int value="2" label="Cookie Controls"/>
  <int value="3" label="File System Access"/>
  <int value="4" label="Find"/>
  <int value="5" label="Memory Saver"/>
  <int value="6" label="Intent Picker"/>
  <int value="7" label="(Deprecated) Local Card Migration"/>
  <int value="8" label="Manage Passwords"/>
  <int value="9" label="Payments Offer Notification"/>
  <int value="10" label="(Deprecated) Price Tracking"/>
  <int value="11" label="PWA Install"/>
  <int value="12" label="(Deprecated) QR Code Generator"/>
  <int value="13" label="(Deprecated) Reader Mode"/>
  <int value="14" label="Autofill Address"/>
  <int value="15" label="Save Card"/>
  <int value="16" label="(Deprecated) Send Tab to Self"/>
  <int value="17" label="(Deprecated) Sharing Hub"/>
  <int value="18" label="(Deprecated) Side Search"/>
  <int value="19" label="(Deprecated) SMS Remote Fetcher"/>
  <int value="20" label="Translate"/>
  <int value="21" label="Virtual Card Enroll"/>
  <int value="22" label="Filled card information"/>
  <int value="23" label="Zoom"/>
  <int value="24" label="Save IBAN"/>
  <int value="25" label="Mandatory Reauth"/>
  <int value="26" label="Price Insights"/>
  <int value="27" label="(Deprecated) Read Anything"/>
  <int value="28" label="Product Specifications"/>
  <int value="29" label="Lens Overlay"/>
  <int value="30" label="Discounts"/>
  <int value="31" label="Optimization Guide"/>
  <int value="32" label="Collaboration Messaging"/>
  <int value="33" label="(Deprecated) Change Password"/>
  <int value="34" label="Lens Overlay Homework"/>
  <int value="35" label="AI Mode"/>
  <int value="36" label="Reading mode"/>
  <int value="37" label="Contextual Task"/>
  <int value="38" label="JS Optimizations"/>
  <int value="39" label="RecordReplay"/>
  <int value="40" label="Indigo"/>
  <int value="41" label="Federation"/>
  <int value="42" label="Glic"/>
  <int value="43" label="Anchored Contextual Cue"/>
  <int value="44" label="Web Authentication Ambient"/>
  <int value="45" label="Autofill Payment"/>
  <int value="46" label="Multistep Filter"/>
  <int value="47" label="Payments Churned Users"/>
  <int value="48" label="Fake Page Action For Debug"/>
  <int value="49" label="Wallet Reminder Notice"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/page_action/page_action_icon_type.h:PageActionIconType) -->

<enum name="PageActionPageEvent">
  <int value="0" label="Page Shown"/>
  <int value="1" label="Action Shown"/>
  <int value="2" label="Multiple Actions Shown"/>
</enum>

<enum name="PageLoadBackForwardCacheEvent">
  <int value="0" label="Enter back-forward cache"/>
  <int value="1" label="Restore from back-forward cache"/>
</enum>

<enum name="PageLoadPrerenderEvent">
  <int value="0" label="Prerendered Main Frame Navigation"/>
  <int value="1" label="Prerender Activation Navigation"/>
</enum>

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

<enum name="PageLoadTimingStatus">
  <summary>Status of PageLoadTimings received from the render process</summary>
  <int value="0" label="Valid"/>
  <int value="1" label="Empty timing"/>
  <int value="2" label="Null navigation start"/>
  <int value="3" label="Script load longer than parse duration"/>
  <int value="4" label="Script execution longer than parse duration"/>
  <int value="5"
      label="Script load from doc.write longer than total script load"/>
  <int value="6"
      label="Script execution from doc.write longer than total script
             execution"/>
  <int value="7" label="Invalid order - response start / parse start"/>
  <int value="8" label="Invalid order - parse start / parse stop"/>
  <int value="9" label="Invalid order - parse stop / dom content loaded"/>
  <int value="10" label="Invalid order - dom content loaded / load"/>
  <int value="11" label="Invalid order - parse start / first paint"/>
  <int value="12" label="Invalid order - first paint / first text paint"/>
  <int value="13" label="Invalid order - first paint / first image paint"/>
  <int value="14" label="Invalid order - first paint / first contentful paint"/>
  <int value="15" label="Invalid order - first paint / first meaningful paint"/>
  <int value="16" label="Invalid order - first meaningful paint / interactive"/>
  <int value="17" label="First input delay without first input timestamp"/>
  <int value="18" label="First input timestamp without first input delay"/>
  <int value="19" label="Longest input delay without longest input timestamp"/>
  <int value="20" label="Longest input timestamp without longest input delay"/>
  <int value="21" label="First scroll delay without first scroll timestamp"/>
  <int value="22" label="First scroll timestamp without first scroll delay"/>
  <int value="23"
      label="Longest input timestamp earlier than first input timestamp"/>
  <int value="24" label="Longest input delay less than first input delay"/>
  <int value="25" label="Invalid order - parse start / activation start"/>
  <int value="26" label="Invalid order - activation start / first paint"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/page_load_metrics_update_dispatcher.h:PageLoadTimingStatus) -->

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

<enum name="PaidContentState">
  <int value="0" label="Unknown"/>
  <int value="1" label="Has paid content"/>
  <int value="2" label="No paid content found"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/paid_content_page_load_metrics_observer.cc:PaidContentState) -->

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

<enum name="PrerenderPrewarmNavigationStatus">
  <int value="0" label="Not prewarmed, prerender host not reused"/>
  <int value="1" label="Not prewarmed, prerender host reused"/>
  <int value="2" label="Prewarmed, prerender host not reused"/>
  <int value="3" label="Prewarmed, prerender host reused"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/google/browser/prerender_prewarm_navigation_data.h:PrerenderPrewarmNavigationStatus) -->

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

<enum name="PriorPrewarmCommitStatus">
  <int value="0" label="No prewarm triggered"/>
  <int value="1" label="Prewarm triggered, not committed"/>
  <int value="2" label="Prewarm triggered, committed"/>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/google/browser/prerender_prewarm_navigation_data.h:PriorPrewarmCommitStatus) -->

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

<enum name="SoftNavigationPageLoadMetricsObserverState">
  <int value="0" label="initial (softnav unexpected)">
    softnav unexpected - no navigation recognized
  </int>
  <int value="1" label="started (softnav expected)">
    softnav expected - a (hard) navigation was started
  </int>
  <int value="2" label="prerenderStarted (softnav unexpected)">
    softnav unexpected - a prerender was started
  </int>
  <int value="3" label="prerenderActivated (softnav expected)">
    softnav expected - a prerender was activated
  </int>
  <int value="4" label="inBackForwardCache (softnav unexpected)">
    softnav unexpected - the page entered the bfcache
  </int>
  <int value="5" label="restoredFromBackForwardCache (softnav expected)">
    softnav expected - the page was restored from bfcache
  </int>
  <int value="6" label="complete (softnav unexpected)">
    softnav unexpected - the navigation completed
  </int>
</enum>

<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/soft_navigation_page_load_metrics_observer.h:SoftNavigationPageLoadMetricsObserverState) -->

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

<enum name="WebViewPageAttemptResult">
  <int value="0" label="Success: Reached FirstContentfulPaint"/>
  <int value="1" label="Early Finish: Load ended before FirstContentfulPaint"/>
  <int value="2" label="Failure"/>
</enum>

<!-- LINT.ThenChange(//android_webview/browser/page_load_metrics/service_level_page_load_metrics_observer.h:WebViewPageAttemptResult) -->

</enums>

</histogram-configuration>
