<!--
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 histogram suffixes
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>

<histogram_suffixes_list>

<histogram_suffixes name="AdsPageLoadMetricsBytes" separator=".">
  <suffix base="true" name="AdFrames.Aggregate"
      label="Includes resources loaded across all ad frames on a page."/>
  <suffix base="true" name="AdFrames.PerFrame"
      label="Includes resources loaded for a single ad frame."/>
  <suffix base="true" name="FullPage"
      label="Includes all resources loaded by the page."/>
  <suffix name="NonAdFrames.Aggregate.Total2"
      label="The size (in KB) of all of the page's resources except for those
             loaded in ad frames."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes"/>
  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Bytes"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsCpu" separator=".">
  <suffix name="AdFrames.PerFrame.PeakWindowedPercent2"
      label="The peak load over all 30 second windows while the page is
             unactivated of an ad creative. This is measured as percentage of
             a cpu core used and capped at 100% for multicore systems. This
             is measured whether the frame is in the foreground or not."/>
  <suffix name="AdFrames.PerFrame.TotalUsage2"
      label="The total load of an ad creative across the life of the page.
             This is measured in milliseconds and capped at 10 seconds. This
             is measured whether the frame is in the foreground or not."/>
  <affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Cpu"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Cpu"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsCpuFullPage" separator=".">
  <suffix name="AdFrames.Aggregate.TotalUsage2"
      label="The total CPU usage across all ad frames on a page in its
             lifetime. This is measured in milliseconds. This is measured
             whether a frame is in the foreground or not."/>
  <suffix name="FullPage.PeakWindowedPercent2"
      label="The peak load over all 30 second windows during the lifetime of
             the page. This is measured as percentage of a cpu core used and
             capped at 100% for multicore systems. This is measured whether a
             frame is in the foreground or not."/>
  <suffix name="FullPage.TotalUsage2"
      label="The total load of the page across its lifetime. This is measured
             in milliseconds and capped at 10 minutes. This is measured
             whether a frame is in the foreground or not."/>
  <suffix name="NonAdFrames.Aggregate.PeakWindowedPercent2"
      label="The peak load over all 30 second windows during the lifetime of
             the page of all non-ad frame activity including that of the main
             frame. This is measured as percentage of a cpu core used and
             capped at 100% for multicore systems. This is measured whether a
             frame was in the foreground or not."/>
  <suffix name="NonAdFrames.Aggregate.TotalUsage2"
      label="The total load of non-ad frames on page including the main frame
             across its lifetime. This is measured in milliseconds and capped
             at 10 minutes. This is measured whether a frame is in the
             foreground or not."/>
  <affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsMainFrameBytes" separator=".">
  <suffix base="true" name="MainFrame"
      label="Only includes resources loaded directly in the main frame."/>
  <suffix base="true" name="MainFrame.Ads"
      label="Only includes resources loaded directly in the main frame that
             were identified to be ad resources."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsNetworkBytes" separator=".">
  <suffix name="Network"
      label="The size (in KB) of all of resources that loaded over the
             network."/>
  <suffix name="Total2" label="The size (in KB) of the resources loaded."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.Aggregate"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.MainFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.MainFrame.Ads"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.Aggregate"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.AdFrames.PerFrame"/>
  <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes.FullPage"/>
</histogram_suffixes>

<histogram_suffixes name="AdsPageLoadMetricsPercentAdFrames" separator=".">
  <suffix name="PercentAdFrames"
      label="The percentage of bytes loaded from within ad frames."/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage.Network"/>
  <affected-histogram name="PageLoad.Clients.Ads.Bytes.FullPage.Total2"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage.Network"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.NonVisible.Bytes.FullPage.Total2"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.FullPage.Network"/>
  <affected-histogram
      name="PageLoad.Clients.Ads.Visible.Bytes.FullPage.Total2"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillAddressFormType" separator=".">
  <suffix name="AddressOnly" label="Form has address and maybe name fields"/>
  <suffix name="AddressPlusContact"
      label="Encompasses AddressPlusEmail, AddressPlusPhone, and
             AddressPlusEmailPlusPhone"/>
  <suffix name="AddressPlusEmail"
      label="Form has address, email, and maybe name fields"/>
  <suffix name="AddressPlusEmailPlusPhone"
      label="Form has address, email, phone, and maybe name fields"/>
  <suffix name="AddressPlusPhone"
      label="Form has address, phone, and maybe name fields"/>
  <suffix name="ContactOnly"
      label="Form has name and phone; name and email; or phone, email, and
             maybe name fields"/>
  <suffix name="Other"
      label="Another form type was encountered, such as a form with all
             unknown fields"/>
  <suffix name="PhoneOnly" label="Form has phone field only"/>
  <affected-histogram name="Autofill.FormEvents.Address"/>
</histogram_suffixes>

<histogram_suffixes
    name="AutofillSaveCreditCardPromptLegalMessageLinesMentionPersonalization"
    separator=".">
  <suffix name="LegalMessageLinesMentionPersonalization"
      label="When legal message mentions personalization"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptOffer.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptOffer.Upload.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.FirstShow"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSaveCreditCardPromptWithMultipleLegalLines"
    separator=".">
  <suffix name="WithMultipleLegalLines"
      label="When legal message has multiple lines"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptOffer.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptOffer.Upload.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.FirstShow"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes
    name="AutofillSaveCreditCardPromptWithSameLastFourButDifferentExpiration"
    separator=".">
  <suffix name="WithSameLastFourButDifferentExpiration"
      label="When the same last four but different expiration dates"/>
  <affected-histogram name="Autofill.CreditCardInfoBar.Server"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptOffer.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptOffer.Upload.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.FirstShow"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillStoredCardHasInvalidCardNumber" separator=".">
  <owner>smcgruer@google.com</owner>
  <owner>chrome-payments-eng@google.com</owner>
  <suffix name="WithInvalidCardNumber" label="Card with an invalid number"/>
<!-- Server cards always have valid card numbers, so this is local only. -->

  <affected-histogram name="Autofill.StoredCreditCardCount.Local"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillSyncState" separator=".">
  <suffix name="SignedIn" label="Signed in"/>
  <suffix name="SignedInAndSyncFeatureEnabled"
      label="Signed in and sync feature enabled"/>
  <suffix name="SignedInAndWalletSyncTransportEnabled"
      label="Signed in and sync transport enabled for Wallet data types"/>
  <suffix name="SignedOut" label="Signed out"/>
  <suffix name="SyncPaused" label="Sync paused"/>
  <suffix name="Unknown" label="Unknown"/>
  <affected-histogram name="Autofill.Address.IsEnabled.PageLoad"/>
  <affected-histogram name="Autofill.CardUploadEnabled2"/>
  <affected-histogram name="Autofill.CreditCard.IsEnabled.PageLoad"/>
  <affected-histogram
      name="Autofill.FormEvents.CreditCard.WithBothServerAndLocalData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithNoData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithOnlyLocalData"/>
  <affected-histogram name="Autofill.FormEvents.CreditCard.WithOnlyServerData"/>
  <affected-histogram name="Autofill.IsEnabled.PageLoad"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptOffer.Local.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptOffer.Local.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptOffer.Upload.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptOffer.Upload.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Local.FirstShow"/>
  <affected-histogram name="Autofill.SaveCreditCardPromptResult.Local.Reshows"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.FirstShow"/>
  <affected-histogram
      name="Autofill.SaveCreditCardPromptResult.Upload.Reshows"/>
</histogram_suffixes>

<histogram_suffixes name="AutofillUnmaskPromptNickname" separator=".">
  <suffix name="WithNickname" label="Credit Card has a valid nickname"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration.AbandonUnmasking"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration.Failure"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration.NoAttempts"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Duration.Success"/>
  <affected-histogram name="Autofill.UnmaskPrompt.Events"/>
  <affected-histogram name="Autofill.UnmaskPrompt.TimeBeforeAbandonUnmasking"/>
</histogram_suffixes>

<histogram_suffixes name="Cras_ClientType" separator=".">
  <suffix name="ARC" label="A client created by ARC++."/>
  <suffix name="ARCVM" label="A client created by ARCVM."/>
  <suffix name="BOREALIS" label="A client created by BOREALIS."/>
  <suffix name="Chrome" label="A client created by Chrome."/>
  <suffix name="CrOSVM" label="A client created by ChromeOS VM."/>
  <suffix name="InvalidType" label="Invalid client."/>
  <suffix name="LaCrOS" label="A client created by LaCrOS."/>
  <suffix name="Legacy" label="A client using an old CRAS lib."/>
  <suffix name="PCM" label="A client created by PCM."/>
  <suffix name="ServerStream" label="A client created by CRAS server."/>
  <suffix name="Test" label="A client created by cras_test_client."/>
  <suffix name="Unknown" label="Unknown client."/>
  <affected-histogram name="Cras.FetchDelayCount"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds"/>
  <affected-histogram name="Cras.StreamCallbackThreshold.Input"/>
  <affected-histogram name="Cras.StreamCallbackThreshold.Output"/>
  <affected-histogram name="Cras.StreamChannelCount.Input"/>
  <affected-histogram name="Cras.StreamChannelCount.Output"/>
  <affected-histogram name="Cras.StreamEffectsOnDestroy.Input"/>
  <affected-histogram name="Cras.StreamEffectsOnDestroy.Output"/>
  <affected-histogram name="Cras.StreamFlags.Input"/>
  <affected-histogram name="Cras.StreamFlags.Output"/>
  <affected-histogram name="Cras.StreamOverrunCount"/>
  <affected-histogram name="Cras.StreamOverrunFrames"/>
  <affected-histogram name="Cras.StreamRuntime.Input"/>
  <affected-histogram name="Cras.StreamRuntime.Output"/>
  <affected-histogram name="Cras.StreamSamplingFormat.Input"/>
  <affected-histogram name="Cras.StreamSamplingFormat.Output"/>
  <affected-histogram name="Cras.StreamSamplingRate.Input"/>
  <affected-histogram name="Cras.StreamSamplingRate.Output"/>
</histogram_suffixes>

<histogram_suffixes name="Cras_StreamType" separator=".">
  <suffix name="Default" label="Default"/>
  <suffix name="ProAudio" label="ProAudio"/>
  <suffix name="VoiceCommunication" label="WebRTC"/>
  <affected-histogram name="Cras.FetchDelayCount.ARC"/>
  <affected-histogram name="Cras.FetchDelayCount.ARCVM"/>
  <affected-histogram name="Cras.FetchDelayCount.BOREALIS"/>
  <affected-histogram name="Cras.FetchDelayCount.Chrome"/>
  <affected-histogram name="Cras.FetchDelayCount.CrOSVM"/>
  <affected-histogram name="Cras.FetchDelayCount.LaCrOS"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.ARC"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.ARCVM"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.BOREALIS"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.Chrome"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.CrOSVM"/>
  <affected-histogram name="Cras.FetchDelayMilliSeconds.LaCrOS"/>
  <affected-histogram name="Cras.StreamOverrunCount.ARC"/>
  <affected-histogram name="Cras.StreamOverrunCount.ARCVM"/>
  <affected-histogram name="Cras.StreamOverrunCount.BOREALIS"/>
  <affected-histogram name="Cras.StreamOverrunCount.Chrome"/>
  <affected-histogram name="Cras.StreamOverrunCount.CrOSVM"/>
  <affected-histogram name="Cras.StreamOverrunCount.LaCrOS"/>
  <affected-histogram name="Cras.StreamOverrunFrames.ARC"/>
  <affected-histogram name="Cras.StreamOverrunFrames.ARCVM"/>
  <affected-histogram name="Cras.StreamOverrunFrames.BOREALIS"/>
  <affected-histogram name="Cras.StreamOverrunFrames.Chrome"/>
  <affected-histogram name="Cras.StreamOverrunFrames.CrOSVM"/>
  <affected-histogram name="Cras.StreamOverrunFrames.LaCrOS"/>
  <affected-histogram name="Cras.StreamRuntime.Input.ARC"/>
  <affected-histogram name="Cras.StreamRuntime.Input.ARCVM"/>
  <affected-histogram name="Cras.StreamRuntime.Input.BOREALIS"/>
  <affected-histogram name="Cras.StreamRuntime.Input.Chrome"/>
  <affected-histogram name="Cras.StreamRuntime.Input.CrOSVM"/>
  <affected-histogram name="Cras.StreamRuntime.Input.LaCrOS"/>
  <affected-histogram name="Cras.StreamRuntime.Output.ARC"/>
  <affected-histogram name="Cras.StreamRuntime.Output.ARCVM"/>
  <affected-histogram name="Cras.StreamRuntime.Output.BOREALIS"/>
  <affected-histogram name="Cras.StreamRuntime.Output.Chrome"/>
  <affected-histogram name="Cras.StreamRuntime.Output.CrOSVM"/>
  <affected-histogram name="Cras.StreamRuntime.Output.LaCrOS"/>
</histogram_suffixes>

<histogram_suffixes name="HiddenWhileFlushing" separator=".">
  <suffix name="HiddenWhileFlushing"
      label="Tab hidden while flushing FCP value."/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationFrameType" separator=".">
  <suffix name="MainFrame" label="Navigation in the main frame."/>
  <suffix name="Subframe" label="Navigation in a subframe."/>
  <affected-histogram name="Navigation.IsSameSiteInstance"/>
  <affected-histogram name="Navigation.StartToCommit"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2"/>
</histogram_suffixes>

<histogram_suffixes name="NavigationTypeTiming" separator=".">
  <suffix name="BackForward" label="History (back/forward) navigation"/>
  <suffix name="BackgroundProcessPriority"
      label="process priority = background"/>
  <suffix name="ForegroundProcessPriority"
      label="process priority = foreground"/>
  <suffix name="NewNavigation" label="New navigation"/>
  <suffix name="Reload" label="Reload"/>
  <affected-histogram name="Navigation.ReadyToCommitUntilCommit2"/>
  <affected-histogram name="Navigation.StartToCommit"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.CrossProcess.Subframe"/>
  <affected-histogram name="Navigation.StartToCommit.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess.MainFrame"/>
  <affected-histogram name="Navigation.StartToCommit.SameProcess.Subframe"/>
  <affected-histogram name="Navigation.StartToCommit.Subframe"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.CrossProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.MainFrame"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.SameProcess"/>
  <affected-histogram name="Navigation.TimeToReadyToCommit2.Subframe"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadBackgrounded2" separator=".">
  <suffix name="Background"
      label="The page was backgrounded at least once from navigation start to
             this event."/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsAfterPaint" separator=".">
  <suffix name="AfterPaint"
      label="Limited to the duration of time starting after first paint, for
             page loads that reached first paint."/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsCacheInfo" separator=".">
  <suffix name="NoStore" label="Main resource had cache-control: no-store"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.ForwardBackNavigation"/>
  <affected-histogram
      name="PageLoad.ParseTiming.NavigationToParseStart.LoadType.ForwardBackNavigation"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsDataReductionProxy"
    separator="." ordering="prefix">
  <suffix name="Clients.DataReductionProxy"
      label="PageLoadMetrics that are a result of a navigation through the
             data reduction proxy."/>
  <suffix name="Clients.Previews.LitePages"
      label="PageLoadMetrics that are a result of a navigation through the
             data reduction proxy where a lite page response was received."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsDocWrite" separator="."
    ordering="prefix">
  <suffix name="Clients.DocWrite.Block"
      label="PageLoadMetrics from a page that has synchronous, cross-origin
             document.written scripts that could be blocked if the
             document.write script blocking feature is enabled."/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsFromGoogleSearch" separator="."
    ordering="prefix">
  <suffix name="Clients.FromGoogleSearch"
      label="PageLoadMetrics that are a result of a navigation from a Google
             web search"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay4"/>
  <affected-histogram
      name="PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsLoadingPredictor2"
    separator="." ordering="prefix">
  <suffix base="true" name="Clients.LoadingPredictor2"
      label="PageLoadMetrics with enabled LoadingPredictor. If the page is
             prerendered, the recorded value is modified as activation
             origined."/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsLoadingPredictorPredictionType"
    separator=".">
  <suffix name="Preconnectable"
      label="The predictor database contained origins for preconnecting for a
             page"/>
  <affected-histogram
      name="PageLoad.Clients.LoadingPredictor2.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsNoScriptPreview" separator="."
    ordering="prefix">
  <suffix name="Clients.NoScriptPreview"
      label="PageLoadMetrics that are a result of a navigation that tirggered
             the NoScript Preview intervention."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsProtocol" separator="."
    ordering="prefix">
  <suffix name="Clients.Protocol.H2"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over HTTP/2"/>
  <suffix name="Clients.Protocol.H11"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over HTTP/1.1"/>
  <suffix name="Clients.Protocol.QUIC"
      label="PageLoadMetrics that are a result of a navigation to main
             resource over QUIC"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsResourceLoadingHintsPreview"
    separator="." ordering="prefix">
  <suffix name="Clients.ResourceLoadingHintsPreview"
      label="PageLoadMetrics that are a result of a navigation that used
             ResourceLoadingHints to show a Preview version of the page."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsScheme" separator="."
    ordering="prefix">
  <suffix name="Clients.Scheme.HTTP"
      label="PageLoadMetrics that are a result of a navigation to a main
             resource where the committed URL is HTTP."/>
  <suffix name="Clients.Scheme.HTTPS"
      label="PageLoadMetrics that are a result of a navigation to a main
             resource where the committed URL is HTTPS."/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsServiceWorker" separator="."
    ordering="prefix">
  <suffix name="Clients.NoServiceWorker2"
      label="PageLoadMetrics from a page that is either not controlled by a
             service worker or is controlled by a service worker without a
             fetch event handler. This should NOT be compared to
             Clients.ServiceWorker2, see https://goo.gl/EdaGQn."/>
  <suffix name="Clients.ServiceWorker2"
      label="PageLoadMetrics from a page that is controlled by a service
             worker that has a fetch event handler."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsClientsServiceWorkerSpecialApps"
    separator=".">
  <suffix name="docs" label="Custom histogram for the Google Docs page"/>
  <suffix name="search"
      label="Custom histogram for the Google Search results page"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsEarlyHints2" separator="."
    ordering="prefix">
  <suffix name="Clients.EarlyHints2.Preload"
      label="PageLoadMetrics from a page that received preload Link headers
             via Early Hints responses. Recorded only for main frames.
             Includes samples from prerendered pages. record duration from
             activation start to first contentful paint for prerendered
             pages.
             PageLoad.Clients.EarlyHints.Preload.PaintTiming.NavigationToFirstContentfulPaint
             and
             PageLoad.Clients.EarlyHints.Preload.PaintTiming.NavigationToLargestContentfulPaint2
             record activation start origined values for prerendered pages."/>
  <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay4"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsLoadType" separator=".">
  <suffix name="LoadType.ForwardBackNavigation"
      label="Restricted to forward/back navigations."/>
  <suffix name="LoadType.NewNavigation"
      label="Restricted to new navigations (link clicks, URLs typed into the
             URL box, etc)."/>
  <suffix name="LoadType.Reload" label="Restricted to reloaded pages."/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram
      name="PageLoad.Clients.ServiceWorker2.ParseTiming.NavigationToParseStart"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsNoCommit" separator=".">
  <suffix name="NoCommit" label="Limited to page loads that did not commit."/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsPaintInfo" separator=".">
  <suffix name="WithoutPaint"
      label="The foreground duration for page loads did not reach first
             paint."/>
  <suffix name="WithPaint"
      label="The foreground duration for page loads reached first paint."/>
  <affected-histogram name="PageLoad.PageTiming.ForegroundDuration"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsSignedExchange" separator="."
    ordering="prefix">
  <suffix name="Clients.SignedExchange"
      label="PageLoadMetrics for page loads for which the document was served
             through a signed exchange."/>
  <suffix name="Clients.SignedExchange.AltSubSXG"
      label="PageLoadMetrics for page loads for which the document was served
             with prefetched alternative subresource signed exchange."/>
  <suffix name="Clients.SignedExchange.Cached"
      label="PageLoadMetrics for page loads for which the document was served
             through a cached signed exchange."/>
  <suffix name="Clients.SignedExchange.NotCached"
      label="PageLoadMetrics for page loads for which the document was served
             through a signed exchange directly from network."/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
  <affected-histogram
      name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
  <affected-histogram
      name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
  <affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsUserGesture" separator=".">
  <suffix name="UserGesture"
      label="Restricted to pages loaded via a user gesture."/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType.Reload"/>
</histogram_suffixes>

<histogram_suffixes name="PageLoadMetricsUserInitiated" separator=".">
  <suffix name="UserInitiated"
      label="(experimental) Page load metric that is approximately user
             initiated"/>
  <affected-histogram
      name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForAnyPasswordEntry"
    separator=".">
  <suffix name="AnyPasswordEntry"
      label="Password protection triggered by entering a password that
             matches either/both the sync password, signed-in non-syncing
             password, or a saved password. This is a superset of (and should
             be equal to or larger than) SyncPasswordEntry +
             SavedPasswordEntry + NonSyncPasswordEntry"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForGmailNonSyncPasswordEntry" separator=".">
  <suffix name="GmailNonSyncPasswordEntry"
      label="Password protection triggered by entering a non-syncing gaia
             password that is associated with a Gmail account. This is a
             subset of NonSyncPasswordEntry."/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForGmailSyncPasswordEntry"
    separator=".">
  <suffix name="GmailSyncPasswordEntry"
      label="Password protection triggered by entering the sync password that
             is associated with a Gmail account. This is a subset of
             SyncPasswordEntry."/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForGSuiteNonSyncPasswordEntry" separator=".">
  <suffix name="GSuiteNonSyncPasswordEntry"
      label="Password protection triggered by entering a non-syncing gaia
             password that is associated with a GSuite account. This is a
             subset of NonSyncPasswordEntry. Note that GSuite non-sync
             password reuse detection is only triggered if configured
             appropriate enterprise policy."/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.PasswordAlertModeOutcome"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForGSuiteSyncPasswordEntry"
    separator=".">
  <suffix name="GSuiteSyncPasswordEntry"
      label="Password protection triggered by entering the sync password that
             is associated with a GSuite account. This is a subset of
             SyncPasswordEntry. Note that GSuite sync password reuse
             detection is only triggered if configured appropriate enterprise
             policy."/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.PasswordAlertModeOutcome"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForNonGaiaEnterprisePasswordEntry"
    separator=".">
  <suffix name="NonGaiaEnterprisePasswordEntry"
      label="Password protection triggered by entering a password that
             matches a non-Gaia enterprise password. Note that non-Gaia
             enterprise password reuse detection is only triggered if
             configured appropriate enterprise policy."/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.PasswordAlertModeOutcome"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForNonSyncPasswordEntry"
    separator=".">
  <suffix name="NonSyncPasswordEntry"
      label="Password protection triggered by entering an unconsented primary
             account password."/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForOneTimePasswordFieldDetected"
    separator=".">
  <suffix name="OneTimePasswordFieldDetected"
      label="Password protection triggered by one time password field
             detected."/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForPasswordFieldOnFocus"
    separator=".">
  <suffix name="PasswordFieldOnFocus"
      label="Password protection triggered by password field on focus event."/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForSavedPasswordEntry"
    separator=".">
  <suffix name="SavedPasswordEntry"
      label="Password protection triggered by entering a password saved in
             the password manager where the account is not signed-in to
             Google."/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes name="PasswordProtectionTriggerForSyncPasswordEntry"
    separator=".">
  <suffix name="SyncPasswordEntry"
      label="Password protection triggered by entering the sync password,
             which may or may not also match a saved password. (This was
             called SyncProtectedPasswordEntry before M62)"/>
  <affected-histogram name="PasswordProtection.InterstitialAction"/>
  <affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
  <affected-histogram name="PasswordProtection.PageInfoAction"/>
  <affected-histogram name="PasswordProtection.RequestOutcome"/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForUnknownNonPrimaryPasswordEntry"
    separator=".">
  <suffix name="UnknownNonPrimaryPasswordEntry"
      label="Password protection triggered by entering a password that does
             not match a primary account password but no current signed-in
             account is found."/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

<histogram_suffixes
    name="PasswordProtectionTriggerForUnknownPrimaryPasswordEntry"
    separator=".">
  <suffix name="UnknownPrimaryPasswordEntry"
      label="Password protection triggered by entering a password that
             matches a primary account password but no current signed-in
             account is found."/>
  <affected-histogram name="PasswordProtection.Verdict"/>
</histogram_suffixes>

</histogram_suffixes_list>

</histogram-configuration>
