<!--
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 others 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
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="ContextMenuAndroidTypes">
<variant name="" summary=""/>
<variant name=".Image"
summary="The context menu was shown for a (non-link) image."/>
<variant name=".ImageLink"
summary="The context menu was shown for an image which is also a link."/>
<variant name=".Link"
summary="The context menu was shown for a (non-image) link"/>
<variant name=".SharedHighlightingInteraction"
summary="The context menu was shown from tap on highlighted text."/>
<variant name=".Video" summary="The context menu was shown for a video"/>
</variants>
<variants name="GridTabSwitcherMessageTypes">
<variant name="PriceAlertsMessageCard"
summary="the promo message for price notifications"/>
<variant name="PriceWelcomeMessageCard"
summary="the message introducing price chips"/>
</variants>
<variants name="HighlightsDetailsPageName">
<variant name="AdobePage" summary="Highlights app Adobe detail page"/>
<variant name="AIBackgroundPage"
summary="Highlights app AI background detail page"/>
<variant name="AIPremiumPlanPage"
summary="Highlights app Google One AI Premium Plan detail page"/>
<variant name="AutoUpdatePage" summary="Auto Update detail page"/>
<variant name="BatteryPage" summary="Highlights app Battery detail page"/>
<variant name="BuiltInSecurityPage"
summary="Highlights app Built In Security detail page"/>
<variant name="ComparisonPage"
summary="Highlights app Comparison detail page"/>
<variant name="DisplayEntertainmentPage"
summary="Highlights app Display (Entertainment) detail page"/>
<variant name="DisplayPerformancePage"
summary="Highlights app Display (Performance) detail page"/>
<variant name="EasySetupPage" summary="Easy setup detail page"/>
<variant name="EntertainmentAppsPage"
summary="Highlights app Entertainment Apps detail page"/>
<variant name="FastBootPage" summary="Fast boot detail page"/>
<variant name="GameDashboardPage"
summary="Highlights app Game Dashboard detail page"/>
<variant name="GeminiForAllPage"
summary="Highlights app Gemini for all detail page"/>
<variant name="GeminiForWorkSpacePage"
summary="Highlights app Gemini for Work space detail page"/>
<variant name="GoogleAppsPage"
summary="Highlights app Google Apps detail page"/>
<variant name="GoogleToolsBuiltInPage"
summary="Google tools built in detail page"/>
<variant name="HelpMeWritePage"
summary="Highlights app Help me write detail page"/>
<variant name="LauncherSearchPage" summary="Launcher search detail page"/>
<variant name="LumaFusionPage"
summary="Highlights app LumaFusion detail page"/>
<variant name="MessagingPage" summary="Highlights app Messaging detail page"/>
<variant name="MobileGamingPage"
summary="Highlights app Mobile Gaming detail page"/>
<variant name="MS365AppsPage"
summary="Highlights app MS365 Apps detail page"/>
<variant name="MSOfficePage" summary="Highlights app MSOffice detail page"/>
<variant name="NearbySharePage"
summary="Highlights app Nearby Share detail page"/>
<variant name="OfflineModePage"
summary="Highlights app Offline Mode detail page"/>
<variant name="PCConsoleGamingPage"
summary="Highlights app PC/Console Gaming detail page"/>
<variant name="PhotosPage" summary="Highlights app Photos detail page"/>
<variant name="PlayStorePage" summary="Play Store detail page"/>
<variant name="ProcessorPage" summary="Highlights app Processor detail page"/>
<variant name="ProductivityPage" summary="Productivity detail page"/>
<variant name="StoragePage" summary="Highlights app Storage detail page"/>
<variant name="SwitchingPage" summary="Highlights app Switching detail page"/>
<variant name="SwitchToChromeBookPage"
summary="Switch to ChromeBook detail page"/>
<variant name="TitanC2Page" summary="Titan C2 details page"/>
<variant name="VideoCallPage"
summary="Highlights app Video Call detail page"/>
<variant name="WebcamPage" summary="Highlights app Webcam detail page"/>
</variants>
<variants name="HighlightsPageName">
<variant name="AppsPage" summary="Highlights app Apps page"/>
<variant name="ChromeOSPage" summary="Highlights app ChromeOS page"/>
<variant name="DisplayPage" summary="Highlights app Display page"/>
<variant name="EasyPage" summary="Highlights app Easy page"/>
<variant name="EasyToUsePage" summary="Highlights app Easy to use page"/>
<variant name="FastPage" summary="Highlights app Fast page"/>
<variant name="GamePage" summary="Highlights app Game page"/>
<variant name="GoogleAIPage" summary="Highlights app Google AI page"/>
<variant name="GoogleBuiltInPage"
summary="Highlights app Google built in page"/>
<variant name="GraphicsPage" summary="Highlights app Graphics page"/>
<variant name="HomePage" summary="Highlights app Home page"/>
<variant name="KeyboardPage" summary="Highlights app Keyboard page"/>
<variant name="PerformancePage" summary="Highlights app Performance page"/>
<variant name="PeripheralsPage" summary="Highlights app Peripherals page"/>
<variant name="PowerfulPage" summary="Highlights app Powerful page"/>
<variant name="SecurePage" summary="Highlights app Secure page"/>
</variants>
<variants name="ImportantFileClients">
<variant name="" summary="Unknown file"/>
<variant name=".AccountManager" summary="ChromeOS serialized accounts file"/>
<variant name=".AccountPreferences" summary="Account Preferences file"/>
<variant name=".BookmarkStorage" summary="Bookmarks file"/>
<variant name=".FeedbackReport" summary="Feedback Report file"/>
<variant name=".Local_State" summary="Local State file"/>
<variant name=".LoopBackServer" summary="Sync file"/>
<variant name=".Nigori" summary="Nigori sync file"/>
<variant name=".PersistentHistogramAllocator"
summary="Persistent Histogram Allocator"/>
<variant name=".Preferences" summary="Preferences file"/>
<variant name=".SCTAuditing"
summary="Signed Certificate Timestamp auditing report file"/>
<variant name=".Secure_Preferences" summary="Secure Preferences file"/>
<variant name=".StructuredMetricsPersistentProto"
summary="Structured metrics persistent proto"/>
<variant name=".TransportSecurityPersister"
summary="TransportSecurity state file"/>
<variant name=".TrustedVault" summary="Trusted Vault file"/>
</variants>
<variants name="InterestGroupRequestType">
<variant name="BiddingScriptJS" summary="buyer JavaScript bidding script"/>
<variant name="BiddingScriptWasm" summary="buyer WebAssembly bidding script"/>
<variant name="DebugLossReport"
summary="post-auction forDebuggingOnly.reportAdAuctionLoss() report"/>
<variant name="DebugWinReport"
summary="post-auction forDebuggingOnly.reportAdAuctionWin() report"/>
<variant name="DirectFromSellerSignals"
summary="auction directFromSellerSignals"/>
<variant name="RealTimeReport" summary="post-auction real time report"/>
<variant name="ScoringScriptJS" summary="seller JavaScript scoring script"/>
<variant name="SendReportToReport"
summary="post-auction sendReportTo() report (from either the winning
bidder or the seller)"/>
<variant name="TrustedBidding" summary="trusted bidding signals"/>
<variant name="TrustedScoring" summary="trusted scoring signals"/>
<variant name="Update" summary="interest group update"/>
</variants>
<variants name="PageImageServiceClientId">
<variant name="" summary="all requests"/>
<variant name=".Bookmarks" summary="from Bookmarks"/>
<variant name=".Journeys" summary="from Journeys inside History"/>
<variant name=".JourneysSidePanel" summary="from Journeys inside Side Panel"/>
<variant name=".NtpQuests" summary="from the Quests module on the NTP"/>
<variant name=".NtpRealbox" summary="from the realbox on the NTP"/>
<variant name=".NtpTabResumption"
summary="from the Tab resumption module on the NTP"/>
</variants>
<!-- LINT.IfChange(TopChromeWebUIName) -->
<variants name="TopChromeWebUIName">
<variant name=""/>
<variant name=".BookmarksSidePanel"/>
<variant name=".CompanionSidePanelUntrusted"/>
<variant name=".Compose"/>
<variant name=".CustomizeChrome"/>
<variant name=".DataSharingBubble"/>
<variant name=".Emoji"/>
<variant name=".Feed"/>
<variant name=".HistoryClustersSidePanel"/>
<variant name=".LensSearchBubble"/>
<variant name=".LensUntrusted"/>
<variant name=".MakoUntrusted"/>
<variant name=".PerformanceSidePanel"/>
<variant name=".ReadAnythingUntrusted"/>
<variant name=".ReadingList"/>
<variant name=".ShoppingInsightsSidePanel"/>
<variant name=".TabSearch"/>
<variant name=".UserNotesSidePanel"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/page/histograms.xml:TopChromeWebUIName) -->
<variants name="WebContentsObserverMethods">
<variant name="DidChangeVisibleSecurityState"/>
<variant name="DidFinishLoad"/>
<variant name="DidFinishNavigation"/>
<variant name="DidFirstVisuallyNonEmptyPaint"/>
<variant name="DidRedirectNavigation"/>
<variant name="DidStartLoading"/>
<variant name="DidStartNavigation"/>
<variant name="DidStopLoading"/>
<variant name="DocumentAvailableInMainFrame"/>
<variant name="DOMContentLoaded"/>
<variant name="LoadProgressChanged"/>
<variant name="NavigationEntryChanged"/>
<variant name="NavigationEntryCommitted"/>
<variant name="NavigationEntryDeleted"/>
<variant name="OnVisibilityChanged"/>
<variant name="PrimaryMainDocumentElementAvailable"/>
<variant name="RenderFrameCreated"/>
<variant name="RenderFrameDeleted"/>
<variant name="RenderViewReady"/>
<variant name="TitleWasSet"/>
</variants>
<variants name="WebUIHostname">
<variant name="Bookmarks"/>
<variant name="BookmarksSidePanel"/>
<variant name="CustomizeChromeSidePanel"/>
<variant name="Downloads"/>
<variant name="History"/>
<variant name="HistoryClustersSidePanel"/>
<variant name="NewTabPage"/>
<variant name="NewTabPageThirdParty"/>
<variant name="ReadAnythingSidePanel"/>
<variant name="ReadLater"/>
<variant name="Resources"/>
<variant name="Settings"/>
<variant name="TabSearch"/>
<variant name="Theme"/>
<variant name="TopChrome"/>
</variants>
<histogram name="AccessCodeCast.Discovery.AddSinkResult.New"
enum="AccessCodeCastAddSinkResult" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of adding a cast sink to the media router sink list via the
AccessCodeCastSinkService when discovering it using an access code. Recorded
after the cast sink is added. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Discovery.AddSinkResult.Remembered"
enum="AccessCodeCastAddSinkResult" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of adding a cast sink to the media router sink list via the
AccessCodeCastSinkService when the device was remembered due to device
policy. Recorded after the cast sink is added. Logged only on desktop
platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Discovery.CastModeOnSuccess"
enum="AccessCodeCastCastMode" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The selected cast mode when a cast session is successfully started
(ResultCode::OK) after a user enters an access code. Logged only on desktop
platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Discovery.DeviceDurationOnRoute"
units="seconds" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration in seconds an access code device will stay in the list of cast
devices. Recorded on successful creation of a cast session to an access code
device. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Discovery.RememberedDevicesCount"
units="cast devices" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of cast devices which have been successfully remembered via the
access code cast sink service. Recorded when the browser starts, and any
time the network changes. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.FreezeCount" units="instances"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of times that a local cast mirroring session is frozen, or paused,
during its duration. Recorded at the end of a cast mirroring session. Logged
only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.FreezeDuration" units="ms"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds that a local cast mirroring session is
frozen, or paused, until it is resumed or ended. Recorded when the session
is resumed, or when the session ends. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.NewDeviceRouteCreationDuration"
units="ms" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds that it takes to connect to a new device.
It is the combination of connecting to our server, validating the access
code, constructing a cast device, opening a channel to that device, and then
waiting for success. It is only recorded if the request was successful; not
recorded for non-local routes. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.RouteDiscoveryTypeAndSource"
enum="AccessCodeCastDiscoveryTypeAndSource" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The discovery type of the associated sink and the cast media source for an
access code route. Recorded when at the start of a local access code route.
Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.RouteDuration" units="ms"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds that a route to an access code device
lasts. Recorded at the end of a local access code route; not recorded for
non-local routes. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Session.SavedDeviceRouteCreationDuration"
units="ms" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds that it takes to connect to a saved
device. It is a combination of the time to request a mirroring route +
waiting for a success. It is only recorded if the request was successful;
not recorded for non-local routes. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.AccessCodeInputTime" units="ms"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds for the user to input an access code
after the UI is enabled for a cast attempt. Recorded when the user presses
enter or the submit button after typing an access code. Logged only on
desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.AccessCodeNotFoundCount" units="instances"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of ACCESS_CODE_NOT_FOUND errors received while the
AccessCodeCastDialog is open, correlating to the number of times a user
typed an incorrect access code. Recorded after the dialog is closed. Logged
only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.CastAttemptLength" units="ms"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time in milliseconds that the dialog is loading while
attempting to cast to a new device via access code. Recorded after a cast
attempt completes, and does not depend on whether the attempt was successful
or ended in error. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.DialogCloseReason"
enum="AccessCodeCastDialogCloseReason" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason why the Access Code Cast dialog closed. Recorded when the Access
Code Cast dialog closes. Logged only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.DialogLoadTime" units="ms"
expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time for the AccessCodeCast dialog to finish loading after
instantiation. Recorded after the UI creates a page handler object. Logged
only on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.DialogOpenLocation"
enum="AccessCodeCastDialogOpenLocation" expires_after="2024-09-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The location from which the AccessCodeCast dialog is opened. Recorded after
the dialog opens. Only logged on desktop platforms.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.TabSwitcherUsageType"
enum="AccessCodeCastUiTabSwitcherUsage" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is recorded once per AccessCodeCast tab mirroring session. It
records the number of times the tab switcher UI was shown and not used,
compared to the number of times it was shown and actually used to switch
tabs. This would make it possible to compute the % of users who cast a tab
who then switch which tab is being cast. Recorded once at the end of a tab
mirroring casting session.
</summary>
</histogram>
<histogram name="AccessCodeCast.Ui.TabSwitchingCount" units="count"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is recorded once per AccessCodeCast tab mirroring session. It
records the number of times the tab switcher UI was used to switch the
source tab.
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.InitStatus"
enum="ActivityTrackerCollectInitStatus" expires_after="M90">
<owner>[email protected]</owner>
<summary>
Status of the initialization to collect stability debug files. Logged once,
during the initialization of the stability debug file collection.
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.StabilityFileCount" units="count"
expires_after="M90">
<owner>[email protected]</owner>
<summary>
Number of files found during stability file collection. Logged each time the
stability file collection proceeds (at most once per launch).
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.Status"
enum="ActivityTrackerCollectStatus" expires_after="M90">
<owner>[email protected]</owner>
<summary>
Status for the collection of a stability debug file. Logged each time a
debug file collection attempt is made.
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.SystemSessionAnalysisStatus"
enum="ActivityTrackerSystemSessionAnalysisStatus" expires_after="M90">
<owner>[email protected]</owner>
<summary>
Status for the analysis of the system session state. Logged each time a
debug file is collected.
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.TotalTime" units="ms"
expires_after="M90">
<owner>[email protected]</owner>
<summary>
Time spent collecting stability debug information. Logged each time a
collection is performed.
</summary>
</histogram>
<histogram name="ActivityTracker.Collect.WriteDumpStatus"
enum="ActivityTrackerWriteDumpStatus" expires_after="M90">
<owner>[email protected]</owner>
<summary>
Status of the minidump writing. Logged each time a writing a minidump is
attempted.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.AtAuctionTotalSize.{Type}" units="bytes"
expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total size of all {Type} loaded for a given auction (including all
component auctions, if any), as reported by EstimateSize(). Reported after
loading completes for a non-component auction or parent auction of component
auction(s). This is a high ceiling estimate as it includes interest groups
that are filtered from the auction (no bidding URL / ads, missing seller
capabilities, prioritization, etc.) to attempt to gague potential peak
memory consumption by interest groups.
</summary>
<token key="Type">
<variant name="AdsAndAdComponents"
summary="ads and ad components of interest groups"/>
<variant name="Groups" summary="interest groups"/>
</token>
</histogram>
<histogram name="Ads.InterestGroup.Auction.AdditionalBids.DecodeLatency"
units="ms" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latency of each successfully decoded additional bid. This includes
additional bids that were suppressed by negative targeting and those that
were sent for scoring, but not additional bids that encountered an error
during decoding.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.AdditionalBids.Result"
enum="AdditionalBidResult" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Result of the decoding of each additional bid. This includes both error
outcomes - additional bids rejected because, e.g., the base64 from the
Ad-Auction-Additional-Bid response header was invalid, or the JSON of the
signed additional bid couldn't be parsed - and non-error outcomes -
additional bids that were suppressed because of negative targeting, and
those that were sent for scoring.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.AdNavigationStarted" enum="Boolean"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when an ad that won a Protected Audience auction is navigated to.
(This includes calls to deprecatedURNtoURL, regardless of whether the url is
eventually loaded). Only True values are recorded, the buckets can be
ignored. Recorded at navigation start. At the time of recording, the auction
type is not distinguishable, so the number of started ad navigations should
be compared to the sum across all values of AuctionType in
Ads.InterestGroup.{AuctionType}.Result.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.Auction.BidderWorkletIsolateTotalHeapSizeKilobytes"
units="KB" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of kilobytes v8 has allocated to the heap of the bidder
worklet isolate. This number should be greater than or equal to its
corresponding BidderWorkletIsolateUsedHeapSizeKilobytes. Recorded when the
worklet is destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.Auction.BidderWorkletIsolateUsedHeapSizeKilobytes"
units="KB" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of kilobytes used in the heap of the bidder worklet isolate. This
number should be less than or equal to its corresponding
BidderWorkletIsolateTotalHeapSizeKilobytes. Recorded when the worklet is
destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.BidFiltered" enum="Boolean"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if the trusted bidding signals specified a per-interest-group
priorityVector whose sparse dot product with the browser generated
prioritySignals was negative, indicating the generateBid() should not be
invoked.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.BidScriptTime" units="ms"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to execute the bidding script. This includes the
time needed to initialize the JavaScript context. This is recorded as soon
as the bidding script completes running, both for successful and
unsuccessful invocations.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ConfigPromises.CriticalPathLatency"
units="ms" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between the start of the BiddingAndScoring phase and when configs
promises are resolved. In a single-seller auction, this is only recorded if
the auction has config promises; in a multi-seller auction, this is only
recorded for component auctions and the top-level auction for those that
have config promises. In auctions for which the config promises are resolved
before the bidding and auction phase, a critical path latency of zero is
recorded. This shows how long additional bids would have had to wait for the
config promises to be resolved, since they couldn't be processed until the
BiddingAndScoring phase anyway.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ConfigPromises.Latency" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between the auction start time and when config promises are resolved.
In a single-seller auction, this is only recorded if the auction has config
promises; in a multi-seller auction, this is only recorded for component
auctions and the top-level auction for those that have config promises. This
is not the same as how long the auction needed to wait for a config promise,
since other work happened simultaneously. That's better captured by
Ads.InterestGroup.Auction.ConfigPromises.CriticalPathLatency.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ContextReused" enum="Boolean"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if the browser can reuse an existing context when calling generateBid()
whose corresponding interest group has the executionMode set to
group-by-origin.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.Auction.ContributeToHistogramOnEventPermissionPolicy"
enum="Boolean" expires_after="2025-06-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether permission policy allowed a call to contributeToHistogramOnEvent()
or not. Recorded at every call.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.DirectFromSellerSignals.RequestType"
enum="DirectFromSellerSignalsRequestType" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each request made for a DirectFromSellerSignals bundle subresource,
records whether the request was made to the network service, or whether the
request was elided due to either loading from the
DirectFromSellerSignalsRequester cache, or coalescing with an exiting
request for the same subresource URL.
Reported at each DirectFromSellerSignalsRequester request.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.FinalReporterState"
enum="InterestGroupAuctionReporterState" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The final state of the InterestGroupAuctionReporter when it's destroyed.
Currently the lifetime of an InterestGroupAuctionReporter is scoped to the
frame that runs an auction, so when that frame is destroyed, any work the
Reporter has yet to do is aborted. This histogram serves to indicate how far
along a destroyed Reporter is, to help understand the priority of extending
an InterestGroupAuctionReporter's lifetime beyond that of the source frame.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.First6AuctionsBitsPerPage"
units="bitfield" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of the first 6 auctions reported as bits, tracked per-page,
reported at page unload (if at least 1 auction completed). A 1 indicates
auction success, 0 indicates auction failure. The most significant bit
corresponds to the least recent auction. An extra leading 1 is prepended --
this allows reporting metrics when fewer than 6 auctions occurred during the
page's lifetime. Therefore, the max value is 0b1111111 (7 bits, represents 6
successful auctions), and the min value is 0b10 (represents a page that had
1 failed auction), and every value in between is valid. Not updated for
auctions skipped due to enforcing the auction limit, see
NumAuctionsSkippedDueToAuctionLimit. Also, not updated if runAdAuction()
fails before the auction worklets run.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.GenerateBidTime" units="ms"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to initialize arguments, and evaluate
generateBid() once. If the interest group's execution mode is compatibility
mode, it also includes initialize the context and run top-level script.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.GroupFreshness.{Type}"
units="minutes" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every interest group that participates in an auction, the time duration
since the last join or update of that interest group.
This metric only measures {Type}.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="Type">
<variant name="NoDailyUpdates"
summary="interest groups that don't specify a dailyUpdateUrl"/>
<variant name="WithDailyUpdates"
summary="interest groups that specify a dailyUpdateUrl"/>
</token>
</histogram>
<histogram name="Ads.InterestGroup.Auction.LoadGroupsCacheHit" enum="Boolean"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if there is a cache hit when loading an owner's interest groups for a
FLEDGE auction. Recorded whenever an owner's interest groups are loaded for
an auction and the cache is enabled via FledgeUseInterestGroupCache.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.LoadGroupsTime" units="ms"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to start a FLEDGE auction and complete loading
the interest groups that should participate in the auction; only recorded
when at least one interest group was loaded.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.LoadGroupsUseInProgressLoad"
enum="Boolean" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if when loading interest groups for an owner, an existing call to the
database was used. Recorded whenever an owner's interest groups are loaded
for an auction, the cache is enabled via FledgeUseInterestGroupCache, and
there was no cache hit.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.LoadNoGroupsTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to start a FLEDGE auction and complete loading
the interest groups that should participate in the auction; only recorded
when no interest groups were loaded.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumAuctionsPerPage" units="auctions"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of auctions (runAdAuction() calls) per-page, from page load to
unload, reported at unload (if at least 1 auction completed). Not updated
for auctions skipped due to enforcing the auction limit, see
NumAuctionsSkippedDueToAuctionLimit. Also, not updated if runAdAuction()
fails before the auction worklets run.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumAuctionsSkippedDueToAuctionLimit"
units="auctions" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of auctions (runAdAuction() calls) per-page, from page load to
unload, reported at unload (if at least 1 auction completed) that were
skipped due to hitting the auction limit.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumberOfPendingScoreAdTasks"
units="tasks" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of already pending ScoreAdTasks when a new ScoreAdTask is added
to a seller worklet. The new task is not included in this number.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumBidsGeneratedAtOnce" units="bids"
expires_after="2025-03-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of bids produced by a particular generateBid() call that will need
scoring (counting the k-anon re-run as the same call). This includes the
non-k-anon bids, including those produced when splitting a bid into two to
subset component ads.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumInterestGroups" units="groups"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of a user's interest groups taking part in a FLEDGE auction. This
is the number of interest groups matching the auction configuration, not the
number whose scripts are successfully loaded or that make bids. Recorded
after all matching interest groups have been retrieved from storage at the
start of an auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumNegativeInterestGroups"
units="groups" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of a user's negative interest group loaded into a FLEDGE auction.
This is the number of negative interest groups matching the auction
configuration, not the number used for negative targeting. For a
multi-seller auction, this is the total number of negative interest groups
loaded across all component auctions, so that the negative interest groups
of a buyer that participates in multiple component auctions will be counted
multiple times. This is only recorded for auctions that may have additional
bids, i.e. those for which the additionalBids promise was provided on the
auction config. However, it's recorded whether or not additional bids are
eventually provided to the auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumOwnersWithInterestGroups"
units="owners" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of owner origins with interest groups taking part in a FLEDGE
auction. This is not the number of owners listed by the auction's
configuration, but rather only the subset of them that have interest groups
the user currently belongs to. Recorded after all interest groups
participating in an auction have been retrieved from storage at the start of
an auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumOwnersWithoutInterestGroups"
units="owners" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of owner origins listed in an auction configuration that were
excluded from taking part in a FLEDGE auction because they have no eligible
interest groups. This does not count owners that were filtered due to user
settings. For multi-seller auctions, this is the sum of all such excluded
owners across all component auctions. This double-counts owners that
participate in multiple component auctions. Recorded after all interest
groups participating in an auction have been retrieved from storage at the
start of an auction. This is related to the sibling histogram named
"NumOwnersWithInterestGroups".
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.NumSellersWithBidders"
units="sellers" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of sellers participating in a FLEDGE auction with a non-zero
number of bidders, including both the top-level seller and sellers in
component auctions. A bidder is defined as an interest group owned by one of
the owners participating in an auction, or, for the top-level auction, a
component auction with such interest groups. Double-counts sellers that
participate in multiple component auctions. Only recorded if an auction has
at least one interest group participating (could be in the top-level
auction, or in any component auction).
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ParseBaServerResponseDuration"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to decrypt, decompress, and parse a the Response
from a FLEDGE server-based auction (using the Bidding and Auction API). Only
the times for responses that are successful decoded are recorded.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.PercentAuctionsSuccessfulPerPage"
units="%" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of auctions (runAdAuction() calls) per-page that succeed,
from page load to unload, reported at unload (if at least 1 auction
completed), rounded down to the nearest percent. Not updated for auctions
skipped due to enforcing the auction limit, see
NumAuctionsSkippedDueToAuctionLimit. Also, not updated if runAdAuction()
fails before the auction worklets run.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.PercentBidsKAnon" units="%"
expires_after="2025-03-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Percentage of total generated bids that's k-anon eligible for participation
in the real auction (as opposed to non-k-anon requiring one), aggregated
over the entire auction (including components).
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ProcessLaunchTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to launch a process to execute FLEDGE worklets.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ReportResultTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to initialize the context and arguments, run
top-level script, and evaluate reportResult() once.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ReportWinTime" units="ms"
expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to initialize the context and arguments, run
top-level script, and evaluate reportWin() once.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ScoreAdInputWaitTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to download all inputs for scoreAd().
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ScoreAdQueueTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time an ad was queued to be scored in a seller worklet.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ScoreAdSlowestInput"
enum="ScoreAdInput" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Which input to scoreAd() took the longest to download.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.ScoreAdTime" units="ms"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to initialize the context and arguments, run
top-level script, and evaluate scoreAd() once.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.TimeSinceLastAuctionPerPage"
units="ms" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between runAdAuction() calls, collected on a per-page basis,
reported on each auction. Not updated for auctions skipped due to enforcing
the auction limit, see NumAuctionsSkippedDueToAuctionLimit. Also, not
updated if runAdAuction() fails before the auction worklets run.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.TrustedBidderSignalsOriginRelation"
enum="BidderSignalsOriginRelation" expires_after="2025-05-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
At time of generateBid(), records how the trusted signals URL, if any,
related to the script URL.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.Auction.TrustedSellerSignalsCrossOriginPermissionWait"
units="ms" expires_after="2025-05-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Once per worklet, approximately by how much time the fetch of trusted
scoring signals was delayed by waiting for permission headers from the
seller script. This measures time from when the first outgoing request was
queued to when the permission was received, so it may overestimate things by
as much as 10ms, as the request may be held for that long for coalescing.
This is not recorded when the fetch was found to be unauthorized, or when
the signals were same-origin.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Auction.TrustedSellerSignalsOriginRelation"
enum="SellerSignalsOriginRelation" expires_after="2025-05-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
At time of scoreAd(), records how the trusted signals URL, if any, related
to the script URL.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.BaDataConstructionTime2" units="ms"
expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time spent constructing the Bidding and Auction data blob
produced in response to the getInterestGroupAdAuctionData() call to the
Bidding and Auction API. This time includes loading interest groups from the
database, fetching the Bidding and Auction server key (if not cached),
serializing and compressing the interest group data and encryting the
message.
Only the times for blobs that are constructed successfully are recorded.
This includes cases with no interest groups.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.BaDataSize2" units="bytes"
expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The unencrypted size of Bidding and Auction data blob produced in response
to the getInterestGroupAdAuctionData() call to the Bidding and Auction API.
Only the sizes of blobs that are constructed successfully are recorded. This
includes cases with no interest groups.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.EnumNaming.{When}.{Type}"
enum="BooleanDeprecatedJSEnumName" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each time a JavaScript enum of {Type} is provided during {When}, records
whether or not the enum was in the deprecated "camelCase" form.
(The correct form is the "words-separated-by-dashes" form).
Unknown enum values are ignored and not reported.
Reported at each enum usage during {When}.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="When">
<variant name="Renderer" summary="a FLEDGE API call in the renderer"/>
<variant name="Update" summary="an interest group update"/>
</token>
<token key="Type">
<variant name="SellerCapabilities" summary="SellerCapabilities"/>
<variant name="WorkletExecutionMode" summary="WorkletExecutionMode"/>
</token>
</histogram>
<histogram name="Ads.InterestGroup.GetInterestGroupAdAuctionData.TimeToResolve"
units="ms" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to resolve a
navigator.getInterestGroupAdAuctionData request; only recorded if there was
no error in getting the data.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.GetInterestGroupCacheHit" enum="Boolean"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if there is a cache hit when loading one interest group via
InterestGroupCachingStorage::GetInterestGroup. Recorded when
GetInterestGroup is called and the cache is enabled via
FledgeUseInterestGroupCache.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Net.DownloadTime.{Type}" units="ms"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time required to download {Type} requests, reported upon receving a
response.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="Type" variants="InterestGroupRequestType"/>
</histogram>
<histogram name="Ads.InterestGroup.Net.RequestUrlSizeBytes.{Type}"
units="bytes" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of bytes sent for {Type} requests, reported upon each request.
This is just the size of the request URL; it doesn't include the size of the
HTTP headers or the word "GET".
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="Type" variants="InterestGroupRequestType"/>
</histogram>
<histogram name="Ads.InterestGroup.Net.ResponseSizeBytes.{Type}" units="bytes"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of bytes received for {Type} requests, reported upon receving a
response.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="Type" variants="InterestGroupRequestType"/>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.NumAdSlotsPerResponse"
units="ad slots" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of valid adSlot entries per Ad-Auction-Signals response,
reported after each response is processed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.NumParseAndFindCalls"
units="calls" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of times ParseAndFind() is called to find signals for an
adSlot during the lifetime of the page, reported when the page is destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.NumResponsesReceivedPerPage"
units="responses" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of Ad-Auction-Signals responses received during the
lifetime of the page, reported when the page is destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.OneResponseParseTime"
units="ms" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time taken to parse a single JSON response, reported each time a response is
parsed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.ParseAndFindMatchTime"
units="ms" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time required to find a matching directFromSignalsSignalsHeaderAdSlot,
reported upon completion of the search.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.ProcessedBytesPerRound"
units="bytes" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Size in bytes of all the processed JSON responses since the last time the
unprocessed JSON queue was empty, reported each time the queue becomes empty
again.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.QueueDepthAtAdd"
units="entries" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The depth of the unprocessed responses queue (waiting for JSON parsing) in
number of entries, reported each time a new entry is enqueued, immediately
after adding the new entry.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.QueueDepthAtDestruction"
units="entries" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The depth of the unprocessed responses queue (waiting for JSON parsing) in
number of entries, reported when the page is destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.ResponseSizeBytes"
units="bytes" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Size of each received Ad-Auction-Signals response, reported as each response
is received.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.RoundProcessingTime"
units="ms" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time taken to process all the JSON responses in the queue, from when
processing started until the queue is empty, reported each time the queue is
emptied.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.NetHeaderResponse.HeaderDirectFromSellerSignals.SignalsUsedInAuctionBytes"
units="bytes" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Size of the particular adSlot signals passed to an auction, reported each
time such signals are provided to an auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.NetHeaderResponse.StartRequestOutcome"
enum="InterestGroupAdAuctionUrlLoaderInterceptorStartRequestOutcome"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of starting a fetch() request made with the {adAuctionHeaders:
true} option, or creating an iframe tag with the adAuctionHeaders attribute.
If not success, then the request is not made.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ReceivedDeprecatedBiddingSignalsFormat"
enum="Boolean" expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if the trustedBiddingSignals fetched for use in a FLEDGE auction was
received in the deprecated format. Recorded whenever there's a network fetch
for trustedBiddingSignals, and they're successfully decoded.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Round.GroupsUpdated.Cancelled"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if a round update process is cancelled due to time out. This is an
additional metric for Ads.InterestGroup.Round.GroupsUpdated.TotalTime to
help quickly identify cancelled updates.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Round.GroupsUpdated.ResizeOperation"
enum="InterestGroupAdAuctionUpdateResizeOperation"
expires_after="2024-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a resize was required while updating a batch of interest
groups, along with the type of that resize operation.
This metric can reveal the real-world occurrence of resizing batch cases,
which is introduced by the new NIK grouping feature.
Different type of resize operations get reported right before issuing every
batch.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Round.GroupsUpdated.TotalCount"
units="groups" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Keep track of the cumulative count of interest groups per update round. This
record serves as a reference point for analyzing the impact of the new NIK
grouping logic on network load performance. Metric gets reported when each
round ends.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Round.GroupsUpdated.TotalTime" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the total time per update round. This metric is particularly important
as the new NIK grouping logic may necessitate updating interest groups in
new batches, which could lead to the creation of additional network sockets
and could reduce parallelism. In some cases, this might exceed the default
10-minute timeout, resulting in extra cancellations. A significant count of
cancellations or near cancellations with the new feature may indicate
adverse effects on network performance.
Each round time gets calculated and reported when each round ends.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.AdAuctionDataLoadTime"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to load and serialize the request for a Bidding
and Auction Services auction. This includes loading the interest group data
from the database and encoding it. It does not include the time for
encryption.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.EndToEndTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to run a Bidding and Auction Services auction.
This includes all of the time from the call to
`navigator.getInterestGroupAdAuctionData()` to the completion of the
`navigator.runAdAuction()` call. This metric is only recorded if there was a
winning bid.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.EndToEndTimeNoWinner"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to run a Bidding and Auction Services auction.
This includes all of the time from the call to
`navigator.getInterestGroupAdAuctionData()` to the completion of the
`navigator.runAdAuction()` call. This metric is only recorded if there was
*no* winning bid.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.InvalidServerResponseReason"
enum="AuctionInvalidServerResponseReason" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reason that a server response in a Bidding and Auction API server auction
was rejected. Recorded when we reject the server response.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.KeyFetch.Cached"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the key requested for a Bidding and Auction Services auction was
cached and returned immediately. If a fetch request for the key is already
in progress this metric is still recorded with a value of "False".
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.KeyFetch.DBCached"
enum="Boolean" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the key requested for a Bidding and Auction Services auction was
cached in the database. If a fetch request for the key is already in
progress this metric is not logged.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.KeyFetch.NetworkCached"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the fetch for the key requested for a Bidding and Auction Services
auction was served from the Network cache. This metric is only recorded on a
per-fetch level so it will not be recorded if the key is requested while
waiting for an existing fetch for the key to complete.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.KeyFetch.NetworkTime"
units="ms" expires_after="M125">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to perform the network fetch for the key
requested for a Bidding and Auction Services auction. This metric is only
recorded on a per-fetch level so it will not be recorded if the key is
requested while waiting for an existing fetch for the key to complete.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.KeyFetch.TotalTime2"
units="ms" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to fetch and parse the key requested for a
Bidding and Auction Services auction. This metric is only recorded on a
per-fetch level so it will not be recorded if the key is requested while
waiting for an existing fetch for the key to complete.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.Request.APIAllowed"
enum="Boolean" expires_after="M129">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The return value of `IsInterestGroupAPIAllowed()` while processing a call to
`navigator.getInterestGroupAdAuctionData()`. Recorded after checking the
involved origins are HTTPS and before loading data or fetching the key.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.Request.NumGroups"
units="count" expires_after="M129">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of interest groups included in a request constructed using the
Bidding and Auction Services API. Recorded when the request is created.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.ServerAuction.Request.NumIterations"
units="count" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the the number of iterations needed to fit the interest groups for
an owner in the size specified in the config for a request constructed using
the Bidding and Auction Services API. The compression ratio isn't known
ahead of time so we iteratively try successively smaller requests. Recorded
for each interest group owner added to a request. Only recorded if a
request_size is set in the config.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram
name="Ads.InterestGroup.ServerAuction.Request.RelativeCompressedSize"
units="%" expires_after="M129">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The compressed size as a percentage of the uncompressed size when
compressing a request constructed using the Bidding and Auction API.
Recorded when the request is created.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.Update.AuctionExecutionMode"
enum="InterestGroupAdAuctionExecutionMode" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what the interest group's execution mode is after updating the
interest group. In the case of an unrecognized mode, execution mode will
fallback to compatibility mode.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.UpdateIfOlderThan" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The updateIfOlderThanMs value passed via the trusted bidding signals server
response before clamping has been applied. Recorded when the received
updateIfOlderThanMs is processed during an auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.AbortTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to run a {AuctionType} auction that was aborted.
This only happens on frame destruction. Recorded when the frame is
destroyed.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.AuctionWithWinnerTime"
units="ms" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to run a {AuctionType} auction that had a winning
bid. Recorded on auction complete.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.CompletedWithoutWinnerTime"
units="ms" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to run a {AuctionType} auction that completed
successfully without a winner either due to no bidders making a bid, or the
seller script rejecting all bidders. Not recoded when there are no bidders,
or when an auction fails due to the seller worklet failing to load. Recorded
on auction complete.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.NonKAnonWinnerIsKAnon"
enum="Boolean" expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded at the end of a {AuctionType} auction when there is a
non-k-anonymous winner. True when the non-k-anonymous winner is k-anonymous.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.ReportDelay" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time between when a {AuctionType} auction returns and
navigation occurs on the winning render URL. Only recorded for the first
navigation. Not recorded if there was no winner in the auction.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services"/>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.ReportingIdType"
enum="AuctionReportingIdField" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reporting ID type passed to the bidder worklet (after k-anonymity
enforcement). Recorded once for each winning bid, just prior to the call to
the buyer's reportWin() or reportAdditionalBidWin() function.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services"/>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.Result" enum="AuctionResult"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The final result type of running a {AuctionType} auction. Recorded on
auction completion/cancellation.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.SignaledAbortTime" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How much time elapsed between the start of an auction of {AuctionType} and
the time it was signaled to be aborted. This is recorded once per top-level
auction, when it is aborted via an abort signal.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.StateAtAbortTime"
enum="AuctionState" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The state of an auction when it receives an abort signal. Recorded when an
auction receives an abort signal. This metric is recorded for a top-level
auction, not for its component auctions.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.StateAtFailTime"
enum="AuctionState" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The state of an auction when it fails (other than through an abort).
Recorded when the auction fails. This metric is recorded for a top-level
auction, not for its component auctions.
See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
version of the FLEDGE explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="Ads.InterestGroup.{AuctionType}.TimeToResolve" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time it took to resolve a navigator.runAdAuction request; only
recorded when the request is successfully resolved.
See
https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md
for the latest version of the Protected Audience Bidding & Auction
Services explainer.
</summary>
<token key="AuctionType">
<variant name="Auction" summary="FLEDGE"/>
<variant name="ServerAuction" summary="Bidding and Auction Services">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
</variant>
</token>
</histogram>
<histogram name="AnimatedImage.NumOfFramesSkipped" units="count"
expires_after="2023-04-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the frame rate for the image animation can not be reached, frames in the
animation are skipped to catch up to the desired frame. This metric tracks
the number of frames skipped during catch up, and can be used to assess the
smoothness of these animations. It records the number of frames skipped each
time the animation is ticked forward to draw the next frame. In the ideal
case, where the animation can be drawn at the desired rate, 0 frames should
be skipped. Note that skipping of frames can also be triggered if the
animation was intentionally paused (on becoming off-screen, or the tab being
hidden).
Warning: this histogram was expired from 2020-04-24 to 2022-04-29; data may
be missing.
</summary>
</histogram>
<histogram
name="Animation.AnimationWorklet.Dispatcher.AsynchronousMutateDuration"
units="microseconds" expires_after="2021-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes the WorkletMutatorDispatcher to complete an asynchronous
mutation request of animation worklet. The measured time is the total
elapsed time from when a request is queued until the results are received.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Animation.AnimationWorklet.Dispatcher.SynchronousMutateDuration"
units="microseconds" expires_after="2021-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes the WorkletMutatorDispatcher to dispatch to and mutate all
animation worklet mutators synchronously. This includes the time that it
takes each AnimationWorkletGlobalScope to produce its output (which includes
V8 script execution) and also any queuing cost associated with posting
mutation tasks and receiving responses.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="BlueZ.ChipLost2" units="seconds" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records a duration of a Bluetooth adapter
being lost caused by hardware disconnection. This helps us better understand
the Bluetooth controller drop issue in the field.
</summary>
</histogram>
<histogram name="BlueZ.NumberOfExistingAdvertisements" units="advertisements"
expires_after="2023-08-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the number of existing advertisements
when registering for a new advertisement. This helps us better understand
the common amount of advertisments used and the registration failures due to
the limited number of advertisement slots.
</summary>
</histogram>
<histogram name="BlueZ.PerProfile.ConnectionResult"
enum="BlueZResultOfPerProfileConnection" expires_after="2023-06-11">
<!-- Name completed by histogram_suffixes name="BlueZPerProfileResult" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of bluetooth profile connection request to a remote
device. This helps to understand the percentage of successful profile
connections against failures and the causes of failures.
</summary>
</histogram>
<histogram name="BlueZ.PerProfile.ProbingResult"
enum="BlueZResultOfPerProfileProbing" expires_after="2023-06-11">
<!-- Name completed by histogram_suffixes name="BlueZPerProfileResult" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of bluetooth profile probing while pairing with a remote
device. This helps to understand the percentage of successful profile
probing against failures and the causes of failures.
</summary>
</histogram>
<histogram name="BlueZ.ReasonOfDisconnection" enum="BlueZReasonOfDisconnection"
expires_after="2024-03-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the reason of Bluetooth disconnection
between the local device and the remote Bluetooth device. This helps us
better understand the initiator of disconnection request.
</summary>
</histogram>
<histogram name="BlueZ.ResultOfAdvertisementRegistration"
enum="BlueZResultOfAdvertisementRegistration" expires_after="2023-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of advertisement
registration. This helps us better understand the persentage of successful
advertisements against failures and the causes of failures.
</summary>
</histogram>
<histogram name="BlueZ.ResultOfConnection" enum="BlueZResultOfConnection"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of connection requests
to remote devices. This helps us better understand the persentage of
successful connections against failures and the causes of failures.
</summary>
</histogram>
<histogram name="BlueZ.ResultOfPairing" enum="BlueZResultOfPairing"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of pairing with remote
devices. This helps us better understand the persentage of successful
pairing against failures and the causes of failures.
</summary>
</histogram>
<histogram name="BlueZ.TimeLengthOfAdvertisement" units="seconds"
expires_after="2023-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the duration when the local device is
performing Bluetooth advertisment and discoverable as a Bluetooth Low Energy
device by other devices. This helps us better understand the amount of
successful advertisment sessions and the duration.
</summary>
</histogram>
<histogram name="BlueZ.TimeLengthOfDiscoverable" units="seconds"
expires_after="2023-08-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the duration when the local device is
discoverable by other devices as a Bluetooth classic device. This helps us
better understand the amount of requests to expose the local device as a
Bluetooth classic device and the duration.
</summary>
</histogram>
<histogram name="BlueZ.TimeLengthOfDiscovering" units="seconds"
expires_after="2023-08-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the duration for the local device to
perform device discovery. This helps us better understand the amount of
device discovery request and the duration for users to find the target
device.
</summary>
</histogram>
<histogram name="BlueZ.TimeLengthOfPairing" units="seconds"
expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the duration taken to finish a
successful pairing between the local device and a remote Bluetooth device.
This helps us better understand the latency of completing Bluetooth pairing.
</summary>
</histogram>
<histogram name="BlueZ.TimeLengthOfSetupConnection" units="seconds"
expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the duration taken to finish a
successful connection between the local device and a remote Bluetooth
device. This helps us better understand the latency of connecting to a
Bluetooth device.
</summary>
</histogram>
<histogram name="BlueZ.TypeOfDiscovery" enum="BlueZTypeOfDiscovery"
expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the types of device discovery
performed by the local device. This helps us better understand the most
common type of device discovery performed.
</summary>
</histogram>
<histogram name="BlueZ.TypeOfFoundDevice" enum="BlueZTypeOfFoundDevice"
expires_after="2023-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is specific to Chrome OS. Records the types of discovered devices in
terms of Bluetooth classic, Bluetooth low energy and Dual-mode supports.
This helps us better understand the persentage of Bluetooth devices in terms
of type.
</summary>
</histogram>
<histogram name="BootTime.BrowserLaunchedAfterTPMOwn-Start" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from TPMOwn-Start BootTime event until BrowserLaunched BootTime event
during the user login on Chrome OS.
</summary>
</histogram>
<histogram name="BootTime.Chrome" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for the ChromeOS total boot time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from chrome binary exec to login UI ready on Chrome OS. This is
recorded from the platform side after receiving "login-ui-visible"
event on the platform side in the send-boot-metrics.conf script.
Warning: this histogram was expired from M83 to M105; data may be missing.
</summary>
</histogram>
<histogram name="BootTime.Firmware" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for ChromeOS boot time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from power on to kernel start (Chrome OS).
Warning: this histogram was expired from M83 to M105; data may be missing.
</summary>
</histogram>
<histogram name="BootTime.Kernel" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for ChromeOS boot time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from kernel start to system code being called (Chrome OS).
Warning: this histogram was expired from M83 to M105; data may be missing.
</summary>
</histogram>
<histogram name="BootTime.Login2" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for the ChromeOS login. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from the moment sign in authentication is started until the post login
animation finishes. (Chrome OS).
</summary>
</histogram>
<histogram name="BootTime.Login3" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for the ChromeOS login. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS: The time it takes from when sign-in authentication ends to when
the login animation finishes. This marks the end of the login process, as
the user's session should be usable at this point.
This does not replace the BootTime.Login2 histogram.
Warning: this does not include the cryptohome authentication period, unlike
BootTime.Login2.
TODO(b/323098858): deprecate this with Login4, once we have confirmed the
compositor animation waiting time is negligible.
</summary>
</histogram>
<histogram name="BootTime.Login4" units="ms" expires_after="never">
<!-- expires-never: This is going to be a primary metric for the ChromeOS login. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS: The time it takes from when sign-in authentication ends to when
the login finishes. This marks the end of the login process, as the user's
session should be usable at this point.
This is very close to BootTime.Login3, but animation part is not included.
The purpose is to make sure animation waiting part is negligible by
comparing to BootTime.Login3.
Warning: this does not include the cryptohome authentication period, unlike
BootTime.Login2.
TODO(b/323098858): deprecate this with Login3, once we have confirmed the
compositor animation waiting time is negligible.
</summary>
</histogram>
<histogram name="BootTime.OnAuthSuccessAfterLoginStarted" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from the LoginStarted BootTime event until OnAuthSuccess event
received.
</summary>
</histogram>
<histogram name="BootTime.System" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for the ChromeOS total boot time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from system code being called to starting Chrome (Chrome OS).
Warning: this histogram was expired from M83 to M105; data may be missing.
</summary>
</histogram>
<histogram name="BootTime.Total2" units="ms" expires_after="never">
<!-- expires-never: This is a primary metric for the ChromeOS total boot time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from power on to login UI ready on Chrome OS. This is recorded from the
platform side after receiving "login-ui-visible" event on the
platform side in the send-boot-metrics.conf script.
Warning: this histogram was expired from 2022-04-03 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="BootTime.TPMOwn-StartAfterUserProfileGotten" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from the UserProfileGotten BootTime event until TPM ownershp check
starts during the user login on Chrome OS.
</summary>
</histogram>
<histogram name="BootTime.UserProfileGottenAfterAuthSuccess" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from the AuthSuccess BootTime event until user profile loaded during
the user login on Chrome OS.
Usually it's time spent on user profile loading and parsing.
</summary>
</histogram>
<histogram name="BrotliFilter.CompressionPercent" units="%"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>Compressed/Decompressed size ratio.</summary>
</histogram>
<histogram name="BrotliFilter.ErrorCode" enum="BrotliFilterErrorCode"
expires_after="M115">
<owner>[email protected]</owner>
<summary>
Error code observed after failing to decode a Brotli-compressed response
stream from the network. Recorded for each layer of Brotli compression, as
indicated using Content-Encoding header values, part of an HTTP response
where a decoding error occurs.
Warning: this histogram was expired from M85 to M110; data may be missing.
</summary>
</histogram>
<histogram name="BrotliFilter.Status" enum="BrotliFilterDecodingStatus"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
The final state of the BrotliFilter. Recorded during the decoding process as
bytes are consumed from a Brotli-compressed response stream.
Warning: this histogram was expired from M81 to M110; data may be missing.
</summary>
</histogram>
<histogram name="BrotliFilter.UsedMemoryKB" units="KiB"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<summary>
Maximum amount of memory allocated to decode a Brotli-compressed response
stream from the network. Recorded during the process of allocating memory to
decode a Brotli-compressed response stream.
Warning: this histogram was expired from M77 to M110; data may be missing.
</summary>
</histogram>
<histogram name="Cast.Channel.Certificate" enum="CastCertificateStatus"
expires_after="never">
<!-- expires-never: Used for Cast device health monitoring. -->
<owner>[email protected]</owner>
<summary>
Records the result of the Cast certificate verification on the Cast sender.
</summary>
</histogram>
<histogram name="Cast.Channel.LaunchSession.Flags" enum="CastChannelFlag"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records any flags observed on the Cast channel used to launch a Cast
session. A single channel may have multiple flags, and each flag is logged
as a separate count.
</summary>
</histogram>
<histogram name="Cast.Channel.Nonce" enum="CastNonceStatus"
expires_after="never">
<!-- expires-never: Used for Cast device health monitoring. -->
<owner>[email protected]</owner>
<summary>
Records whether the correct nonce challenge was in the Cast receiver's
response.
</summary>
</histogram>
<histogram name="Cast.Channel.Signature" enum="CastSignatureStatus"
expires_after="never">
<!-- expires-never: Used for Cast device health monitoring. -->
<owner>[email protected]</owner>
<summary>
Records whether the signature returned by the Cast receiver is verifiable
with the challenge and device certificate.
</summary>
</histogram>
<histogram name="Cast.Sender.RemotePlayback.InitiationLocation"
enum="RemotePlaybackInitiationLocation" expires_after="2024-09-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the location when users interact with the RemotePlayback API on
Clank. Please note, this metric does not show whether a session is started
or stopped and does not include RemotePlayback sessions initiated through
the Cast SDK.
</summary>
</histogram>
<histogram name="Cast.Sender.VideoEncodeAcceleratorInitializeSuccess"
enum="BooleanSuccess" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates whether initialization of a video encode accelerator for Cast
sender was successful.
Warning: this histogram was expired from 2021-10-17 to 2022-12-15; data may
be missing.
</summary>
</histogram>
<histogram name="CertificateType2" units="units" expires_after="never">
<!-- expires-never: histograms are used to assess policy -->
<!-- https://crbug.com/732640#c5 -->
<owner>[email protected]</owner>
<summary>
Information about the certificate algorithms and sizes in use on the web, to
examine compliance with the CA/Browser Forum requirements and security best
practice. This histogram considers the notBefore as the issuance date, for
purposes of what requirements apply.
</summary>
</histogram>
<histogram name="ChromiumAndroidLinker.RelroAvailableImmediately"
enum="BooleanRelroAvailableImmediately" expires_after="2023-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when RELRO is replaced with a shared memory region, in all
processes consuming RELRO. Indicates whether the shared RELRO was available
synchronously right after the native library was loaded. ModernLinker only.
</summary>
</histogram>
<histogram name="ChromiumAndroidLinker.RelroProvidedSuccessfully"
enum="BooleanSuccess" expires_after="2025-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the native library is loaded by the Chromium linker, and an
attempt to spawn a shared RELRO region is made. Indicates whether the
attempt was a success. If the number of samples from
"ChromiumAndroidLinker.RelroAvailableImmediately" where the
availability was not immediate is large compared to the counts of successful
RELRO spawns, it would indicate potential startup performance improvements
when starting child process(es) during early browser startup phases.
ModernLinker only.
</summary>
</histogram>
<histogram name="ChromiumAndroidLinker.RelroSharingStatus2"
enum="RelroSharingStatus" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when RELRO is replaced with a shared memory region, in all
processes consuming RELRO. Indicates whether the replacement was a success.
ModernLinker only.
See a description of RELRO sharing here:
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/android_native_libraries.md#RELRO-Sharing
Warning: this histogram was expired from 2022-12-04 to 2023-09-07; data may
be missing.
</summary>
</histogram>
<histogram name="ChromiumAndroidLinker.{ProcessType}LoadTime2" units="ms"
expires_after="2022-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time it took to load the native libraries in {ProcessType}.
In order to explain the nature of the uploaded samples for this histogram it
is necessary to define a few core properties of the running processes.
On Android 10 (=Q) a new feature was introduced and became used in Chrome:
App Zygotes. An App Zygote (AZ) is a process pre-created by the system to
allow faster initialization of isolated processes (IP) for a specific app.
When AZ is created it runs the app-specific "preload" function
once, and becomes idle, after that no work can be performed in the AZ other
than getting forked. Whenever an app requests the Android Framework (AF) to
provide an isolated process, the AF notifies the AZ to fork itself into a
new process, which later will be provided to the app. An AZ created for one
app (package) cannot be used for another app.
The purpose of the AZ in Chrome is to load the native library - it avoids
loading the same library in each isolated process separately.
Capabilities of the AZ are very restricted. It runs in the same sandbox
constraints as an isolated process, while also not having the ability to
communicate with any other process on the system. Only after forking from
the AZ the inherited process becomes able to communicate to the rest of
Chrome.
Beyond isolated processes, Chrome can request processes with more
privileges: privileged processes (PP). In this case those processes will be
forked from another zygote. There are several types of those zygotes, we
will refer to them as Other Zygote (OZ) for simplicity. The decisions
whether to start an isolated process through an AZ, and when to start a new
AZ are made dynamically and depends on a few factors.
The suffixes of this histogram, as described below, correspond to distinct
execution scenarios:
Suffix "Browser": the native library is loaded in the main app
process
Suffix "Zygote": OZ forks into AZ, AZ loads the native library, AZ
forks into IP
Suffix "Child": OZ forks into PP, PP loads the native library
Suffix "Child": OZ forks into IP, IP loads the native library
Suffix "Child": OZ forks into AZ, AZ fails to load the native
library, AZ forks into IP, IP loads the native library (this scenario should
happen rarely).
After library loading happens in the AZ, the recorded histogram value (for
simplicity) gets copied to each child process forked from this AZ process
and uploaded "as if" it is a unique sample from this child
process. This leads to a discrepancy in sample counts.
In early 2021-10 it had about 7% extra uploaded samples in
"ChromiumAndroidLinker.ZygoteLoadTime2".
</summary>
<token key="ProcessType">
<variant name="Browser" summary="the browser process"/>
<variant name="Child" summary="a child process"/>
<variant name="Zygote" summary="the App Zygote"/>
</token>
</histogram>
<histogram name="ChromiumAndroidLinker.{ProcessType}ThreadLoadTime" units="ms"
expires_after="2022-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of CPU time (thread time) it took to load the native libraries in
{ProcessType}.
For a more detailed description of each suffix process type suffix (Browser,
Child, Zygote) see description of the ChromiumAndroidLinker.*LoadTime2.
</summary>
<token key="ProcessType">
<variant name="Browser" summary="the browser process"/>
<variant name="Child" summary="a child process"/>
<variant name="Zygote" summary="the App Zygote"/>
</token>
</histogram>
<histogram name="ClientHints.AcceptCHFrame" enum="AcceptCHFrameRestart"
expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted on two related events: First, when an request that is eligable to be
restarted receives an ACCEPT_CH HTTP2/HTTP3 frame via a TLS connection with
the relevent ALPS setting. Next, if that frame causes that request to be
restarted.
</summary>
</histogram>
<histogram name="ClientHints.CriticalCHRestart" enum="CriticalCHRestart"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of requests restarted because of the Critical-CH response header.
</summary>
</histogram>
<histogram name="ClientHints.FetchLatency{OperationType}" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency (in microseconds) to fetch the client hints for a given origin
from the Accept-CH cache for {OperationType}.
</summary>
<token key="OperationType">
<variant name="_OriginTrialCheck"
summary="checking origin trial client hints"/>
<variant name="_PrefRead" summary="PrefService read"/>
<variant name="_PrerenderHost" summary="prerender host"/>
<variant name="_Total"
summary="all subcategories operations: PrefRead, PrerenderHost, and
OriginTrialCheck"/>
</token>
</histogram>
<histogram name="ClientHints.StoreLatency" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency (in milliseconds) to store the client hints for a given origin
in the Accept-CH cache.
</summary>
</histogram>
<histogram name="ClientHints.UpdateEventCount" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of events when the client hints needs to be persisted to the disk by
the browser. Collected while navigation responses are being processed.
</summary>
</histogram>
<histogram name="ClientHints.UpdateSize" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of client hints that need to be persisted to the disk. Recorded by the
renderer. Collected while navigation responses are being processed.
</summary>
</histogram>
<histogram name="ClientHints.Viewport.IsDeviceScaleFactorOne" enum="Boolean"
expires_after="2024-02-20">
<owner>[email protected]</owner>
<summary>
This records whether or not the device scale factor was exactly 1.0 or not
when sending either of the viewport height or viewport width client hint.
There was a bug (see crbug.com/1394231) where the device scale factor was
being applied twice to the viewport values. This histogram can be used to
estimate the impact of that bug.
</summary>
</histogram>
<histogram
name="ComponentUpdater.AndroidComponentLoader.LoadStatus.{Component}"
enum="BooleanSuccess" expires_after="2024-11-28">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<owner>src/components/component_updater/android/OWNERS</owner>
<summary>
Records {Component} component loading success, or the failure reason if the
component loading fails using the EmbeddedComponentLoader. Note that success
here just means that the component has been fetched successfully from the
components provider service. However, this doesn't neccessary mean that the
component will be then loaded successfully in the system by its respective
ComponentLoaderPolicy implementation.
</summary>
<token key="Component">
<variant name="OriginTrials" summary="OriginTrials"/>
<variant name="TrustTokenKeyCommitments"
summary="TrustTokenKeyCommitments"/>
<variant name="WebViewAppsPackageNamesAllowlist"
summary="WebViewAppsPackageNamesAllowlist"/>
<variant name="WebViewEmptyComponent" summary="WebViewEmptyComponent"/>
</token>
</histogram>
<histogram name="ComponentUpdater.Calls" enum="ComponentUpdaterCalls"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/component_updater/OWNERS</owner>
<summary>
The number of times the component updater called UpdateClient::Install or
UpdateClient::Update. These correspond to the number of manual component
update checks performed as a result of a user action, and the number of
automated component update checks. Warning: this histogram was expired from
2022-12-20 to 2023-12-04; data may be missing.
</summary>
</histogram>
<histogram name="ComponentUpdater.InstallResult" enum="ComponentManagerError"
expires_after="2025-08-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/component_updater/OWNERS</owner>
<summary>
Chrome OS only. The installation result of the cros component manager.
</summary>
</histogram>
<histogram name="ComponentUpdater.UpdateCompleteError"
enum="UpdateClientErrors" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/component_updater/OWNERS</owner>
<summary>The result of an install or an update check.</summary>
</histogram>
<histogram name="ComponentUpdater.UpdateCompleteResult" enum="BooleanError"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/component_updater/OWNERS</owner>
<summary>The result of an install or an update check.</summary>
</histogram>
<histogram name="ComponentUpdater.UpdateCompleteTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/component_updater/OWNERS</owner>
<summary>
Time to complete an Install or an Update component update call. Warning:
this histogram was expired from 2022-12-20 to 2023-12-04; data may be
missing.
</summary>
</histogram>
<histogram name="ContextMenu.LensSupportStatus" enum="LensSupportStatus"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the user supports the Lens intent and if not, the reason why.
Recorded only if the feature is enabled when the long-press context menu is
shown for an image.
</summary>
</histogram>
<histogram name="ContextMenu.SelectedOptionAndroid{Type}"
enum="ContextMenuOptionAndroid" expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
{Type}
The option that the user selected from a context menu on Android. This is
logged on Android only; check out ContextMenu.SelectedOptionIOS for iOS, and
ContextMenu.SelectedOptionDesktop for desktop. Note that if a menu is
invoked on mixed content, only one of the submetrics receives the log; read
the code to determine which one.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
<token key="Type" variants="ContextMenuAndroidTypes"/>
</histogram>
<histogram base="true" name="ContextMenu.SelectedOptionDesktop"
enum="ContextMenuOptionDesktop" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The option that the user selected from a context menu on desktop. This is
logged on desktop only; check out ContextMenu.SelectedOptionIOS for iOS, and
ContextMenu.SelectedOptionAndroid for Android. Note that if a menu is
invoked on mixed content, only one of the submetrics receives the log; read
the code to determine which one.
</summary>
</histogram>
<histogram name="ContextMenu.Shown{Type}" enum="BooleanPresent"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
{Type}
Recorded when a context menu is shown, sliced by whether a web contents was
present. (It generally should be; indeed, this code path should not be
followed when it is absent. For instance, invoking a context menu from the
new tab page or from the sad tab page will not cause an emission to this
histogram.) Note that this refers to link context menus, not the
cut-copy-paste context menus that can appear during long presses on text on
a web page or long presses in the omnibox. This is an Android-only metric;
compare with RenderViewContextMenu.Shown and RenderViewContextMenu.Used on
desktop.
</summary>
<token key="Type" variants="ContextMenuAndroidTypes"/>
</histogram>
<histogram name="ContextMenu.TimeToSelectShare" units="ms"
expires_after="2023-02-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long it takes to press on "Share" from the time
context menu is shown. Android only.
</summary>
</histogram>
<histogram name="ContextMenu.ViewsTextServices.Emoji" enum="Boolean"
expires_after="2023-10-08">
<owner>[email protected]</owner>
<summary>
Number of times the emoji item in the views text services context menu is
used.
</summary>
</histogram>
<histogram name="CopylessPaste.CacheHit" enum="CopylessCacheHit"
expires_after="2020-03-01">
<owner>[email protected]</owner>
<summary>
The cache hit status of metadata extraction for AppIndexing.
</summary>
</histogram>
<histogram name="CrashExitCodes.Extension" enum="CrashExitCodes"
expires_after="never">
<!-- expires-never: Critical stability metrics. go/chrome-stability-metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The exit codes for crashed extension processes. Note: Due to
https://crbug.com/805754, the enum labels are off by 1 for M56 and earlier.
</summary>
</histogram>
<histogram name="CrashExitCodes.Renderer" enum="CrashExitCodes"
expires_after="never">
<!-- expires-never: Critical stability metrics. go/chrome-stability-metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The exit codes for crashed renderer processes. Note: Due to
https://crbug.com/805754, the enum labels are off by 1 for M56 and earlier.
</summary>
</histogram>
<histogram name="Crashpad.AnrUpload.Skipped" enum="AnrSkippedReason"
expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The reason that an ANR upload was skipped.</summary>
</histogram>
<histogram name="Crashpad.CrashReportPending" enum="CrashpadReportPending"
expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason that a crash report entered the upload pending state.
</summary>
</histogram>
<histogram name="Crashpad.CrashReportSize" units="bytes" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The size of a crash report minidump on disk when captured.</summary>
</histogram>
<histogram name="Crashpad.CrashUpload.AttemptSuccessful"
enum="CrashpadUploadAttemptStatus" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Logs whether a crash uploaded succeeded or failed.</summary>
</histogram>
<histogram name="Crashpad.CrashUpload.ErrorCode" units="int"
expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The error codes from [NSURLConnection
sendSynchronousRequest:returningResponse:error:]
</summary>
</histogram>
<histogram name="Crashpad.CrashUpload.Skipped"
enum="CrashpadUploadSkippedReason" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The reason that a crash report upload was skipped.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCaptureResult"
enum="CrashpadExceptionCaptureResult" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The outcome of execution of the Crashpad exception handler.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCode.Mac" enum="CrashpadMacExceptionCodes"
expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The exception code encountered in a crash on Mac OS X.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCode.Win" enum="CrashpadWinExceptionCodes"
expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The exception code encountered in a crash on Windows.</summary>
</histogram>
<histogram name="Crashpad.ExceptionEncountered"
enum="CrashpadExceptionProcessingState" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A count of the number of exceptions handled by Crashpad with two buckets for
starting and finishing.
</summary>
</histogram>
<histogram name="Crashpad.HandlerCrash.ExceptionCode.Mac"
enum="CrashpadMacExceptionCodes" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The exception code encountered for a crash of the crash handler process on
Mac OS X.
</summary>
</histogram>
<histogram name="Crashpad.HandlerCrash.ExceptionCode.Win"
enum="CrashpadWinExceptionCodes" expires_after="never">
<!-- expires-never: Crashpad metrics are continually needed to diagnose issues found in the field. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The exception code encountered for a crash of the crash handler process on
Windows.
</summary>
</histogram>
<histogram name="Crashpad.HandlerLifetimeMilestone"
enum="CrashpadLifetimeMilestone" expires_after="M90">
<expired_intentionally>
Kept as a diagnostic metric.
</expired_intentionally>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Handler start/crash/exit events.</summary>
</histogram>
<histogram name="Crashpad.IntermediateDump.Reader.InvalidKeySize"
enum="CrashpadIntermediateDumpKey" expires_after="2025-02-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records key id when id has an invalid sizein an intermediate dump.
</summary>
</histogram>
<histogram name="Crashpad.IntermediateDump.Reader.MissingKey"
enum="CrashpadIntermediateDumpKey" expires_after="2025-02-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records key id when id is missing in an intermediate dump.</summary>
</histogram>
<histogram name="DefaultBrowser.AppMenu.DefaultChipShown" enum="BooleanShown"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the default browser app menu chip has been shown when it is eligible
to be shown. This is logged every time the ToolbarView renders the app menu
and the default browser prompt is eligible to be shown. This is a proxy for
how often the default chip gets pre-empted. This is emitted each time the
type and severity of the app menu is updated.
</summary>
</histogram>
<histogram name="DefaultBrowser.AppMenu.TimesShownBeforeAccept" units="count"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Times the default browser app menu chip has been shown before the user
accepted the prompt. This is emitted each time a user accepts the prompt by
clicking the chip and then the associated menu item.
</summary>
</histogram>
<histogram name="DefaultBrowser.AppMenu.TimeToSetDefault" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time duration between when the prompt was shown and when it was accepted.
Only logged when the prompt is accepted.
</summary>
</histogram>
<histogram name="DefaultBrowser.InfoBar.TimesShownBeforeAccept" units="count"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Times the default browser info bar has been shown before the user accepted
the prompt.
</summary>
</histogram>
<histogram name="DefaultBrowser.InfoBar.UserInteraction"
enum="DefaultBrowserInfoBarUserInteraction" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Possible user interactions with the default browser info bar.
</summary>
</histogram>
<histogram name="DefaultBrowser.SetDefaultResult2" enum="DefaultWebClientState"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
The outcome of an attempt to set Chrome as the user's default browser.
</summary>
</histogram>
<histogram name="DefaultBrowser.State" enum="DefaultBrowserState"
expires_after="never">
<!-- expires-never: Used to keep track of desktop browser ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Chrome was the default browser when it started up.
Only logged correctly on Windows and Mac. Logged incorrectly on other
platforms. On Linux, this histogram is no longer logged as of 2021/10/18 due
to browser test hangs. See crbug.com/1216328.
For ChromeOS, no histogram is necessary because Chrome is always the default
browser.
For Android, see Mobile.DefaultBrowser.State.
For iOS, in the future Chrome will be allowed to be the default browser. How
that will be logged is to be decided at the time of writing this
description.
</summary>
</histogram>
<histogram name="DemoMode.ActiveApp" enum="DemoModeApp"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The currently active app or window. Sampled during demo sessions and
reported while the user remains active.
</summary>
</histogram>
<histogram name="DemoMode.AppLaunched" enum="DemoModeApp"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records apps that have been launched by a user using the device during Demo
mode. The sample is recorded when each app is launched. For any given app
id, the metric is recorded only once per Demo Session.
</summary>
</histogram>
<histogram name="DemoMode.AppLaunchSource" enum="DemoModeAppLaunchSource"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The source of app launches in demo mode, either the shelf, the app list, the
demo mode app, or the search result in the app list.
</summary>
</histogram>
<histogram name="DemoMode.AttractLoop.Timestamp" units="ms"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The timestamp (i.e. milliseconds from the beginning of the Attract Loop
video) at which the user broke the Demo Mode Attract Loop.
</summary>
</histogram>
<histogram name="DemoMode.DwellTime" units="seconds" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration the user spent interacting with the demo session, measured from
the first user activity to the last user activity. This metric rounds the
duration to the nearest second and uses exponential bucketing capped at 1
hour. The value would be 0 when there is only one user activity in a demo
session, i.e. the first user activity = the last user activity.
</summary>
</histogram>
<histogram name="DemoMode.GMSCoreDialogShown" enum="Boolean"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a window associated with GMSCore has been created during the
demo session.
</summary>
</histogram>
<!-- Note: DemoMode.Highlights.* metrics are recorded via runtime-downloaded
content that is not checked into Chromium. Please do not delete this code,
even if it looks like there's no production references in Chromium, without
first consulting the Demo Mode team. -->
<histogram
name="DemoMode.Highlights.DetailsPageStayDuration.{HighlightsDetailsPageName}"
units="ms" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration a user spent on a given details page of the Highlights App.
Only is recorded for Highlights App versions with the UI concept of a
"details" page.
</summary>
<token key="HighlightsDetailsPageName" variants="HighlightsDetailsPageName"/>
</histogram>
<histogram name="DemoMode.Highlights.Error" enum="DemoModeHighlightsError"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Unexpected Demo Mode Highlight app error. The metrics will be emitted when
encounting an error.
</summary>
</histogram>
<histogram name="DemoMode.Highlights.FirstInteraction"
enum="DemoModeHighlightsAction" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The first interaction (button clicks) after entering the Highlights app. The
metric will be emitted once the user clicks on a button in Hightlights app,
e.g. pillar page button or the home button on the home page.
</summary>
</histogram>
<histogram name="DemoMode.Highlights.PageStayDuration.{HighlightsPageName}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time duration a user stays in each page of the Highlights app, e.g. the
home page, each pillar page. The metric will be emitted when the user enters
another page or exits the Highlights app.
</summary>
<token key="HighlightsPageName" variants="HighlightsPageName"/>
</histogram>
<histogram name="DemoMode.IdleLogoutWarningEvent"
enum="DemoModeIdleLogoutWarningEvent" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether the idle logout warning was canceled or proceeded to logout.
Note: the count of "shown" includes both cases, so the count of
"shown and proceeded" is equal to "shown" minus
"canceled".
</summary>
</histogram>
<histogram name="DemoMode.ResourcesRemoval.Reason"
enum="DemoModeResourcesRemovalReason" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the reason for removal of pre-install demo resources. To support
offline demo mode, factory Chrome OS devices will have a set of offline
enabled demo mode apps pre-installed. These resources are removed once they
are not needed anymore.
</summary>
</histogram>
<histogram name="DemoMode.ResourcesRemoval.Result"
enum="DemoModeResourcesRemovalResult" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the result of requests to remove pre-installed demo resources. To
support offline demo mode, factory Chrome OS devices will have a set of
offline enabled demo mode apps pre-installed. These resources are removed
once they are not needed anymore. This will record only requests that
attempted deleting pre-installed resources from disk. Requests that fail
early will be ignored. For example, a request will fail early if the device
is in demo mode, or the resources have already been removed.
</summary>
</histogram>
<histogram name="DemoMode.SessionLength" units="minutes"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A demo session starts when a user signs in using the policy-configured
public account. It stops when the user signs out, either manually or after
an idle timeout. Session length is the duration between the start and stop
events. It is recorded during signing out and reported on the next chrome
run. This metric tracks the recorded session length rounded down to the
nearest minute and is capped at 2 hours.
</summary>
</histogram>
<histogram name="DemoMode.Setup.ComponentInitialLoadingResult"
enum="DemoModeSetupComponentLoadingResult" expires_after="2025-08-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records the result of each component initial loading during the demo
mode setup process. This setup process will only proceed if both the app and
the resources components loading succeeds.
</summary>
</histogram>
<histogram name="DemoMode.Setup.ComponentLoadingRetryResult"
enum="DemoModeSetupComponentLoadingResult" expires_after="2025-08-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records the result of each component loading retry during the demo mode
setup process. The retry is manually initiated after the setup process has
encountered an error during the loading screen and been required to retry
setup. This setup process will only proceed if both the app and the
resources components loading succeeds.
</summary>
</histogram>
<histogram name="DemoMode.Setup.DownloadDuration" units="ms"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records the time taken to download the demo mode resources when demo
mode is setup for the first time.
</summary>
</histogram>
<histogram name="DemoMode.Setup.EnrollDuration" units="ms"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records the time taken to enterprise-enroll the device when demo mode
is setup for the first time.
</summary>
</histogram>
<histogram name="DemoMode.Setup.Error" enum="DemoModeSetupError"
expires_after="2025-08-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The failure reason of the demo mode setup process error. It is recorded when
there is a failure during the demo mode setup process (both the enrollment
and the component download and install).
</summary>
</histogram>
<histogram name="DemoMode.Setup.LoadingDuration" units="ms"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When demo mode is setup for the first time, it must download the demo mode
resources and enterprise-enroll the device. This records the time taken for
these two steps to complete. (See DemoMode.Setup.DownloadDuration and
DemoMode.Setup.EnrollDuration)
</summary>
</histogram>
<histogram name="DemoMode.Setup.NumRetries" units="units"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of times an operator has encountered an error during the
loading screen and been required to retry setup. This is only recorded after
setup completes successfully.
</summary>
</histogram>
<histogram name="DemoMode.UniqueAppsLaunched" units="units"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many unique apps have been launched by a user using the device
during Demo mode. The sample is recorded when the DemoMode session closes.
</summary>
</histogram>
<histogram name="DemoMode.UserClicksAndPresses" units="clicks"
expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many times the user clicks mouse and presses screen in the demo
session. During one demo session, if a mouse click or screen press happens,
increment this metric by one.
</summary>
</histogram>
<histogram name="DirectSockets.PermissionDeniedFailures"
enum="DirectSocketPermissionFailureType" expires_after="2024-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record how often each permission check (e.g. permissions policy, transient
activation, user dialog, hostname resolving to non-public address, rate
limiting, CORS, enterprise policy) cause Permission Denied failures.
Recorded when the permission is denied.
</summary>
</histogram>
<histogram name="DirectSockets.TCPNetworkFailures" enum="NetErrorCodes"
expires_after="2024-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How often tcp socket opening finishes with a network failure.
</summary>
</histogram>
<histogram name="DirectSockets.TCPServerNetworkFailures" enum="NetErrorCodes"
expires_after="2024-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How often tcp server socket opening finishes with a network failure.
</summary>
</histogram>
<histogram name="DirectSockets.UDPNetworkFailures" enum="NetErrorCodes"
expires_after="2024-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How often udp socket opening finishes with a network failure.
</summary>
</histogram>
<histogram name="DisplayManager.InternalDisplayZoomPercentage" units="%"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The zoom percentage that the user has set on the internal display and is
actively using. This is emitted when the zoom factor has been updated in
display manager and has not been changed for a while.
</summary>
</histogram>
<histogram name="DisplayManager.MirroringImplementation"
enum="DisplayMirroringImplementation" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The way in which mirroring is implemented, either in hardware or software.
This is emitted once when mirroring is enabled through API call, or the
display configuration changes ( e.g. adding or removing a display) when
mirror mode is on.
</summary>
</histogram>
<histogram name="DisplayManager.MirrorModeTypes" enum="DisplayMirrorModeTypes"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The types of mirror mode in which the displays connected to the device are
in. This is emitted once when the normal or mixed mirror mode is enabled
through API call, or the display configuration changes ( e.g. adding or
removing a display) when mirror mode is on.
Warning: this histogram was expired from 2023-04-23 to 2024-11-16; data may
be missing.
</summary>
</histogram>
<histogram name="DisplayManager.MultiDisplayMode" enum="MultiDisplayModes"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The mode in which the connected displays to the device are in. This is
emitted once when displays are added or removed, or when the user changes
the mode by e.g. enabling mirror or unified modes.
</summary>
</histogram>
<histogram name="DisplayManager.UnifiedDesktopDisplayCountRange"
enum="MultiDisplayModeDisplayCountRanges" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of displays connected to the device when Unified Desktop mode is
on. This is emitted when Unified Desktop mode is turned on, or the displays
are added or removed while in Unified Mode.
</summary>
</histogram>
<histogram name="DisplayManager.UpdateDisplayConfigurationTask.Success"
enum="BooleanSuccess" expires_after="2025-04-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not the display configuration was successfully updated.
Emitted when the update-display-configuration task finishes, successfully or
not.
Warning: this histogram was expired from M102 to M117; data may be missing.
</summary>
</histogram>
<histogram name="Document.BeforeUnloadDialog" enum="BeforeUnloadDialogResult"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records result of invoking beforeunload handler, that determines whether to
show the dialog.
Warning: this histogram was expired from M77 to M108; data may be missing.
</summary>
</histogram>
<histogram name="DocumentEventTiming.BeforeUnloadDialogDuration.ByNavigation"
units="ms" expires_after="2023-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Milliseconds spent in beforeunload dialog. Does not include time to process
beforeunload event in JavaScript. Recorded immediately after closing dialog,
upon user confirmation to navigate away from the page.
Warning: this histogram was expired from 2020-09-05 to M108; data may be
missing.
</summary>
</histogram>
<histogram name="DocumentScan.ScanFailed" enum="DocumentScanSaneBackend"
expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS document scan metric that tracks which SANE backend (effectively a
scanner driver) was used when a scan failed.
</summary>
</histogram>
<histogram name="DocumentScan.ScanFailureProgress" enum="ScanFailureProgress"
expires_after="2023-12-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS document scan metric that tracks the stage at which the scan
failed.
</summary>
</histogram>
<histogram name="DocumentScan.ScanFailureReason" enum="ScanJobFailureReason"
expires_after="2023-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS document scan metric that tracks the reason of a scan failure.
</summary>
</histogram>
<histogram name="DocumentScan.ScanRequested" enum="DocumentScanSaneBackend"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS document scan metric that tracks which SANE backend (effectively a
scanner driver) that a user requested to use for a scan.
</summary>
</histogram>
<histogram name="DocumentScan.ScanSucceeded" enum="DocumentScanSaneBackend"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome OS document scan metric that tracks which SANE backend (effectively a
scanner driver) was used when a scan succeeded.
</summary>
</histogram>
<histogram name="Downgrade.RestoreSnapshot.Result"
enum="SnapshotOperationResult" expires_after="never">
<!-- expires-never: To monitor snapshot restoration results. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates whether or not restoring a snapshot of the user data dir succeeded
or failed.
</summary>
</histogram>
<histogram name="Downgrade.TakeSnapshot.ItemFailure" enum="SnapshotItemId"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates the id of an item that failed to be copied when taking a user data
snapshot. The metrics does not cover the data from 12/12/2021 to 03/29/2022.
</summary>
</histogram>
<histogram name="Drive.PushNotificationInitiallyEnabled" enum="BooleanEnabled"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/ui/file_manager/OWNERS</owner>
<summary>
Tracks whether the push notification is initially enabled for Drive.
Recorded when the first notification is processed. Notification is emulated
by polling if the push notication is disabled.
</summary>
</histogram>
<histogram name="Drive.PushNotificationRegistered" enum="BooleanRegistered"
expires_after="M138">
<owner>[email protected]</owner>
<owner>src/ui/file_manager/OWNERS</owner>
<summary>
Tracks whether the push notification request is registered correctly for
Drive. Recorded when the push notification manager is initialized.
</summary>
</histogram>
<histogram name="DrmUtil.CreateDisplaySnapshot.BitsPerChannel" units="bits"
expires_after="2024-05-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of bits per channel described by a parsed EDID blob. This UMA is
recorded whenever the color space is extracted from an EDID blob. Warning:
this histogram was expired from 2022-01-03 to 2023-05-17; data may be
missing.
</summary>
</histogram>
<histogram name="DrmUtil.CreateDisplaySnapshot.HasEdidBlob" enum="Boolean"
expires_after="2024-05-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether an EDID blob was detected. This UMA is recorded whenever we attempt
to parse the EDID from a display. Warning: this histogram was expired from
2022-01-03 to 2023-05-17; data may be missing.
</summary>
</histogram>
<histogram name="DrmUtil.CreateDisplaySnapshot.IsHDR" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a EDID blob contained an HDR transfer function (e.g. SMPT SE2084 or
HLG). This UMA is recorded whenever the color space is extracted from an
EDID blob. Warning: this histogram was expired from 2022-01-03 to
2023-05-17; data may be missing.
</summary>
</histogram>
<histogram name="DrmUtil.GetColorSpaceFromEdid.ChecksOutcome"
enum="EdidColorSpaceChecksOutcome" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When attempting to get the color space from an EDID blob, whether the sanity
checks passed (and if not, which check failed). This UMA is recorded
whenever the color space is extracted from an EDID blob.
Expired in January 2022, and revived in June 2023 (M117). Data collected
between those dates may be incomplete.
</summary>
</histogram>
<histogram name="Eche.AppListUpdate.Latency" units="ms"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric tracks the time it takes from the phone becoming connected to
the Chromebook and sending the PhoneStatusSnapshot proto until the phone
sends over the entire apps list via the AppListUpdate proto. Emitted after
the app stream launcher loads the app list.
</summary>
</histogram>
<histogram name="Eche.AppStream.LaunchAttempt" enum="AppStreamLaunchEntryPoint"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric logs where the Eche app was launched from. The metric is emmited
when the eche app is launched.
</summary>
</histogram>
<histogram name="Eche.Connection.Duration" units="ms"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of time the phone is in the state connected to eche signaling
service, and becomes disconnected.
</summary>
</histogram>
<histogram name="Eche.Connection.Result" enum="BooleanSuccess"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures Eche connection success rate. This is recorded at the end of each
connection attempt whether it fails or succeeds and the failure bucket is
broken down to more specific segments in
Eche.Connection.Result.FailureReason
</summary>
</histogram>
<histogram name="Eche.Connection.Result.FailureReason"
enum="SecureChannelConnectionAttemptFailureReason"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason for which the connection attempt to the phone has failed. This is
a breakdown of the failure bucket of Eche.Connection.Result and is recorded
at the time a connection attempt fails.
</summary>
</histogram>
<histogram name="Eche.Connectivity.Latency" units="ms"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of time the phone is in the state connecting to eche signaling
service, and becomes connected.
</summary>
</histogram>
<histogram name="Eche.MultiDeviceFeatureState" enum="MultiDevice_FeatureState"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates the feature state of the Exo feature. This metric is emitted to at
the creation of the user session (when the user logs in), when any
multi-device feature state changes, and every 30 minutes.
</summary>
</histogram>
<histogram name="Eche.NetworkCheck.FailureReason" enum="ConnectionFailReason"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Failure reason emitted by EcheSignaler on background connect attempt
failures.
</summary>
</histogram>
<histogram name="Eche.NetworkCheck.Result" enum="BooleanSuccess"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted on success or failure of a background network connection attempt.
Triggered when Phone Hub first connects, and on each bubble opened event.
</summary>
</histogram>
<histogram name="Eche.Onboarding.UserAction" enum="OnboardingUserActionMetric"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged the user action in the Eche onboarding. Recorded when users
start Eche onboarding and grant the permission that onboarding needs.
</summary>
</histogram>
<histogram name="Eche.StreamEvent" enum="StreamState"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged in the Eche stream state. Records when a stream is started and
initialized after the user interacts with a PhoneHub notification or the
recent app by clicking it to launch the app streaming window.
</summary>
</histogram>
<histogram name="Eche.StreamEvent.ConnectionFail" enum="ConnectionFailReason"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged the root cause of Eche connection failure. Records when
signaling timeout on EcheSignaler or the tablet mode check on EcheTray.
</summary>
</histogram>
<histogram name="Eche.StreamEvent.Duration.FromInitializeToClose" units="ms"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from when the stream is initializing to when the
stream is closed before the stream doesn't started. Fires during the process
of closing Eche streaming when the stream doesn't start. It is not sent on a
successful connection attempt.
</summary>
</histogram>
<histogram name="Eche.StreamEvent.FromLauncher" enum="StreamState"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged in the Eche stream state. Records when a stream is initialized
and started after the user clicks on an app from full app list (Launcher) to
launch the app streaming window.
</summary>
</histogram>
<histogram name="Eche.StreamEvent.FromNotification" enum="StreamState"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged in the Eche stream state. Records when a stream is initialized
and started after the user clicks on a PhoneHub notification to launch the
app streaming window.
</summary>
</histogram>
<histogram
name="Eche.StreamEvent.FromNotification.PreviousNetworkCheckFailed.ConnectionFail"
enum="ConnectionFailReason" expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged the root cause of Eche connection failure when triggered from
a notification and failed in last network connection check. Records when
signaling timeout on EcheSignaler or the tablet mode check on EcheTray.
Separate from Eche.StreamEvent.ConnectionFail.
</summary>
</histogram>
<histogram
name="Eche.StreamEvent.FromNotification.PreviousNetworkCheckFailed.Result"
enum="StreamState" expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the success rate of app streaming when triggered from notificaiton
and failed in last network connection check. Recorded when the stream is
initialized in EcheTray or when it starts in EcheStreamStatusChangeHandler.
Separate from Eche.StreamEvent.
</summary>
</histogram>
<histogram name="Eche.StreamEvent.FromRecentApps" enum="StreamState"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events logged in the Eche stream state. Records when a stream is initialized
and started after the user clicks on an app from recent app list to launch
the app streaming window.
</summary>
</histogram>
<histogram name="Eche.UniqueAppsStreamed.PerDay" units="count"
expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric tracks the number of unique apps the user attempts to launch an
app stream. Emitted when the app stream is launched and the app has not been
launched in the current session.
</summary>
</histogram>
<histogram name="ExploreSites.CategoryClick" enum="ExploreSitesCategories"
expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times the user clicked on a site in a category with the
selected type on the Explore Sites page.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
</histogram>
<histogram name="ExploreSites.MonthlyHostCount" units="hosts"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<summary>
Number of unique hosts visited by the user during the last 30 days. Reported
at most once a week for all users on Android only, with a 5 second delay
after startup. This is different from History.MonthlyHostCount which is
reported for a percentage of startups, to avoid bias toward more active
users.
</summary>
</histogram>
<histogram name="Favicons.LargeIconService.DownloadedSize" units="pixels"
expires_after="never">
<!-- expires-never: This metric is needed for informing future UX decisions on
mobile (how to display favicons / scrabble tiles). -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size (concretely the width) in pixel of the favicon downloaded
from Google favicon server (size 0 denotes that download has failed).
</summary>
</histogram>
<histogram name="Favicons.LargeIconService.FallbackSize" units="pixels"
expires_after="never">
<!-- expires-never: This metric is needed for informing future UX decisions on
mobile (how to display favicons / scrabble tiles). -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size (concretely the width) in pixel of the favicon that is used
to generate a fallback style in the case when large enough favicon is not
available (size 0 denotes that no favicon is available at all).
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.CanContactUser"
enum="FeedbackAppContactUserConsentType" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether users allow Google to contact them about the issues. Fires
when feedback report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.DescriptionLength" units="characters"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record the length of description in the textbox. Fires when the feedback
report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.Duration.GetBigFeedbackLogs" units="ms"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from the start of fetching Debugd logs via the
GetBigFeedbackLogs dbus method to when the data has been retrieved. Fires
during the process of sending a feedback report on Chrome OS, or when the
user previews the system logs from the feedback app on Chrome OS.
GetBigFeedbackLogs is the dbus method used.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.ExitPath" enum="FeedbackAppExitPath"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a summary of the actions the user took before exiting the app. Fires
when user closes the feedback app, case includes: User quits on search page
after clicking some help contents; User quits on search page without
clicking some help contents; User closes on search page because no help
content is shown(Offline or Search is down); User closes on share data page
after clicking help content; User closes on share data page without clicking
help content; User submits feedback after clicking the help content; User
submits feedback without clicking the help content.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.EmptyCount"
units="logs" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of logs with empty data retrieved from debugd for
feedback reports. Fires during the process of sending a feedback report on
Chrome OS, or when the user previews the system logs from the feedback app
on Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.NotAvailableCount"
units="logs" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of logs with not available data retrieved from debugd for
feedback reports. Fires during the process of sending a feedback report on
Chrome OS, or when the user previews the system logs from the feedback app
on Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.OtherCount"
units="logs" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of logs with data not empty or not available retrieved
from debugd for feedback reports. Fires during the process of sending a
feedback report on Chrome OS, or when the user previews the system logs from
the feedback app on Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.Success"
enum="Boolean" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the success status of fetching the feedback logs via debus method
GetBigFeedbackLogs. Fires during the process of sending a feedback report on
Chrome OS, or when the user previews the system logs from the feedback app
on Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.GetFeedbackLogsV2.DBusResult"
enum="GetFeedbackLogsV2DbusResult" expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the different results of fetching the feedback logs via debus method
GetFeedbackLogsV2. Fires during the process of sending a feedback report on
Chrome OS, or when the user previews the system logs from the feedback app
on Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.HelpContentOutcome"
enum="FeedbackAppHelpContentOutcome" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record the outcome of checking help contents. Fires when user leaves the
search page by clicking continue or by clicking x on top right to close the
app.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.HelpContentSearchResultCount"
units="numbers" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of help content results returned in each search. Fires
when user clicks and views the help content on search page.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.IncludedEmail" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the email is included when the feedback report is submitted.
Fires when user's feedback report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.IncludedFile" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether attached file is included when the feedback report is
submitted. Fires when user's feedback report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.IncludedScreenshot" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the screenshot is included when the feedback report is
submitted. Fires when a user's feedback report is successfully sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.IncludedSystemInfo" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the system and information is included when the feedback
report is submitted. Fires when a user's feedback report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.IncludedUrl" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the page url is included when the feedback report is
submitted. Fires when user's feedback report is being sent.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.Openduration" units="ms"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration that the Feedback App is open. Emitted when the app is
closed.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.PostSubmitAction"
enum="FeedbackAppPostSubmitAction" expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the first action that the users take after sending feedback. Fires
on the first action taken on post submit page after the user has sent the
feedback.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.TimeOnPage.{FeedbackAppPage}" units="s"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration that the Feedback App is open on {FeedbackAppPage}
page. Fires when the user closes the app or starts new report after feedback
report has been sent.
</summary>
<token key="FeedbackAppPage">
<variant name="ConfirmationPage"/>
<variant name="SearchPage"/>
<variant name="ShareDataPage"/>
</token>
</histogram>
<histogram name="Feedback.ChromeOSApp.ViewedHelpContent" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record number of times the user viewed the help content. Fires when user
clicks help content on search page.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.ViewedImage" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record number of times the user viewed the attached image. Fires when user
clicks the thumbnail and views the larger image.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.ViewedMetrics" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record number of times the user viewed the metrics. Fires when user clicks
metrics link and views metrics.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.ViewedScreenshot" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record number of times the user viewed the screenshot. Fires when user
clicks the thumbnail on and views the larger screenshot.
</summary>
</histogram>
<histogram name="Feedback.ChromeOSApp.ViewedSystemAndAppInfo" enum="Boolean"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record number of times the user viewed the system and app information. Fires
when system and app info link is clicked.
</summary>
</histogram>
<histogram name="Feedback.Duration.FetchSystemInformation" units="ms"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from the start of fetching system information to
when the data has been retrieved. Fires during the process of sending a
feedback report on Chrome (Desktop + Android) or Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.Duration.FormOpenToSubmit" units="ms"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from when the feedback app window is opened to when
the backend receives the send report request submitted by a user. Fires
during the process of sending a feedback report on Chrome (Desktop +
Android) or Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.Duration.FormSubmitToConfirmation" units="ms"
expires_after="2022-08-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from when the backend receives the send report
request submitted by a user to when it starts to send confirmation back to
the frontend. Fires during the process of sending a feedback report on
Chrome or Chrome OS.
</summary>
</histogram>
<histogram name="Feedback.Duration.FormSubmitToSendQueue" units="ms"
expires_after="2025-07-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the elapsed time from when the backend receives the send report
request submitted by a user and the report has been added to the send queue.
Fires during the process of sending a feedback report on Chrome or Chrome
OS.
</summary>
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.BubbleUsage"
enum="HappinessTrackingSurveyDesktopBubbleUsage" expires_after="M82">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how user interacts with Happiness Tracking Surveys (HaTS) bubble
prompt which is shown for a subset of users. Each time when the bubble is
shown, there should be one and only one enum type is recorded.
</summary>
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.ShouldShowSurveyReason"
enum="HappinessTrackingSurveyShouldShowSurveyReasons"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the first reason why the Happiness Tracking Surveys (HaTS) bubble
was or was not shown. While the request to show may not meet multiple
criteria, the first criterion is reported here.
</summary>
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.SurveyCompleted"
enum="Boolean" expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded whenever a Happiness Tracking Survey (HaTS) survey is completed.
Only recorded the survey is fully completed.
</summary>
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.{SurveyName}"
enum="HappinessTrackingSurvey" expires_after="2025-08-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the responses for HaTS questions. Emitted during the lifecycle of a
survey and when a user answers any question on a HaTS survey.
</summary>
<token key="SurveyName">
<variant name="Sentiment"/>
</token>
</histogram>
<histogram name="Feedback.RedactionTool" enum="PIIType"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many times PIIs are redacted by the Client side log redaction
tool.
</summary>
</histogram>
<histogram name="Feedback.RedactionTool.Caller" enum="RedactionToolCaller"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records which caller invoked the redaction tool. This helps us determine
where the most redactions are happening and so places emitting most PII in
logs.
</summary>
</histogram>
<histogram name="Feedback.RedactionTool.CreditCardMatch"
enum="CreditCardDetection" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The redaction tool can be used to redact potential PII on the client side
before logs and other data is sent to servers. This histogram is recorded
when attempting to verify if a matched string is a credit card. Since we
don't have guaranteed context for credit cards in our logs, unlike e.g.
shill log format, we have to do apply some heuristic. There are several
steps where the validation could detect a false positive and we want to
measure how effective these mechanisms are.
</summary>
</histogram>
<histogram name="Feedback.RedactionTool.TimeSpentRedacting" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many milliseconds elapsed while redacting the input text by the
redaction_tool. This metric is recorded after each redaction (JS error or
feedback report). This metric should be a rough control so we aren't running
a very long time in the background after a report.
</summary>
</histogram>
<histogram name="Feedback.RedactionTool.TimeSpentRedactingCrash" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many milliseconds elapsed while redacting the logs of a crash
inside ChromeOS's crash_reporter. This metric is recorded for each crash
that has text logs that need redaction, at the time the crash happens. This
metric should be a rough control so we aren't running a very long time after
a crash and the user has to wait for the frozen screen to disappear.
</summary>
</histogram>
<histogram name="Feedback.ReportSending.Online" enum="Boolean"
expires_after="2025-01-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the user is online when the feedback report was submitted.
</summary>
</histogram>
<histogram name="Feedback.ReportSending.Result"
enum="FeedbackReportSendingResult" expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the feedback report sending states to help track the success rate of
feedback report offline submission.
</summary>
</histogram>
<histogram name="Feedback.RequestSource" enum="FeedbackSource"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the source that requested showing the feedback app.</summary>
</histogram>
<histogram name="Feedback.SecurityPage.SurveyRequested" enum="Boolean"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded once every time the security page survey is triggered.
</summary>
</histogram>
<histogram name="Feedback.TrustSafetySentiment.CallTriggerOccurred"
enum="TrustSafetySentimentFeatureArea" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the associated feature area when the Trust and Safety sentiment
service detects that the user has performed a trigger action. This is
recorded before the associated probability check and will be used to verify
the infrastructure of newly integrated feature areas. We will remove this
histogram once we verify the implementation.
</summary>
</histogram>
<histogram name="Feedback.TrustSafetySentiment.SurveyRequested"
enum="TrustSafetySentimentFeatureArea" expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the associated feature area when the Trust and Safety Sentiment
service requests a survey be shown from the HaTS service.
</summary>
</histogram>
<histogram name="Feedback.TrustSafetySentiment.TriggerOccurred"
enum="TrustSafetySentimentFeatureArea" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the associated feature area when the Trust and Safety sentiment
service detects that the user has performed a trigger action. This is
recorded after the associated probability check.
</summary>
</histogram>
<histogram name="FetchKeepAlive.RequestDuration{RequestState}" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded the duration of a fetch keepalive request between when such request
is constructed by a blink::FetchManager and when the blink::FetchManager
{RequestState}
This does not log for non-fetch types of keepalive request, meaning that
beacons or pings are all excluded. Note that as this is from the view of a
renderer, it contains only partial metrics when fetch keepalive in-browser
is enabled.
</summary>
<token key="RequestState">
<variant name=""
summary="receives a response (succeeded) or fails to load/receive a
response. If multiple errors happen, the duration logging
ends at the first error. Refer to
FetchManager::Loader::Failed() for details."/>
<variant name=".Failed"
summary="fails to load/receive a response. If multiple errors happen,
the duration logging ends with the first error. Refer to
FetchManager::Loader::Failed() for details."/>
<variant name=".Succeeded" summary="receives a response (succeeded)."/>
</token>
</histogram>
<histogram name="FetchKeepAlive.RequestOutliveDuration" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded the time a fetch keepalive request stays alive after its renderer
has detached, starting from when a blink::ThreadableLoader::Detach() of the
keepalive request is called, and ending with when such ThreadableLoader is
cleared.
This does not log for non-fetch types of keepalive request, meaning that
beacons or pings are all excluded.
This is to measure how much time the keepalive in-browser migration is able
to save.
</summary>
</histogram>
<histogram name="FetchKeepAlive.Requests2.Network"
enum="FetchKeepAliveRequestNetworkMetricType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded an entry when a Fetch keepalive request loader in the Network
service meets the states defined in the enum, e.g. request created or
response received.
</summary>
</histogram>
<histogram name="FetchKeepAlive.Requests2.Shutdown.IsStarted.Browser"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded true when a Fetch keepalive request loader in the browser process
is about to shut down and the request loading has been started.
</summary>
</histogram>
<histogram
name="FetchKeepAlive.Requests2.{RequestState}.IsContextDetached.{Process}"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded true when a Fetch keepalive request loader in the {Process}
{RequestState}.
</summary>
<token key="RequestState">
<variant name="Started" summary="starts to load."/>
<variant name="Succeeded" summary="succeeds to load."/>
</token>
<token key="Process">
<variant name="Browser" summary="browser process"/>
<variant name="Renderer" summary="renderer process"/>
</token>
</histogram>
<histogram name="FetchKeepAlive.Requests2.{RequestState}.{Process}"
enum="FetchKeepAliveRequestMetricType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded a Fetch keepalive request type every time a request loader of such
request in the {Process} {RequestState}
</summary>
<token key="RequestState">
<variant name="Failed"
summary="fails to load. A failure can be caused by either server
response or browser checking the request/response. In the
case of multiple errors, only the first encountered is
recorded. Refer to where
FetchUtils::LogFetchKeepAliveRequestMetric(...,kFailed) is
called for details."/>
<variant name="SentToService"
summary="gets sent to NetworkService (or Browser)."/>
<variant name="Started" summary="starts to load."/>
<variant name="Succeeded" summary="succeeds to load."/>
<variant name="Total"
summary="is created. It does NOT equal to the total number of
JavaScript Fetch API call, as the latter can be immediately
rejected with various JavaScript exceptions. This metric is
recorded to compare whether different behavior happens
between renderer and browser."/>
</token>
<token key="Process">
<variant name="Browser" summary="browser process"/>
<variant name="Renderer" summary="renderer process"/>
</token>
</histogram>
<histogram name="FetchLater.Browser.Metrics" enum="FetchLaterBrowserMetricType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records once every time a scheduled FetchLater request is either aborted or
started in browser.
</summary>
</histogram>
<histogram name="FetchLater.Browser.Total{LoaderStatus}" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records true every time {LoaderStatus}</summary>
<token key="LoaderStatus">
<variant name=""
summary="a new FetchLater request is scheduled by a browser. It does
NOT equal to the total number of JavaScript FetchLater API
call, as the latter can be immediately rejected with various
JavaScript exceptions. This number should be compared with
`FetchLater.Renderer.Total`, and it may be >= the sum of
`FetchLater.Browser.Metrics`, as a request may be dropped
for other undocumented reasons like browser killed or
crashes."/>
<variant name=".Started"
summary="a scheduled FetchLater request is started in browser. This
number should be the sum of enum values
"kStarted*" in `FetchLater.Browser.Metrics`."/>
</token>
</histogram>
<histogram name="FetchLater.Renderer.Metrics"
enum="FetchLaterRendererMetricType" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records once every time a scheduled FetchLater request is either aborted or
activated in renderer.
</summary>
</histogram>
<histogram name="FetchLater.Renderer.Total" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records true every time a new FetchLater request is scheduled by a renderer.
It does NOT equal to the total number of JavaScript FetchLater API call, as
the latter can be immediately rejected with various JavaScript exceptions.
This metric is recorded to compare whether different behavior happens
between renderer and browser. This number should be compared with
`FetchLater.Browser.Total`, and it should be equal to the sum of
`FetchLater.Renderer.Metrics`.
</summary>
</histogram>
<histogram name="FirstPartySets.Database.InitStatus"
enum="FirstPartySetsDatabaseInitStatus" expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records initialization status of First-Party Sets database. Recorded when
the database is lazily initialised when the first operation is encountered.
</summary>
</histogram>
<histogram name="FirstPartySets.Database.TransactionFailed" enum="BooleanError"
expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how often First-Party Sets database gets poisoned due to transaction
failure. Recorded when a subquery within a transaction happens.
</summary>
</histogram>
<histogram name="FirstPartySets.Initialization.ClearSiteDataOutcome"
enum="BooleanSuccess" expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the outcome of site data clearing. Recorded when First-Party Sets
initialization triggers site data clearing for a given browser context.
</summary>
</histogram>
<histogram name="FirstPartySets.Initialization.SitesToClear.Count"
units="sites" expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of sites whose data should be cleared during Related
Website Sets initialization. (Note: this doesn't record the number of sites
whose data *was* cleared.)
Recorded once per profile during profile login.
</summary>
</histogram>
<histogram name="FirstPartySets.NavigationThrottle.ResumeDelta" units="ms"
expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the length of time between when a navigation was deferred and then
resumed due to timeout or First-Party Sets is ready. Recorded when a
deferred navigation is resumed.
Warning: this histogram was expired from M125 to M128; data may be missing.
</summary>
</histogram>
<histogram name="FirstPartySets.NavigationThrottle.ResumeOnTimeout"
enum="BooleanTimedOut" expires_after="M139">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the deferred navigations that are resumed due to timeout. Recorded
when a deferred navigation is resumed.
Warning: this histogram was expired from M125 to M128; data may be missing.
</summary>
</histogram>
<histogram name="FirstRun.IOSFirebaseConfigured" enum="FirebaseConfiguredState"
expires_after="M89">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Track whether Firebase is enabled or not at app startup.</summary>
</histogram>
<histogram name="FirstRun.LaunchSource" enum="FirstRunLaunchSource"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of times First Run experience was triggered by another
application launching Chrome. This metric measures the effectiveness of
Smart App Banner promotions on installation of Chrome.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.GoogleAppsInteraction"
enum="NuxGoogleAppsInteractions" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a user interacted with the Google Apps new user experience. We
record both accept and reject but are not recording when a user ignored the
prompt completely. Users can ignore this prompt by closing the tab or
navigating away, we record when the prompt is shown.
Warning: this histogram was expired from M76 to M100; data may be missing.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.GoogleAppsSelection"
enum="NuxGoogleAppsSelections" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what Google apps were selected as part of the Google Apps New User
Experience. Histogram is only recorded when a user accepts the prompt to add
Google Apps.
Warning: this histogram was expired from M76 to M100; data may be missing.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.LandingPageInteraction"
enum="NuxLandingPageInteractions" expires_after="never">
<!-- expires-never: Captures users' initial interaction with chrome. We will
need to track how the metrics change over time, and how different
acquisition campaigns impact this metric. -->
<owner>[email protected]</owner>
<summary>
Records when a user interacted with the landing page of the onboarding
process. We record that the page was seen and what action the user took.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.NtpBackgroundInteraction"
enum="NuxNtpBackgroundInteractions" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a user interacts with the NTP Backgrounds new user experience.
We record the number of times the page is seen, how they interacted with the
page (i.e. interacted with the options and buttons), and through what method
they leave the page (i.e, confirm, cancel, neither). The new user experience
should only be shown once to new profiles.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.SetAsDefaultInteraction"
enum="NuxSetAsDefaultInteractions" expires_after="never">
<!-- expires-never: Captures users' initial interaction with chrome. We will
need to track how the metrics change over time, and how different
acquisition campaigns impact this metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a user interacted with the set default page of the onboarding
process. We record that the page was seen and what action the user took.
</summary>
</histogram>
<histogram name="FirstRun.NewUserExperience.SignInInterstitialInteraction"
enum="NuxSignInInterstitialInteractions" expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a user interacted with the sign in interstitial of the
onboarding process. We record that the page was seen and what action the
user took.
Warning: this histogram was expired from M76 to M100; data may be missing.
</summary>
</histogram>
<histogram name="FirstRun.Sentinel.Created" enum="FirstRunSentinelResult"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of an attempt to create the first run sentinel file.
On iOS, file system errors are detailed further by the
FirstRun.Sentinel.CreatedFileError histogram.
</summary>
</histogram>
<histogram name="FirstRun.Sentinel.CreatedFileError" enum="PlatformFileError"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>File error when the sentinel file was not written.</summary>
</histogram>
<histogram name="FirstRun.SignIn" enum="FirstRunSignInResult"
expires_after="never">
<!-- expires-never: Used to monitor sign-in during the first run experience.
-->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Result of the sign in flow during first run on iOS.</summary>
</histogram>
<histogram name="FirstRun.Stage" enum="FirstRunStageResult"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When Chrome is opened for the first time, the first run (onboarding) UI will
be shown. Metircs will be recorded in different first run stages such as
when first run experience is started, and when first run experience is
completed.
</summary>
</histogram>
<histogram name="FirstUserAction.BackgroundTime" units="minutes"
expires_after="2024-09-12">
<!-- Name completed by histogram_suffixes name="FirstUserActionType" and name="FirstUserActionTypeDevice" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WARNING: The list of actions used to identify new tasks hasn't been
attentively updated for several years (as of 2017). Some actions that should
likely be considered new tasks are probably missing. Take this histogram
with a grain of salt. Was expired for M85, M86.
The amount of time (in seconds) that the app was in the background before
the user started it
</summary>
</histogram>
<histogram name="FirstUserAction.HandsetUserActionType"
enum="FirstUserActionType" expires_after="2024-09-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WARNING: The list of actions used to identify new tasks hasn't been
attentively updated for several years (as of 2017). Some actions that should
likely be considered new tasks are probably missing. Take this histogram
with a grain of salt. Was expired for M77-M86.
On handsets, the type of the first user action performed after the app was
started or unbackgrounded.
</summary>
</histogram>
<histogram name="FirstUserAction.TabletUserActionType"
enum="FirstUserActionType" expires_after="2024-09-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WARNING: The list of actions used to identify new tasks hasn't been
attentively updated for several years (as of 2017). Some actions that should
likely be considered new tasks are probably missing. Take this histogram
with a grain of salt. Was expired for M82-M86.
On tablets, the type of the first user action performed after the app was
started or unbackgrounded.
</summary>
</histogram>
<histogram name="Gaia.AuthFetcher.ListAccounts.NetErrorCodes"
enum="NetErrorCodes" expires_after="never">
<!-- expires-never: used to monitor and troubleshoot the signin component -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the network error code for requests to the ListAccounts Gaia
endpoint.
</summary>
</histogram>
<histogram name="Gaia.ResponseCodesForOAuth2AccessToken"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="never">
<!-- expires-never: Used to monitor OAuth code health and debug issues. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
URLFetcher response codes for OAuth2AccessToken. Positive values are HTTP
status codes, negative values are network error codes. Recorded on responses
to OAuth access token requests.
</summary>
</histogram>
<histogram name="Gaia.ResponseForOAuth2AccessToken" enum="OAuth2Response"
expires_after="never">
<!-- expires-never: Used to monitor OAuth code health and debug issues. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of the Oauth2 access token request when a response is
received from the LSO server except in net failure cases. In error cases, it
records the error code in the response body.
</summary>
</histogram>
<histogram name="Gamepad.KnownGamepadConnectedWithId"
enum="GamepadVendorProduct" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records an integer value that can be used to identify a connected gamepad
device. The value is constructed from the 16-bit vendor ID in the high-order
bytes and the 16-bit product ID in the low-order bytes, then cast to a
32-bit signed integer. The GamepadVendorProduct enum lists IDs for several
popular gamepads but is incomplete. To identify a device not included in the
enum, convert back to the vendor/product IDs and look up the human-friendly
product name in go/gamepad-ids. This histogram records a new entry when a
device with a vendor and product ID matching a known gaming input device is
detected during Gamepad API enumeration.
</summary>
</histogram>
<histogram name="Gamepad.ReadContentionCount" units="Contentions"
expires_after="2024-05-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of read contentions on the gamepad SeqLock. This is
sampled at 60Hz when the gamepad API is active for the page. It is capped at
a maximum of 10, after which the read fails.
</summary>
</histogram>
<histogram name="Gamepad.UnknownGamepadConnected" enum="GamepadSource"
expires_after="2024-05-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records an enumeration value identifying the active data fetcher when a
fetcher enumerates a device that is not on the list of known gamepads, but
is recognized as a gamepad by the fetcher.
</summary>
</histogram>
<histogram name="Gamepad.ValidSharedMemoryHandle" enum="HandleValidity"
expires_after="2024-05-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the browser sent a valid shared memory handle to the renderer.
</summary>
</histogram>
<histogram name="GestureNavigation.Activated2"
enum="GestureNavigationDirection" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Overscroll gesture was made beyond a threshold big enough to regard it as a
valid gesture navigation i.e. at least 1/3 of the arrow puck is visible.
Similar to 'Triggered' but is used in pair with 'Cancelled' on M81 forward
to measure cancellation rate. Implemented for Android.
</summary>
</histogram>
<histogram name="GestureNavigation.Cancelled2"
enum="GestureNavigationDirection" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Overscroll gestures that were cancelled before they were completed. Similar
to 'Abandoned' but is used in pair with 'Activated' on M81 forward to
measure cancellation rate. Implemented for Android.
</summary>
</histogram>
<histogram name="GestureNavigation.Completed2"
enum="GestureNavigationDirection" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Navigations that were triggered due to completed overscroll gesture.
Implemented for Android.
</summary>
</histogram>
<histogram name="GestureNavigation.Reversed2" enum="GestureNavigationDirection"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Overscroll gesture was made to trigger navigation, but within 3 seconds user
used overscroll gesture to navigate back to the page. Implemented for
Android.
</summary>
</histogram>
<histogram name="GestureNavigation.Type2" enum="GestureNavigationType"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Gesture navigation type. It can be either Chrome's own gesture UI that
supports back and forward navigation or OS-provided default system gesture
navigation that supports only back action on both left and right edge. This
is recorded on Chrome startup at the feature component initialization.
</summary>
</histogram>
<histogram base="true" name="GridTabSwitcher.FramePerSecond" units="frame/sec"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram records the frame rate of the transition animation between
Tab and Grid Tab Switcher.
</summary>
</histogram>
<histogram base="true" name="GridTabSwitcher.MaxFrameInterval" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram records the maximum interval between rendered frames during
the transition animation between Tab and Grid Tab Switcher.
</summary>
</histogram>
<histogram name="GridTabSwitcher.{MessageType}.DisableReason"
enum="GridTabSwitcherMessageDisableReason" expires_after="2022-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records why the {MessageType} is disabled in GridTabSwitcher and will no
longer be shown to users. Recorded when the message is disabled. Implemented
for Android.
</summary>
<token key="MessageType" variants="GridTabSwitcherMessageTypes"/>
</histogram>
<histogram name="Hardware.Display.Count.OnChange" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of displays present right after the user has attached or detached
a new display. Excludes mirrored displays, but includes sleeping displays.
</summary>
</histogram>
<histogram name="Hardware.Display.Count.OnStartup" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of displays present at start up. Excludes mirrored displays, but
includes sleeping displays.
</summary>
</histogram>
<histogram name="Hardware.Display.SupportsHDR" enum="BooleanSupported"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a given display device supports HDR (such that the CSS media query
`dynamic-range: high` would resolve as true). Recorded upon browser startup
(for every connected display), upon display device connection (for the newly
connected display), and upon any change to the color space metric (for the
affected display).
</summary>
</histogram>
<histogram name="Hardware.TotalDiskSpace" units="GB" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a rough estimation of the system total disk space collected in the
info collection GPU process, once per UMA ping.
</summary>
</histogram>
<histogram name="Hwsec.Attestation.PrepareDuration" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The duration of preparation for enrollment in attestation.</summary>
</histogram>
<histogram base="true" name="Hwsec.Attestation.Status"
enum="HwsecAttestationOpsStatus" expires_after="2025-01-05">
<!-- Name completed by histogram_suffixes name="AttestationOps" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of attestation-related operations on the Chrome OS side.
</summary>
</histogram>
<histogram name="Hyphenation.Open" units="ms" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The time it takes to open a hyphenation dictionary.</summary>
</histogram>
<histogram name="Hyphenation.Open.File" units="ms" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The time it takes to open a hyphenation dictionary file.</summary>
</histogram>
<histogram name="Import.ImporterType.AutoImport" enum="ImporterType"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The importer used on first run Auto Import.
Warning: This histogram was expired from 2018-09 to 2023-07; data may be
missing.
</summary>
</histogram>
<histogram name="Import.ImporterType.BookmarksAPI" enum="ImporterType"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The importer used on import from the bookmarks file API.
Warning: This histogram was expired from M77 to M117; data may be missing.
</summary>
</histogram>
<histogram name="Import.ImporterType.ImportDataHandler" enum="ImporterType"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The importer used on import from the chrome://settings/importData UI.
Warning: This histogram was expired from 2018-09 to 2023-07; data may be
missing.
</summary>
</histogram>
<histogram name="ImportantFile.FileReplaceRetryCount" units="attempt count"
expires_after="never">
<!-- expires-never: Detects failures to write important files. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of retries needed to successfully move the temporary file to its
final location. Zero means that ReplaceFile worked the first time. Ten means
that it never succeeded.
</summary>
</histogram>
<histogram name="ImportantFile.SerializationDuration{ImportantFileClients}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
CPU time used in the foreground thread (usually UI thread) to serialize the
data to be written into an important file (e.g. serialize JSON string for
preferences). For users of ImportantFileWriter that leverage background
serialization (e.g. bookmarks), it excludes the time spent on the background
thread, and only logs the time spent on the foreground thread.
</summary>
<token key="ImportantFileClients" variants="ImportantFileClients"/>
</histogram>
<histogram name="ImportantFile.WriteDuration{ImportantFileClients}" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
CPU time used in the background thread to write serialized data into an
important file. Recorded when the file is written.
Note: As client suffixes are added the volume of the unsufixed variant will
decline. This needs to be taken into account when analyzing overall counts.
</summary>
<token key="ImportantFileClients" variants="ImportantFileClients"/>
</histogram>
<histogram name="Incognito.ClearBrowsingDataDialog.ActionType"
enum="IncognitoClearBrowsingDataDialogActionType"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the action taken by the user on the Incognito clear browsing data
dialog.
</summary>
</histogram>
<histogram name="InertialSensor.AccelerometerAndroidAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the Sensor.TYPE_LINEAR_ACCELERATION was available at the start of
Device Motion.
</summary>
</histogram>
<histogram name="InertialSensor.AccelerometerIncGravityAndroidAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the Sensor.TYPE_ACCELEROMETER was available at the start of Device
Motion.
</summary>
</histogram>
<histogram name="InertialSensor.AccelerometerWindowsAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the SENSOR_TYPE_ACCELEROMETER_3D was available at the start of
Device Motion on the Windows platform.
</summary>
</histogram>
<histogram name="InertialSensor.DeviceOrientationSensorAndroid"
enum="DeviceOrientationSensorTypeAndroid" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Provides a histogram of the base sensors (if any) that are used at the start
of the Device Orientation API. Currently Sensor.TYPE_GAME_ROTATION_VECTOR is
the default sensor for orientation, if it's not available fall-back options
are provided by using either Sensor.TYPE_ROTATION_VECTOR or a combination of
Sensor.TYPE_ACCELEROMETER and Sensor.TYPE_MAGNETIC_FIELD.
</summary>
</histogram>
<histogram name="InertialSensor.GyrometerWindowsAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the SENSOR_TYPE_GYROMETER_3D was available at the start of Device
Motion on the Windows platform.
</summary>
</histogram>
<histogram name="InertialSensor.GyroscopeAndroidAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the Sensor.TYPE_GYROSCOPE was available at the start of Device
Motion.
</summary>
</histogram>
<histogram name="InertialSensor.InclinometerWindowsAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the SENSOR_TYPE_INCLINOMETER_3D was available at the start of Device
Orientation on the Windows platform.
</summary>
</histogram>
<histogram name="InertialSensor.MotionDefaultAvailable" enum="BooleanAvailable"
expires_after="M95">
<owner>[email protected]</owner>
<summary>
This histogram counts the number of Device Motion API invocations in the
default implementation (Linux and CrOS). The default implementation does not
provide any sensors so the result is always false.
</summary>
</histogram>
<histogram name="InertialSensor.MotionMacAvailable" enum="BooleanAvailable"
expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the sudden motion sensor was available at the start of Device Motion
on the MacOS platform.
</summary>
</histogram>
<histogram name="InertialSensor.OrientationDefaultAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
This histogram counts the number of Device Orientation API invocations in
the default implementation (Linux and CrOS). The default implementation does
not provide any sensors so the result is always false.
</summary>
</histogram>
<histogram name="InertialSensor.OrientationMacAvailable"
enum="BooleanAvailable" expires_after="M95">
<owner>[email protected]</owner>
<summary>
Whether the sudden motion sensor was available at the start of Device
Orientation on the MacOS platform.
</summary>
</histogram>
<histogram name="InstanceID.GetToken.RequestNetErrorCode" enum="NetErrorCodes"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Net error code from a GetToken request. Recorded when URL loading fails.
</summary>
</histogram>
<histogram name="InstanceID.GetToken.RequestStatus"
enum="GCMRegistrationRequestStatus" expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Status code of the outcome of GetToken request. Warning: this histogram was
expired from 2023-08-06 to 2023-09-22, and from 2024-02-20 to 2024-05-28;
data may be missing.
</summary>
</histogram>
<histogram name="InstanceID.GetToken.RequestStatus.SyncInvalidations"
enum="GCMRegistrationRequestStatus" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Status code of the outcome of GetToken request for Sync invalidations
(subtype was "com.google.chrome.sync.invalidations").
</summary>
</histogram>
<histogram name="Launch.FlagsAtStartup" enum="LoginCustomFlags"
expires_after="never">
<!-- expires-never: monitors use of all flags. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs which Chrome flags from about:flags were active on start up. Android
WebView supports flags differently than most platforms, see
https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/developer-ui.md
for details.
</summary>
</histogram>
<histogram name="Launch.Mode2" enum="LaunchMode" expires_after="never">
<!-- expires-never: used from time to time on Windows to measure the value of the various Chrome shortcuts (davidbienvenu@) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The different ways Chrome is launched. This replaces Launch.Modes. Emitted
once at startup, when the user launches Chrome to browse the web or launch a
Web App. It is not recorded if Chrome is launched in other ways: by the
installer, after an update, after a flag change, after an OS update, to
install/uninstall/list apps, or in background mode.
</summary>
</histogram>
<histogram name="Linux.DisplayServerSupport" enum="DisplayServerSupport"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The supported display server protocols. (Linux only) Logged on each start
up.
</summary>
</histogram>
<histogram name="Linux.Distro.Debian" enum="LinuxDistroDebianVersion"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Debian version number (eg. 8: Jessie, 9: Stretch). Logged once on
startup if Linux.Distro3 is Debian.
</summary>
</histogram>
<histogram name="Linux.Distro.Fedora" enum="LinuxDistroFedoraVersion"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Fedora version number (eg. 27, 28) Logged once on startup if
Linux.Distro3 is Fedora.
</summary>
</histogram>
<histogram name="Linux.Distro.Mint" enum="LinuxDistroMintVersion"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Linux Mint version number (eg. 20, 20.1) Logged once on startup if
Linux.Distro3 is Mint.
</summary>
</histogram>
<histogram name="Linux.Distro.OpenSuseLeap"
enum="LinuxDistroOpenSuseLeapVersion" expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The openSUSE Leap version number, logged as 1000*major + minor (eg. 15001 =
15.1). Logged once on startup if Linux.Distro3 is openSUSE Leap.
</summary>
</histogram>
<histogram name="Linux.Distro.Ubuntu" enum="LinuxDistroUbuntuVersion"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Ubuntu version number, logged as 1000*year + month (eg. 16004 = 16.04
Xenial). Logged once on startup if Linux.Distro3 is Ubuntu.
</summary>
</histogram>
<histogram name="Linux.Distro3" enum="LinuxDistro3" expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The Linux distro used. Logged on each start up.</summary>
</histogram>
<histogram name="Linux.GlibcVersion" enum="LinuxGlibcVersion"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The version of glibc used. (Linux only) Logged on each start up.
</summary>
</histogram>
<histogram name="Linux.SandboxStatus" enum="LinuxSandboxStatus"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/sandbox/linux/OWNERS</owner>
<summary>
The Linux sandbox status. This describes what sandboxing features are
enabled (such as the suid/namespace sandboxes, various namespaces, seccomp
bpf, ...). Emitted once at startup.
</summary>
</histogram>
<histogram name="Linux.Wayland.BaseShellUsed" enum="LinuxWaylandShellName"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Linux Wayland base shell protocol used actually. Logged in each session
when the browser creates the first shell surface.
</summary>
</histogram>
<histogram name="Linux.Wayland.Shell" enum="LinuxWaylandShellName"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Linux Wayland shell protocol(s) available. Logged in each session when
the compositor announces a Wayland protocol extension that provides the
desktop shell functionality (i.e., turns abstract surfaces into windows that
can be positioned, moved, resized, etc., depending on the particular shell).
</summary>
</histogram>
<histogram name="Linux.WindowManager" enum="LinuxWindowManagerName"
expires_after="never">
<!-- expires-never: Needed to measure Linux ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The window manager used. (Linux only) Logged on each start up.
</summary>
</histogram>
<histogram name="LoadingPredictor.IsSlowNetwork" enum="Boolean"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the network is considered to be slow or not. Recorded on
each call of LoadingPredictor::PrepareForPageLoad() function if
kSuppressesLoadingPredictorOnSlowNetwork feature is enabled.
</summary>
</histogram>
<histogram name="LoadingPredictor.LcppStatCorruptedAtLearnTime" enum="Boolean"
expires_after="2024-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of SetLCPPNavigationHint. It is recorded when the
kLCPCriticalPathPredictor feature is enabled and MaybeSetLCPPNavigationHint
is called. It includes status on not only SetLCPPNavigation failure, but
also success for ease of understanding the failure ratio.
</summary>
</histogram>
<histogram name="LoadingPredictor.OptimizationHintsReceiveStatus"
enum="LoadingPredictorOptimizationHintsReceiveStatus"
expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The status of when the optimization hints were received by the Loading
Predictor. This will be recorded on navigations for which predictions from
the Optimization Guide were received.
</summary>
</histogram>
<histogram name="LoadingPredictor.PreconnectCount" units="origins"
expires_after="2023-08-27">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The number of origins that were preconnected for a page load. It includes
preconnect attempts that don't result in new opened connection. Logged after
the preconnect manager completes all jobs attached to the page load.
</summary>
</histogram>
<histogram name="LoadingPredictor.PreconnectHitsPercentage" units="%"
expires_after="2023-09-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The percentage of origins that were preconnected and requested by a page
load to the total number of origins that were preconnected for a page load.
Logged after the preconnect manager completes all jobs attached to the page
load.
</summary>
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningCount"
units="origins" expires_after="2023-07-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
When the loading predictor has origins in the local database for a given
navigation to preconnect and preresolve, the count of predicted origins.
</summary>
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningPrecision"
units="%" expires_after="2023-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
When the loading predictor has origins in the local database for a given
navigation to preconnect and preresolve, the precision of the predictions in
percentage. This is computed as 100 \times \frac{correct
predictions}{predictions}.
</summary>
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningRecall"
units="%" expires_after="2023-09-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
When the loading predictor has origins in the local database for a given
navigation to preconnect and preresolve, the recall of the predictions, in
percentage. This is computed as 100 \times \frac{correct predictions}{all
prefetchable subresources}.
</summary>
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningRedirectStatus"
enum="ResourcePrefetchPredictorRedirectStatus" expires_after="2023-06-25">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
When the prefetch predictor has origins in the local database for a given
navigation to preconnect and preresolve, records stats about whether
redirect was predicted correctly or incorrectly.
</summary>
</histogram>
<histogram name="LoadingPredictor.PredictorDatabaseFileSize" units="KiB"
expires_after="2024-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The size, in kilobytes, of the database used for the loading prediction.
Values can range from 1KiB to 1GiB. Logged at browser startup and daily.
</summary>
</histogram>
<histogram name="LoadingPredictor.PreresolveCount" units="hosts"
expires_after="2023-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The number of hosts that were preresolved for a page load. It includes only
successful DNS lookups. Logged after the preconnect manager completes all
jobs attached to the page load.
</summary>
</histogram>
<histogram name="LoadingPredictor.PreresolveHitsPercentage" units="%"
expires_after="2023-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457018</component>
<summary>
The percentage of hosts that were preresolved and requested by a page load
to the total number of hosts that were preresolved for a page load. Logged
after the preconnect manager completes all jobs attached to the page load.
</summary>
</histogram>
<histogram name="LoadingPredictor.SetLcppNavigationHint.Status"
enum="LcppHintStatus" expires_after="2024-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of SetLCPPNavigationHint. It is recorded when the
kLCPCriticalPathPredictor feature is enabled and MaybeSetLCPPNavigationHint
is called. It includes status on not only SetLCPPNavigation failure, but
also success for ease of understanding the failure ratio.
</summary>
</histogram>
<histogram name="LoadingPredictor.SetLCPPNavigationHint.Time" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the elapsed time it takes to read LCPPNavigationHint and attach it
to NavigationHandle. Recorded on DidStartNavigatinon or
DidRedirectNavigation only when there is hint information.
</summary>
</histogram>
<histogram name="Manifest.HasProperty" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
Tracks which properties of a Manifest were present when it was parsed. If a
property can't be parsed, it will be recorded as not present. These
histograms will only be used if the Manifest was correctly fetched and
parsed and the parsed manifest is not empty.
</summary>
</histogram>
<histogram name="Manifest.ParseIdResult" enum="ManifestParseIdResultType"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Tracks the result of parsing id field in the Manifest.</summary>
</histogram>
<histogram name="Mist.SwitchResult" enum="MistSwitchResult" expires_after="M77">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result (e.g. success or the type of failure) of a modem interface switch
operation performed by mist on Chrome OS.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.ErrorOrResponseCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2023-08-13">
<owner>[email protected]</owner>
<summary>
The net error or HTTP response code of a mixed content resource request that
was autoupgraded to HTTPS. This histogram was expired from M80 to M108.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.Failure.IsAd" enum="Boolean"
expires_after="M112">
<owner>[email protected]</owner>
<summary>
Whether or not an autoupgrade mixed content request was for a resource we
know to be an ad. This histogram was expired from M80 to M108.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.Failure.Type"
enum="ResourceType" expires_after="M112">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the type of each resource request that is autoupgraded to HTTPS and
fails to load. This histogram was expired from M80 to M108.
Warning: an unexpected reorder happened in Apr 2021
(https://crrev.com/c/2798954). Please do not trust older reports.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.Response.Type"
enum="ResourceType" expires_after="M112">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the type of each resource request that was autoupgraded to HTTPS and
resulted in a response. This histogram was expired from M80 to M108.
Warning: an unexpected reorder happened in Apr 2021
(https://crrev.com/c/2798954). Please do not trust older reports.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.Start.Type"
enum="ResourceType" expires_after="M112">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the type of each resource request that is autoupgraded to HTTPS. This
is logged when the request is started. This histogram was expired from M80
to M108.
Warning: an unexpected reorder happened in Apr 2021
(https://crrev.com/c/2798954). Please do not trust older reports.
</summary>
</histogram>
<histogram name="MixedAutoupgrade.ResourceRequest.Status"
enum="MixedContentAutoupgradeStatus" expires_after="2023-08-08">
<owner>[email protected]</owner>
<summary>
The status of a mixed content resource request that was autoupgraded to
HTTPS. This histogram was expired from M80 to M108.
</summary>
</histogram>
<histogram name="Mojo.Channel.WriteMessageLatency" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time taken to fully write a channel message to the underlying
channel.
On some clients this metric is logged only one time out of one thousand to
reduce measurment overhead.
</summary>
</histogram>
<histogram name="Mojo.Channel.WriteMessageSize" units="bytes"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The size of a message written to a channel.</summary>
</histogram>
<histogram name="Mojo.Channel.WriteQueuePendingMessages" units="count"
expires_after="2023-11-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number queued messages waiting to be written, measured when a channel
flush is attempted.
</summary>
</histogram>
<histogram name="Mojo.Channel.WriteReceiveMessageProcessType"
enum="ShortProcessType" expires_after="2025-09-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of received Mojo IPCs, split per process. Emitted each
time a mojo IPC is received.
</summary>
</histogram>
<histogram name="Mojo.Channel.WriteSendMessageProcessType"
enum="ShortProcessType" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of sent Mojo IPCs, split per process. Emitted each time a
mojo IPC is sent.
</summary>
</histogram>
<histogram name="Mojo.Channel.WriteToReadLatencyUs" units="microseconds"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time taken between an IPCz message serialization until it is
deserialized on the other side of the Channel. This metric is downsampled to
reduce its cost.
This is only recorded on clients with high-resolution clocks.
</summary>
</histogram>
<histogram name="Mojo.Connector.MaxUnreadMessageQuotaUsed" units="messages"
expires_after="2022-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximal unread message quota used for the lifetime of a Connector. This
is sampled for a configurable percentage of Connectors only when the feature
MojoRecordUnreadMessageCount is enabled. By default 1% of Connectors are
sampled, as there's some overhead involved in enabling the unread message
quota on a MessagePipe. See //mojo/public/cpp/bindings/lib/connector.cc.
</summary>
</histogram>
<histogram name="Mojo.EndToEndLatencyUs.{ThreadName}" units="microseconds"
expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time taken from the sender calling a mojo interface function to
the receiver's implementation getting invoked.
Sub-sampled to 1/1000 calls to reduce measurement overhead.
Metric is split by receiving thread for some important threads. All other
threads are grouped under 'Default'.
This is only recorded on clients with high-resolution clocks.
</summary>
<token key="ThreadName">
<variant name="BrowserIO"/>
<variant name="BrowserMain"/>
<variant name="ChildIOThread"/>
<variant name="Compositor"/>
<variant name="Default"/>
<variant name="GpuMain"/>
<variant name="NetworkService"/>
<variant name="RendererMain"/>
</token>
</histogram>
<histogram name="Mojo.InvalidUTF8String" enum="BooleanValid"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted any time a Mojo string is deserialized and is not valid UTF-8.
</summary>
</histogram>
<histogram name="Mouse.PointerSensitivity.Changed" enum="PointerSensitivity"
expires_after="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks mouse sensitivity setting changes by the user. This replaces the old
Mouse.Sensitivity.Changed metric. Only reported on Chrome OS.
</summary>
</histogram>
<histogram name="Mouse.PointerSensitivity.Started" enum="PointerSensitivity"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks mouse sensitivity setting on startup. This replaces the old
Mouse.Sensitivity.Started metric. Only reported on Chrome OS.
Expired from 2022-12-04 to M113. May be missing some data.
</summary>
</histogram>
<histogram name="Mouse.PrimaryButtonRight.Changed" enum="PrimaryButtonRight"
expires_after="2024-03-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks mouse PrimaryButtonRight setting. Only reported on Chrome OS.
</summary>
</histogram>
<histogram name="Mouse.PrimaryButtonRight.Started" enum="PrimaryButtonRight"
expires_after="2024-03-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks mouse PrimaryButtonRight setting on startup. Only reported on Chrome
OS.
</summary>
</histogram>
<histogram base="true" name="Mouse.ScrollAcceleration" enum="BooleanEnabled"
expires_after="2025-02-11">
<!-- Name completed by histogram_suffixes name="PreferenceChangeType" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether mouse scroll acceleration is enabled. Only reported on Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M123; data may be
missing.
</summary>
</histogram>
<histogram base="true" name="Mouse.ScrollSensitivity" enum="PointerSensitivity"
expires_after="2024-09-01">
<!-- Name completed by histogram_suffixes name="PreferenceChangeType" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Mouse scroll sensitivity value. Only reported on Chrome OS.
Warning: this histogram was expired from 2020-12-01 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="MPArch.ChildProcessLaunchActivelyInParallel" units="threads"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
The number of process creation threads that are actively spawning sub
processes. Recorded at the start of each process launch. Only recorded on
Windows and when parallel process launching is enabled.
</summary>
</histogram>
<histogram name="MPArch.ChildProcessLauncher.{Event}" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
The amount of time spent within ChildProcessLauncher while launching a
process. These metrics are being added to measure upcoming changes to
sandbox process launching. See https://crbug.com/40287847.
The Notify measurement time starts on the UI thread when the process launch
is requested and ends when the UI thread is notified of a successful launch.
The PreLaunchDelay variant captures the subset of time spent waiting for the
launcher thread to be ready.
</summary>
<token key="Event">
<variant name="Notify"/>
<variant name="PreLaunchDelay"/>
</token>
</histogram>
<histogram name="MPArch.ChildProcessLaunchFirst" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes to spawn the first child subprocess (including sandbox
init).
</summary>
</histogram>
<histogram name="MPArch.ChildProcessLaunchSubsequent" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes to spawn child sub processes not counting the first one.
</summary>
</histogram>
<histogram name="MultiProfile.UsersPerSessionIncremental" units="units"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of users simultaneously signed into a multiprofile session on
Chrome OS. This is recorded whenever a user gets added to the session. To
get the correct count, all following counts must be subtracted. Example: If
100 single user, 20 two user and 5 three user sessions, there were
100-20-5=75 single user sessions, 100-80=20 dual user sessions and so on.
Warning: this histogram was expired from 2022-04-10 till 2023-07-10.
</summary>
</histogram>
<histogram name="NativeSmbFileShare.AuthenticationMethod"
enum="NativeSmbFileShare_AuthMethod" expires_after="2025-05-21">
<owner>[email protected]</owner>
<owner>src/chrome/browser/ash/smb_client/OWNERS</owner>
<summary>
The method used to authenticate to a share. This is called on each attempted
mount.
</summary>
</histogram>
<histogram name="NativeSmbFileShare.GetSharesResult"
enum="NativeSmbFileShare_MountResult" expires_after="2024-10-23">
<owner>[email protected]</owner>
<owner>src/chrome/browser/ash/smb_client/OWNERS</owner>
<summary>
The result of the GetShares operation for Native SMB File Share. This is
recorded after the D-Bus call to GetShares returns.
</summary>
</histogram>
<histogram name="NativeSmbFileShare.MountCount" units="Active Mounts"
expires_after="2024-10-23">
<owner>[email protected]</owner>
<owner>src/chrome/browser/ash/smb_client/OWNERS</owner>
<summary>
The number of active mounts that a user has. This is recorded after a share
has been successfully mounted.
</summary>
</histogram>
<histogram name="NativeSmbFileShare.MountResult"
enum="NativeSmbFileShare_MountResult" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>src/chrome/browser/ash/smb_client/OWNERS</owner>
<summary>
The result of the mount operation for Native SMB File Share. This is
recorded after the D-Bus call to Mount returns.
</summary>
</histogram>
<histogram name="NQE.RTT.Error.Absolute" units="ms" expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Error between estimation and observation. Absolute value will be recorded
for both case estimation is larger than observation and observation is
larger than estimation. Recorded when HTTP RTT is going to be updated.
</summary>
</histogram>
<histogram name="NQE.RTT.Error.IsZero" enum="Boolean"
expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if estimation and observation are the same. Recorded when HTTP RTT is
going to be updated.
</summary>
</histogram>
<histogram name="NQE.RTT.Error.Negative" units="ms" expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Error between estimation and observation. Only recorded if observed value is
smaller than estimation. Recorded when HTTP RTT is going to be updated.
</summary>
</histogram>
<histogram name="NQE.RTT.Error.Positive" units="ms" expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Error between estimation and observation. Only recorded if observed value is
larger than estimation. Recorded when HTTP RTT is going to be updated.
</summary>
</histogram>
<histogram name="NQE.RTT.HittingThreshold.{Category}.FallbackSuccess"
enum="Boolean" expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if GetRecentRTT() for {Category} returns invalid RTT under the given
threshold but success without the threshold. Recorded when RTT is going to
be calculated for updating the effective connection type.
</summary>
<token key="Category">
<variant name="EndToEnd"
summary="EndToEnd ObservationBuffer (lifetime of the end to end
category)"/>
<variant name="HTTP"
summary="HTTP ObservationBuffer (lifetime of the HTTP category)"/>
<variant name="Transport"
summary="Transport ObservationBuffer (lifetime of the transport
category)"/>
</token>
</histogram>
<histogram name="NQE.RTT.ObservationBufferLifeTime2.{Category}" units="ms"
expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
NQE's estimated RTT comes from weighted medium value in an
ObservationBuffer. This is a metrics for {Category}. This metrics tells the
duration on how long an observation is kept in the ObservationBuffer so that
we can understand how fast the new status will be reflected. Recorded when
an observation is added to the buffer and an old observation gets evicted.
(Max 1 hour, 100 buckets)
</summary>
<token key="Category">
<variant name="All"
summary="All ObservationBuffer ("All" represents sum of all
categories)"/>
<variant name="EndToEnd"
summary="EndToEnd ObservationBuffer (lifetime of the end to end
category)"/>
<variant name="HTTP"
summary="HTTP ObservationBuffer (lifetime of the HTTP category)"/>
<variant name="Transport"
summary="Transport ObservationBuffer (lifetime of the transport
category)"/>
</token>
</histogram>
<histogram name="NQE.RTT.ObservationSource" enum="NQEObservationSource"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of RTT observations indexed by the source of the observation.
Recorded by the network quality estimator every time a new observation is
made or synthesized.
Warning: this histogram was expired from 2022-02-20 to 2024-07-04; data may
missing.
</summary>
</histogram>
<histogram name="NQE.RTT.OnECTComputation" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Rough estimate of the round trip time at the URLRequest layer. Recorded by
the network quality estimator every time the effective connection type is
computed.
Warning: this histogram was expired from 2022-01-16 to 2024-07-04; data may
missing.
</summary>
</histogram>
<histogram name="NQE.TransportRTT.OnECTComputation" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Rough estimate of the round trip time at the Transport layer. Recorded by
the network quality estimator every time the effective connection type is
computed.
</summary>
</histogram>
<histogram name="OAuth2Login.SessionRestore" enum="GaiaSessionRestoreOutcome"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Outcome of Chrome OS GAIA cookie session restore process.</summary>
</histogram>
<histogram name="OAuth2Login.SessionRestoreTimeToFailure" units="ms"
expires_after="2024-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>How long it takes for the session restore to fail.</summary>
</histogram>
<histogram name="OAuth2Login.SessionRestoreTimeToSuccess" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How long it takes for the session restore to finish successfully.
</summary>
</histogram>
<histogram name="OnDeviceModel.BenchmarkDuration" units="ms"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to run the benchmark in
OnDeviceModelService.GetEstimatedPerformanceClass(). Logged whenever
GetEstimatedPerformanceClass() is called.
</summary>
</histogram>
<histogram name="OnDeviceModel.BenchmarkEstimatedTokensPerSecond.{Stage}"
units="tk/s" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The estimated tokens per second this device can achieve during {Stage}.
Logged whenever OnDeviceModelService.GetEstimatedPerformanceClass() is
called.
</summary>
<token key="Stage">
<variant name="Input" summary="input"/>
<variant name="Output" summary="output"/>
</token>
</histogram>
<histogram name="OnDeviceModel.BenchmarkSuccess" enum="Boolean"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether there was an error running the tokens per second benchmark.
Logged whenever OnDeviceModelService.GetEstimatedPerformanceClass() is
called.
</summary>
</histogram>
<histogram name="OnDeviceModel.BenchmarkVeryLowReason"
enum="VeryLowPerformanceReason" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason the benchmark returned kVeryLow performance class. Logged
whenever kVeryLow performance class is returned from running the benchmark.
</summary>
</histogram>
<histogram name="OnDeviceModel.DeviceHeapSize.{GpuType}" units="MB"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maxiumum GPU heap size for a device with {GpuType} GPU. Logged whenever
OnDeviceModelService.GetEstimatedPerformanceClass() is called.
</summary>
<token key="GpuType">
<variant name="Discrete" summary="discrete"/>
<variant name="Integrated" summary="integrated"/>
</token>
</histogram>
<histogram name="OnDeviceModel.GpuBlockedReason" enum="GpuBlockedReason"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason the GPU was blocked in OnDeviceModelService. Logged
whenever ChromeML::IsGpuBlocked() is called.
</summary>
</histogram>
<histogram name="OnDeviceModel.GpuErrorReason" enum="GpuErrorReason"
expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a fatal error received by the OnDeviceModelService. Logged whenever
the service crashes due to a GPU error.
</summary>
</histogram>
<histogram name="OnDeviceModel.LoadAdaptationModelDuration" units="ms"
expires_after="2024-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to load an adaptation model in the
OnDeviceModelService. Logged every time an adaptation model is successfully
loaded.
</summary>
</histogram>
<histogram name="OnDeviceModel.LoadModelDuration" units="ms"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to load a model in the OnDeviceModelService.
Logged every time a model is successfully loaded.
</summary>
</histogram>
<histogram name="OnDeviceModel.LoadPlatformModelStatus"
enum="LoadPlatformModelStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of loading a platform model in the OnDeviceModelService. Logged
every time when loading a platform model.
</summary>
</histogram>
<histogram name="OnDeviceModel.MaxBufferSize.{GpuType}" units="MB"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maxiumum buffer size for a device with {GpuType} GPU. Logged whenever
OnDeviceModelService.GetEstimatedPerformanceClass() is called.
</summary>
<token key="GpuType">
<variant name="Discrete" summary="discrete"/>
<variant name="Integrated" summary="integrated"/>
</token>
</histogram>
<histogram name="OnDeviceModel.SystemRAM.{GpuType}" units="MB"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total system memory for a device with {GpuType} GPU. Logged whenever
OnDeviceModelService.GetEstimatedPerformanceClass() is called.
</summary>
<token key="GpuType">
<variant name="Discrete" summary="discrete"/>
<variant name="Integrated" summary="integrated"/>
</token>
</histogram>
<histogram name="OnDeviceModel.TokenCount.{Stage}" units="tokens"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of {Stage} tokens processed by the OnDeviceModel. Logged each
time the OnDeviceModel processes {Stage}.
</summary>
<token key="Stage">
<variant name="Context" summary="context"/>
<variant name="Output" summary="output"/>
</token>
</histogram>
<histogram name="OnDeviceModel.TokensPerSecond.{Stage}" units="tk/s"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The tokens per second seen when processing {Stage}. Logged each time the
OnDeviceModel processes {Stage}.
</summary>
<token key="Stage">
<variant name="Context" summary="context"/>
<variant name="Output" summary="output"/>
</token>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.CriticalRestart"
enum="Boolean" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Reports whether the presence of a Critical-Origin-Trial header caused a
network request restart due to the origin trial not being enabled.
The Critical-Origin-Trial header is only processed for navigation requests
(loading either a main- or sub-frame) using a safe HTTP verb (per section
4.2.1 of RFC 7231). On those requests, this metric will be emitted if the
Critical-Origin-Trial header is present on the response, to report the
decision made by the CriticalOriginTrialThrottle.
The request may still be restarted due to other throttles, even if this
metric reported "false".
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.LevelDbInitSuccess"
enum="Boolean" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Reports status of LevelDB initialization for persistent origin trials. This
is emitted on the Init callback during browser startup, and should not be
false. A high rate of "false" would indicate a problem with the
shared LevelDB database.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.LevelDbLoadSize"
units="origins" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Counts the number of origins in the LevelDb database at time of load during
browser startup.
This metric is for reporting only, and expected to get worse if you are in
the process of launching a persistent origin trial.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.LevelDbLoadSuccess"
enum="Boolean" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Reports status of LevelDB load for persistent origin trials. This is emitted
on the Load callback during browser startup, and should not be false. A high
rate of "false" would indicate a problem with the shared LevelDB
database.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.LevelDbLoadTime" units="ms"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Measures the time to load the data from LevelDb during startup in wall clock
time.
This metric is for reporting only, and expected to get worse if you are in
the process of launching a persistent origin trial.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.OriginLookupsBeforeDbLoad"
units="origins" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Counts the number of lookups for origins arriving to the
LevelDbPersistenceProvider before the database was loaded from disk. Any
such lookup would not have seen the persisted value.
Since the database is loaded asynchronously, it is possible for the browser
to start using the PersistentOriginTrial component before it is fully
loaded. Due to this, it is expected to see this metric at 1, possibly 2.
Large numbers can be caused by a browser restart with a lot of saved tabs
being loaded at the same time.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.OriginsAddedBeforeDbLoad"
units="origins" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Counts the number of origins added to the LevelDbPersistenceProvider before
the persited origins have loaded from disk. This number represents the
number of page loads for pages enrolled in persistent origin trials where
the trial was either not activated or the request had to restart due to the
presence of the Persistent-Origin-Trial header.
</summary>
</histogram>
<histogram name="OriginTrials.PersistentOriginTrial.PartitionSetSize"
units="sites" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Reports the number of partitions a persistent origin trial token has been
stored against. The purpose of the metric is to uncover memory footprint
issues from storing site partitions, and to help decide if an eviction
strategy needs to be put in place. This metric is recorded once for every
stored origin trial token on browser startup.
</summary>
</histogram>
<histogram
name="OriginTrials.PersistentOriginTrial.TokenHasFirstPartyPartition"
enum="Boolean" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/components/origin_trials/OWNERS</owner>
<summary>
Records whether a stored partition token has its own origins eTLD+1 as one
of the partitions. This is being recorded to determine if space can be saved
by making the first-party partition a special case. This metric is recorded
on browser startup when the persisted tokens are loaded from the database.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundEncryption.SupportLevel"
enum="AppBoundEncryptionSupportLevel" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of the current level of support for App-Bound encryption. This is
logged once during browser startup on Windows only.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundProvider.Decrypt.ResultCode" enum="Hresult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result code of the application-bound Decrypt operation. This is logged
once during browser startup on a background thread for supported Windows
installs only, for a client that is decrypting a previously encrypted stored
key, when the App-Bound encryption provider is enabled.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundProvider.Decrypt.ResultLastError"
enum="WinGetLastError" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetLastError code for a failed application-bound Decrypt operation. This
is logged once during browser startup on a background thread for supported
Windows installs only, if the call to Decrypt failed, for a client that is
decrypting a previously encrypted stored key, when the App-Bound encryption
provider is enabled.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundProvider.Encrypt.ResultCode" enum="Hresult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result code of the application-bound Encrypt operation with path
validation. This is logged once during browser startup on a background
thread for supported Windows installs only, for a client that is
initializing a new local state or a previously failing client, when the
App-Bound encryption provider is enabled.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundProvider.Encrypt.ResultLastError"
enum="WinGetLastError" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetLastError code for a failed application-bound Encrypt operation with
path validation. This is logged once during browser startup on a background
thread for supported Windows installs only, if the call to Encrypt failed,
for a client that is initializing a new local state or a previously failing
client, when the App-Bound encryption provider is enabled.
</summary>
</histogram>
<histogram name="OSCrypt.AppBoundProvider.KeyRetrieval.Status"
enum="OSCryptAppBoundKeyRetrievalStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of the App-Bound OSCrypt Async Key Provider reading the key from
persistent storage while being initialized. This is recorded once during
browser startup if the App-Bound Key Provider is enabled, on Windows only.
</summary>
</histogram>
<histogram name="OSCrypt.AsyncInitialization.Result" enum="Boolean"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not OSCrypt Async manages to fully initialize the keyring during
browser process initialization. Recorded once per browser start, if OSCrypt
Async completes the initialization attempt before the browser shuts down.
</summary>
</histogram>
<histogram name="OSCrypt.AsyncInitialization.Time" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time, in ms, that it takes for OSCrypt Async to complete the
attempt to initialize the keyring during browser process initialization.
Recorded once per browser start, if the OSCrypt Async completes the
initialization attempt before the browser shuts down.
</summary>
</histogram>
<histogram name="OSCrypt.BackendUsage" enum="LinuxPasswordStoreUsage"
expires_after="2025-03-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The backend selected for this user and whether it was initialised
successfully.
</summary>
</histogram>
<histogram name="OSCrypt.DPAPIProvider.Status" enum="OSCryptDPAPIKeyStatus"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of the DPAPI OSCrypt Async Key Provider reading the OSCrypt Sync
DPAPI key from pref store when being initialized. This is recorded once
during browser startup if the DPAPI Key Provider is enabled, on Windows
only.
</summary>
</histogram>
<histogram name="OSCrypt.Linux.CanUseLibsecret" enum="BooleanAllowed"
expires_after="2025-08-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
False if libsecret would deadlock when attempting to use the default
keyring. Logged once before libsecret initialization.
</summary>
</histogram>
<histogram name="OSCrypt.Linux.DecryptedWithEmptyKey" enum="Boolean"
expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True, iff the data was not decryptable with the stored encryption key, but
was decryptable with a key generated from an empty string. This is emitted
every time OSCrypt attempts to decrypt a value.
</summary>
</histogram>
<histogram name="OSCrypt.Win.Decrypt.Result" enum="BooleanSuccess"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not the DPAPI Decrypt call to decrypt the OSCrypt key succeeeded.
This is logged once during browser startup on Windows.
</summary>
</histogram>
<histogram name="OSCrypt.Win.Decrypt.Time" units="ms"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time, in ms, that it takes to perform a DPAPI Decrypt call.
This is logged once during browser startup on Windows.
</summary>
</histogram>
<histogram name="OSCrypt.Win.Encrypt.Result" enum="BooleanSuccess"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not the DPAPI Encrypt call to encrypt the OSCrypt key succeeeded.
This is logged once during browser startup on Windows, if there is no stored
key and a new one has to be generated. This data will therefore be biased
towards newer clients. See OSCrypt.Win.Decrypt.Result which contains
unbiased data.
</summary>
</histogram>
<histogram name="OSCrypt.Win.Encrypt.Time" units="ms"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time, in ms, that it takes to perform a DPAPI Encrypt call.
This is logged once during browser startup on Windows, if there is no stored
key and a new one has to be generated. This data will therefore be biased
towards newer clients. See OSCrypt.Win.Decrypt.Time which contains unbiased
data.
</summary>
</histogram>
<histogram name="OSCrypt.Win.KeyDecryptionError" enum="WinGetLastError"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Windows GetLastError after a failure from calling into DPAPI to decrypt
the main key for the os_crypt library on Windows. This is recorded during
the OSCrypt::Init each time the decryption fails. Note that this metric was
not recorded between 2021-08 (M91) and 2024-07 (M128).
</summary>
</histogram>
<histogram name="OSX.ConfirmToQuit" enum="ConfirmToQuit" expires_after="M125">
<owner>[email protected]</owner>
<summary>Usage statistics for the confirm to quit feature.</summary>
</histogram>
<histogram name="OSX.NSException" enum="OSXNSException" expires_after="M125">
<owner>[email protected]</owner>
<summary>
MacOS X NSExceptions seen, common exceptions binned, others in overflow.
</summary>
</histogram>
<histogram name="Ozone.GestureInterpreterLibevdevCros.TouchpadClick.{MaxTime}"
units="mm" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The movement distance when a touchpad performs a physical click lasting
{MaxTime}. Excludes clicks which move more than 10mm, as these are assumed
to be intentional drag gestures. All distances are rounded up to the next
whole number of mm.
</summary>
<token key="MaxTime">
<variant name="150ms" summary="at most 150ms"/>
<variant name="160ms" summary="more than 150ms and at most 160ms"/>
<variant name="170ms" summary="more than 160ms and at most 170ms"/>
<variant name="180ms" summary="more than 170ms and at most 180ms"/>
<variant name="190ms" summary="more than 180ms and at most 190ms"/>
<variant name="200ms" summary="more than 190ms and at most 200ms"/>
<variant name="250ms" summary="more than 200ms and at most 250ms"/>
<variant name="300ms" summary="more than 250ms and at most 200ms"/>
<variant name="350ms" summary="more than 300ms and at most 350ms"/>
<variant name="450ms" summary="more than 350ms and at most 450ms"/>
<variant name="550ms" summary="more than 450ms and at most 550ms"/>
<variant name="650ms" summary="more than 550ms and at most 650ms"/>
<variant name="750ms" summary="more than 650ms and at most 750ms"/>
</token>
</histogram>
<histogram name="Ozone.NeuralStylusReport.ActivePalmTouchCount"
units="touch event count" expires_after="2023-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a stylus is touched to screen, the number of palms on the device at
that time.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.HoldCountAtCancel"
units="touch event" expires_after="2023-09-03">
<owner>[email protected]</owner>
<summary>
The count of the number of held events cancelled when we decide to finally
cancel a stroke. Only reported if events have been held, and will be
positive. Events are only held from PalmDetectionFilter.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.HoldCountAtRelease"
units="touch event" expires_after="2023-09-03">
<owner>[email protected]</owner>
<summary>
The count of the number of held events released at once for a stroke when we
decide to release. Only reported if events have been held, and will be
positive. Events are only held from PalmDetectionFilter.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.PalmTouchCount"
enum="BooleanDetected" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of the number of detected palm touches. Reported when a new palm
touch is detected by either the firmware or the software palm detection.
Consecutive palm touch events will be considered as the same palm touch.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.RepeatedTouchCount"
enum="BooleanDetected" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a repeated touch is detected soon after palm rejection. Reported
when users repeated a touch action within 2 seconds after we rejected the
first action as palm. This only emits true when we detect a repeated touch
but never emits false.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.StylusSessionCount"
enum="BooleanDetected" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of the number of stylus sessions. A stylus session is a series of
stylus events with no more than 5 seconds between them. Reported when a
stylus session is concluded.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.StylusSessionLength"
units="duration" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of stylus sessions. A stylus session is a series of stylus events
with no more than 5 seconds between them. Reported when a stylus session is
concluded.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchGapAfterStylus"
units="duration" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a stylus touch and the first finger touch after it. The
finger touch may or may not be detected as a palm. If the first touch after
a stylus touch is another stylus touch (i.e. no finger touch between them),
record a maximum time (10 seconds) instead. Reported when first new touch is
reported after a stylus touch finishes.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchGapBeforeStylus"
units="duration" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a stylus touch and the last finger touch before it. The
finger touch may or may not still be on the touchscreen, and may or may not
be detected as a palm. Reported when a stylus touch is started on the
touchscreen.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchSessionCount"
enum="BooleanDetected" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The count of the number of touch sessions. A touch session is a series of
touch events with no more than 5 seconds between them. Reported when a touch
session is concluded.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchSessionLength"
units="duration" expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of touch sessions. A touch session is a series of touch events
with no more than 5 seconds between them. Reported when a touch session is
concluded.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchTypeAfterStylus"
enum="TouchType" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of the first finger touch within 500ms before a stylus touch. It
could be finger, palm or none (no touch within 500ms). Reported when a
stylus touch is started on the touchscreen.
</summary>
</histogram>
<histogram name="Ozone.TouchEventConverterEvdev.TouchTypeBeforeStylus"
enum="TouchType" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of the last finger touch within 500ms before a stylus touch. It
could be finger, palm or none (no touch within 500ms). Reported when first
new touch is reported after a stylus touch finishes.
</summary>
</histogram>
<histogram name="P2P.Server.ClientCount" units="count"
expires_after="2021-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of currently connected HTTP clients. This is reported every time
a HTTP client connects.
</summary>
</histogram>
<histogram name="P2P.Server.ContentServedInterruptedMB" units="MB"
expires_after="2021-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of megabytes (1,000,000 bytes) served from the device (via HTTP)
where the client disconnects prematurely. This is reported every time a file
is served and the client disconnects before receiving all data.
</summary>
</histogram>
<histogram name="P2P.Server.FileCount" units="count" expires_after="2021-12-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of files available via p2p. This is reported every time a file is
added or removed to the /var/cache/p2p directory.
</summary>
</histogram>
<histogram name="PageImageService.Android.SalientImageUrlFetchResult{ClientId}"
enum="SalientImageUrlFetchResult" expires_after="2025-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the fetching result of a salient image. The histogram is logged when
an salient image is fetched for the {ClientId}. Android-only.
</summary>
<token key="ClientId" variants="PageImageServiceClientId"/>
</histogram>
<histogram name="PageImageService.Backend.OptimizationGuide.Result{ClientId}"
enum="PageImageServiceResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1456757</component>
<summary>
Records the result of requests to the Optimization Guide Salient Images
backend.
Recorded for each request to Optimization Guide, so the total count of this
UMA should match that bucket count in PageImageService.Backend.
</summary>
<token key="ClientId" variants="PageImageServiceClientId"/>
</histogram>
<histogram name="PageImageService.Backend.Suggest.Result{ClientId}"
enum="PageImageServiceResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457319</component>
<summary>
Records the result of requests to the Suggest backend.
Recorded for each request to Suggest, so the total count of this UMA should
match that bucket count in PageImageService.Backend.
</summary>
<token key="ClientId" variants="PageImageServiceClientId"/>
</histogram>
<histogram name="PageImageService.Backend{ClientId}"
enum="PageImageServiceBackend" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457319</component>
<summary>
Records the backend chosen for the request. For requests with no valid
backend, this is still recorded as the "No Valid Backend" bucket.
Only recorded for requests that have passed the URL consent gate.
</summary>
<token key="ClientId" variants="PageImageServiceClientId"/>
</histogram>
<histogram name="PageImageService.ConsentStatusOnTimeout"
enum="PageImageServiceConsentStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457319</component>
<summary>
Records the result of the URL consent check after timeout has expired.
Recorded for each request which was enqueued by the time when timeout
happened.
</summary>
</histogram>
<histogram name="PageImageService.ConsentStatusRequestCount" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457319</component>
<summary>
Recorded on each URL consent check request. This metric is used to compare
numbers with consent check result in PageImageService.ConsentStatus.
</summary>
</histogram>
<histogram name="PageImageService.ConsentStatus{ClientId}"
enum="PageImageServiceConsentStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<component>1457319</component>
<summary>
Records the result of the URL consent check for this request. The number of
consent check requests is recorded in
PageImageService.ConsentStatusRequestCount.
Note that only success and failure are captured if the "old"
unified consent throttle is used.
</summary>
<token key="ClientId" variants="PageImageServiceClientId"/>
</histogram>
<histogram name="PaintHolding.CommitTrigger2" enum="PaintHoldingCommitTrigger2"
expires_after="2023-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason that a commit was triggered, to enable research into
which event (non-same-origin, FCP, timeout, etc) led to the first commit.
</summary>
</histogram>
<histogram name="PaintHolding.InputTiming4" enum="PaintHoldingInputTiming"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not input arrived before the first paint.
</summary>
</histogram>
<histogram name="Pepper.InterfaceUsed" enum="PepperInterface"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of out-of-process plugin processes that have loaded a particular
PPB interface version.
</summary>
</histogram>
<histogram name="PeriodicBackgroundSync.Event.BatchSize" units="events"
expires_after="2022-07-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of `periodicsync` events which were fired in a batch. A
batch is defined as the set of `periodicsync` events dispatched at the same
time by the BackgroundSyncManager. Periodic syncs usually run in a batch.
</summary>
</histogram>
<histogram name="PeriodicBackgroundSync.Event.FromWakeupTask"
enum="BackgroundSyncWakeupTask" expires_after="2023-04-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the fired `periodicsync` events upon completion orginated
from a background wakeup task or the foreground.
</summary>
</histogram>
<histogram name="PeriodicBackgroundSync.Event.Time" units="ms"
expires_after="2023-09-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time taken to execute a batch of periodicsync events. A batch is defined as
the set of `periodicsync` events dispatched at the same time by the
BackgroundSyncManager. Periodic syncs often run in a batch.
</summary>
</histogram>
<histogram name="PLT.iOS.BrowserInitiatedPageLoadTime2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Page load time for Browser-initiated navigations.
Browser-initiated navigations include all navigations initiated by
interacting with Chrome's UI elements, except for back/forward navigations.
Specifically, typing a URL into the omnibox, tapping the reload button,
loading a bookmark, and loading a page from the reading list (including when
offline) are all considered browser-initiated. Additionally, background
loads for prerendering and reading-list offline sync are also
browser-initiated, as is a reload triggered by switching to a tab whose
WKWebView renderer process was killed by the OS.
This is recorded for successful main-frame navigations (that is, navigations
that don't result in the browser displaying an error page). The recorded
value measures the time from the navigation request being sent to the
renderer process until all frames have fired their load events. For
background loads, the same interval is measured while the page loads and
fires load events in the background; the metric is not recorded again if the
background-loaed page is later displayed in the foreground.
Page loads that require network fetches will be slower than those where all
necessary resources are already present in WebKit's HTTP cache. Reload
navigations where all cached resources are up-to-date are particularly fast,
since they don't require any rendering updates either.
It is possible for a user to interact with a page before all load events
have been fired, so the recorded value should not be interpreted as the time
before the page becomes interactive.
Most things that affect user-perceived page load time on iOS are within
WebKit, not within Chromium/Chrome code. To assess whether a change in this
metric is caused by a WebKit change, split by OS version. WebKit changes
always come with an OS version change. Obviously, aside from WebKit and
Chromium changes, this metric can move due to exogenous factors such as
changes in what type of web page people are looking at or changes in the
implementation of popular websites.
Any navigation that is not considered browser-initiated is considered to be
renderer-initiated (see PLT.iOS.RendererInitiatedPageLoadTime2).
</summary>
</histogram>
<histogram name="PLT.iOS.RendererInitiatedPageLoadTime2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Page load time for Renderer-initiated navigations.
Renderer-initiated navigations are all main-frame navigations that are not
considered to be browser-initiated (see
PLT.iOS.BrowserInitiatedPageLoadTime). Specificially, tapping on links
within web content, navigations triggered by JavaScript, navigations for
restoring tabs on launch, and back/forward navigations are all considered to
be renderer-initiated.
This is recorded for successful main-frame navigations (that is, navigations
that don't result in the browser displaying an error page). However, this is
not recorded when WebKit handles a back/forward navigation using its page
cache (that is, when the DOM representation of the destination is still
loaded in memory from a recent visit), since we don't get the full set of
WebKit navigation callbacks for such navigations. The recorded value
measures the time from the browser process being notified that the
navigation has started, to all frames having fired their load events. The
time that the browser process is notified that the navigation has started is
usually just after a network request is sent, but can be later for
back/forward navigations on sites that use pushState to generate history
entries; in the latter case, the navigation may be almost finished by the
time the browser finds out about it. As such, depending on the cause of the
navigation, different things are measured. Some types will be very fast
(e.g., pushState/replaceState) and others (such as tapping on links) will be
slower. Furthermore, navigations that require network fetches will be slower
than those where all necessary resources are already present in WebKit's
HTTP cache.
It is possible for a user to interact with a page before all load events
have been fired, so the recorded value should not be interpreted as the time
before the page becomes interactive.
Most things that affect user-perceived page load time on iOS are within
WebKit, not within Chromium/Chrome code. To assess whether a change in this
metric is caused by a WebKit change, split by OS version. WebKit changes
always come with an OS version change. Obviously, aside from WebKit and
Chromium changes, this metric can move due to exogenous factors such as
changes in what type of web page people are looking at or changes in the
implementation of popular websites.
</summary>
</histogram>
<histogram base="true" name="PointingStick.Acceleration" enum="BooleanEnabled"
expires_after="2025-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Acceleration setting for pointing sticks (typically TrackPoints, the
miniature red joysticks found in some laptop keyboards). Only reported on
Chrome OS.
Expired from 2021-04-01 to M113. May be missing some data.
</summary>
</histogram>
<histogram base="true" name="PointingStick.PointerSensitivity"
enum="PointerSensitivity" expires_after="2025-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Sensitivity value for pointing sticks (typically TrackPoints, the miniature
red joysticks found in some laptop keyboards). Only reported on Chrome OS.
Expired from 2021-04-01 to M113. May be missing some data.
</summary>
</histogram>
<histogram base="true" name="PointingStick.PrimaryButtonRight"
enum="PointerPrimaryButton" expires_after="2025-06-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Setting for the primary button of pointing sticks (typically TrackPoints,
the miniature red joysticks found in some laptop keyboards). Only reported
on Chrome OS.
Expired from 2021-04-01 to M113. May be missing some data.
</summary>
</histogram>
<histogram name="PrefetchedSignedExchangeCache.Count" units="count"
expires_after="2023-08-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of prefetched signed exchanges in PrefetchedSignedExchangeCache
which is attached to a frame. This metric is recorded when the frame is
deleted or is navigated to different document. This is not recorded when
there is no prefetched signed exchanges.
</summary>
</histogram>
<histogram name="Prefs.JSonStore.SetValueKey" units="hash"
expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the hash of a preference key that is modified. The metric is used to
track which preferences are triggering an update to the preference files on
disk.
Keys are registered within the pref registry (see:
components/prefs/pref_registry.h).
</summary>
</histogram>
<histogram name="Process.Sandbox.DllBlocked" enum="WinTroublesomeDllName"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
HashMetricName of dll in kTroublesomeDlls. Recorded if the dll was seen in
the browser process and added for blocking in a child process.
</summary>
</histogram>
<histogram name="Process.Sandbox.Launch.Error" enum="WinGetLastError"
expires_after="never">
<!-- expires-never: metric needed for diagnosing sandbox issues. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Errors returned while launching sandboxed process on Windows. For decoding
error code please refer to http://goo.gl/fJJiAv.
</summary>
</histogram>
<histogram name="Process.Sandbox.Lowbox.Launch.Error" enum="WinGetLastError"
expires_after="never">
<!-- expires-never: metric needed for diagnosing sandbox issues. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Errors returned while launching lowbox enabled sandboxed process on Windows.
For decoding error code please refer to http://goo.gl/fJJiAv.
Warning: this histogram expired in M87, and was revived in M103; data may be
missing.
</summary>
</histogram>
<histogram name="Process.Sandbox.PreloadLibraryFailed.ErrorCode"
enum="WinGetLastError" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
Records the error result of trying to preload a library before creating a
sandboxed process on Windows. Only recorded if library loading failed.
</summary>
</histogram>
<histogram name="Process.Sandbox.StartSandboxedWin.{Event}Duration"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
Duration of {Event} within StartSandboxedProcess() including the time
Windows spends starting the suspended process. Emitted on a successful
launch of a sandboxed process on Windows. Only emitted where a
high-resolution timer is available (see Windows.HasHighResolutionTimeTicks).
</summary>
<token key="Event">
<variant name="CreatePolicy"/>
<variant name="GeneratePolicy"/>
<variant name="PostSpawnTarget"/>
<variant name="SpawnTarget"/>
<variant name="Total" summary="the total time"/>
</token>
</histogram>
<histogram name="PushMessaging.DeliveryStatus" enum="PushEventStatus"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a Service Worker receives a push message, this records whether the
overall operation was successful, or otherwise the type of error
encountered.
</summary>
</histogram>
<histogram name="PushMessaging.GetRegistrationStatus"
enum="PushGetRegistrationStatus" expires_after="2024-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a webpage asks for details about its current push messaging
registration, this records whether the request is successful, or otherwise
the type of error encountered.
This histogram was expired between 2022-06-26 and 2023-08-04.
</summary>
</histogram>
<histogram name="PushMessaging.RegistrationStatus"
enum="PushRegistrationStatus" expires_after="2024-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a webpage registers for push messaging, this records whether the
request is successful, or otherwise the type of error encountered.
This histogram was expired between 2022-06-26 and 2023-08-04.
</summary>
</histogram>
<histogram name="PushMessaging.SilentNotification" enum="SilentPushEvent"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a new silent push message is received, this records wether a generic
notification is shown or not. Additionally it records if the "No silent
pushes" enforcement is skipped.
</summary>
</histogram>
<histogram name="PushMessaging.UnregistrationReason"
enum="PushUnregistrationReason" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When unregistering a website from push messaging, this records the reason
why it is being unregistered.
</summary>
</histogram>
<histogram name="PushMessaging.UnregistrationStatus"
enum="PushUnregistrationStatus" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When unregistering a website from push messaging, this records whether the
request is successful, or otherwise the type of error encountered.
This histogram was expired between 2022-06-26 and 2023-08-04.
</summary>
</histogram>
<histogram name="ReadingList.AddOrReplaceEntry" enum="ReadingListStorageState"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When an entry is added or replaced in the reading list, records in which
storage this happened.
</summary>
</histogram>
<histogram name="ReadingList.BookmarkBarState.On{Frequency}AddToReadingList"
enum="BookmarkBarState" expires_after="2022-11-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The state of the bookmark bar recorded {Frequency} a user adds to the
reading list. (Desktop only).
</summary>
<token key="Frequency">
<variant name="Every" summary="every time"/>
<variant name="First" summary="the first time"/>
</token>
</histogram>
<histogram name="ReadingList.ContextMenu" enum="ReadingListContextMenuActions"
expires_after="2025-03-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action chosen by the user after displaying the reading list context
menu.
</summary>
</histogram>
<histogram name="ReadingList.Download.Failures" units="count"
expires_after="2025-03-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of tries before the download of the entry is successful.
</summary>
</histogram>
<histogram name="ReadingList.Download.Status" enum="ReadingListDownloadStatus"
expires_after="2025-03-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Final status of the download of a reading list entry.</summary>
</histogram>
<histogram name="ReadingList.FirstReadAgeOnDeletion" units="hours"
expires_after="2025-03-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time since the first read of the reading list entry getting deleted. 0 if it
has never been read.
</summary>
</histogram>
<histogram name="ReadingList.MarkEntryRead" enum="ReadingListStorageState"
expires_after="2024-10-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a reading list entry is marked as read, records in which storage this
happened.
</summary>
</histogram>
<histogram name="ReadingList.OfflineVersionDisplayed" enum="Boolean"
expires_after="2025-03-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Whether the displayed version is the offline one.</summary>
</histogram>
<histogram name="ReadingList.Read.AgeOnDeletion" units="hours"
expires_after="2025-03-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time since the creation of the read reading list entry getting deleted.
</summary>
</histogram>
<histogram name="ReadingList.Read.AgeOnFirstRead" units="hours"
expires_after="2025-03-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time since the creation of the read reading list entry being read for the
first time.
</summary>
</histogram>
<histogram name="ReadingList.Read.Number" units="count"
expires_after="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of read entries in reading list.</summary>
</histogram>
<histogram name="ReadingList.Unread.AgeOnDeletion" units="hours"
expires_after="2025-03-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time since the creation of the unread reading list entry getting deleted.
</summary>
</histogram>
<histogram name="ReadingList.Unread.Number" units="count"
expires_after="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of unread entries in reading list.</summary>
</histogram>
<histogram name="ReadingList.WebUI.InitialEntriesRenderTime" units="ms"
expires_after="2022-11-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time taken to load the Read Later WebUI and render (at least)
the initial list of entries. This is roughly equivalent to 'time to first
meaningful paint' for the Read Later UI.
</summary>
</histogram>
<histogram name="ReadingList.WebUI.LoadCompletedTime" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad event
and the RenderFrameHost DocumentOnLoadCompleted event for the Read Later
WebUI page.
</summary>
</histogram>
<histogram name="ReadingList.WebUI.LoadDocumentTime" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad and
DidFinishDocumentLoad events for the Read Later WebUI page.
</summary>
</histogram>
<histogram name="ReadingList.WindowDisplayedDuration" units="ms"
expires_after="2022-11-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the amount of time between when a reading list bubble is opened and
when it is closed. It does so by recording the difference in time between
when the the hosting WebUIBubbleDialogView's Widget is first created and
when the widget is destroyed. This is logged on Desktop only.
</summary>
</histogram>
<histogram name="ReadingList.{ReadStatus}.Count.{RecordedAt}.{StorageState}"
units="count" expires_after="2025-08-25">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of {ReadStatus} items in the reading list {StorageState}.
Recorded {RecordedAt}.
</summary>
<token key="ReadStatus">
<variant name="Read" summary="read"/>
<variant name="Unread" summary="unread"/>
</token>
<token key="RecordedAt">
<variant name="OnModelLoaded"
summary="when the reading list model is loaded"/>
<variant name="OnUMAUpload" summary="every UMA upload"/>
</token>
<token key="StorageState">
<variant name="AccountStorage" summary="in account storage"/>
<variant name="LocalStorage" summary="in local storage"/>
<variant name="LocalStorageSyncing"
summary="in local storage which is being synced"/>
</token>
</histogram>
<histogram name="ReduceAcceptLanguage.AcceptLanguageNegotiationRestart"
enum="AcceptLanguageNegotiationRestart" expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of requests restarted or the reason why not restarted when reducing
accept-language HTTP header.
</summary>
</histogram>
<histogram name="ReduceAcceptLanguage.AcceptLanguagePrefValueIsEmpty"
enum="BooleanAvailable" expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measure how often user accept-language is empty when reading accept-language
from prefs.
</summary>
</histogram>
<histogram name="ReduceAcceptLanguage.ClearLatency" units="ms"
expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency (in milliseconds) to clear the reduce accept language for a
given origin in the language negotiation cache. This histogram is recorded
when clearing persisted value from PrefService.
</summary>
</histogram>
<histogram name="ReduceAcceptLanguage.FetchLatencyUs" units="microseconds"
expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency (in microseconds) to fetch the reduce accept language for a
given origin in the language negotiation cache. This histogram is recorded
when fetching persisted value from PrefService.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="ReduceAcceptLanguage.StoreLatency" units="ms"
expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency (in milliseconds) to store the reduced accept language header
value for a given origin in the language negotiation cache. This histogram
is recorded when navigation responses are being processed.
</summary>
</histogram>
<histogram name="ReduceAcceptLanguage.UpdateSize" units="count"
expires_after="M135">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of reduce accept language that need to be persisted to the disk.
Recorded by the renderer. This histogram is recorded when navigation
responses are being processed.
</summary>
</histogram>
<histogram name="RenderTextHarfBuzz.GetFallbackFontsTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time retrieve the fallback fonts on the system used for
RenderTextHarfBuzz::ShapeRuns. This metric is known to be quite slow on bad
cases.
</summary>
</histogram>
<histogram name="RenderTextHarfBuzz.GetFallbackFontTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time retrieve the preferred fallback font on the system used for
RenderTextHarfBuzz::ShapeRuns. Fallback font is determined based on the
input text and locale.
</summary>
</histogram>
<histogram name="RenderTextHarfBuzz.MissingGlyphCount" units="count"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Count of missing glyphs at the end of text shaping.</summary>
</histogram>
<histogram name="RenderTextHarfBuzz.ShapeRunsFallback" enum="ShapeRunFallback"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric records the fallback font mechanism required to complete the
shaping of a text.
</summary>
</histogram>
<histogram name="RenderTextHarfBuzz.ShapeRunsWithFallbackFontsTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time to perform RenderTextHarfBuzz::ShapeRuns with retrieved the fallback
fonts. This metric is known to be quite slow on bad cases.
</summary>
</histogram>
<histogram name="RenderViewContextMenu.OpenLinkAsProfile" enum="OpenLinkAs"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count the clicks and displays of renderer view context menu item Open Link
as Profile, as well as Open Link in Incognito Window for comparison. If Open
Link as Profile is a submenu, it is counted as displayed even if the submenu
is not open, and only counted one time regardless the amount of items in the
submenu.
</summary>
</histogram>
<histogram name="RenderViewContextMenu.Shown" enum="RenderViewContextMenuItem"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Count of renderer view context menu items shown.</summary>
</histogram>
<histogram name="RenderViewContextMenu.Used" enum="RenderViewContextMenuItem"
expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of renderer view context menu items (Only commands now) used. Note
that this counts cases where the context menu item is used, but the item has
no effect (eg. autofill commands have no effect if the RenderFrameHost is
null). Update: as of M122, setting text direction via the context menu may
also have no effect if the RFH is null, though we will continue to count in
this case.
The user action RenderViewContextMenu.Used.IDC_CONTENT_CONTEXT_SEARCHWEBFOR
is also logged in case that IDC_CONTENT_CONTEXT_SEARCHWEBFOR is logged to
this histogram.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
</histogram>
<histogram name="ReportingAndNEL.ErrorInitializeDB"
enum="SqliteLoggedResultCode" expires_after="2024-07-21">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The exact database error encountered when initializing the Reporting and NEL
database, if initialization fails catastrophically. This is recorded if the
database initialization fails catastrophically when the DB initialization
attempt is made, which typically occurs upon the first network request after
startup. Catastrophic errors are defined in sql::IsErrorCatastrophic.
</summary>
</histogram>
<histogram name="ReportingAndNEL.NumberOfLoadedNELPolicies"
units="policy count" expires_after="2023-06-25">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The number of NEL policies loaded from the store. This is recorded when the
NetworkErrorLoggingService requests a load from the backing store, which
typically happens upon the first network request after startup.
</summary>
</histogram>
<histogram name="ReportingAndNEL.NumberOfLoadedNELPolicies2"
units="policy count" expires_after="2023-06-25">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The number of NEL policies loaded from the store. This is recorded when the
NetworkErrorLoggingService requests a load from the backing store, which
typically happens upon the first network request after startup.
</summary>
</histogram>
<histogram name="ReportingAndNEL.NumberOfLoadedReportingEndpointGroups2"
units="endpoint group count" expires_after="2024-09-15">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The number of Reporting endpoint groups loaded from the store. This is
recorded when the ReportingCache requests a load from the backing store,
which happens upon receipt of the first Report-To header or queued report
after startup.
</summary>
</histogram>
<histogram name="ReportingAndNEL.NumberOfLoadedReportingEndpoints2"
units="endpoint count" expires_after="2024-09-15">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The number of Reporting endpoints loaded from the store. This is recorded
when the ReportingCache requests a load from the backing store, which
happens upon receipt of the first Report-To header or queued report after
startup.
</summary>
</histogram>
<histogram name="ReportingAndNEL.TimeInitializeDB" units="ms"
expires_after="2023-09-10">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The time (ms) taken to initialize the Reporting and NEL DB. This is recorded
when the DB is initialized, which typically occurs upon the first network
request after startup.
</summary>
</histogram>
<histogram name="ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome"
enum="CrashRepHandlingOutcome" expires_after="2025-01-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
Tracks the outcome of crash reports for unresponsive renderers. Including
when error dialogs are suppressed (e.g., running with --noerrdialogs),
specifically categorizing the reports as either potentially queued for
sending or dropped. This metric helps evaluate the potential impact of
automatically sending crash reports in the scenario where the error dialogs
are suppressed, aiming to improve crash report send rates without
overwhelming the system with duplicates.
Recorded once for each visible WebContents when it is observed to be
unresponsive.
</summary>
</histogram>
<histogram name="ReportingAndNEL.WinGetLastErrorInitializeDB"
enum="WinGetLastError" expires_after="2024-07-14">
<owner>[email protected]</owner>
<owner>src/net/reporting/OWNERS</owner>
<summary>
The result of calling ::GetLastError() if initializing the Reporting and NEL
database fails catastrophically. This is recorded, on Windows only, if the
database initialization fails when the DB initialization attempt is made,
which typically occurs upon the first network request after startup.
Catastrophic errors are defined in sql::IsErrorCatastrophic.
</summary>
</histogram>
<histogram name="ResourceScheduler.RequestQueuingDuration" units="ms"
expires_after="2022-01-02">
<owner>[email protected]</owner>
<summary>
The amount of time the ResourceScheduler queued a request. Recorded in
separate histograms based on the request loading priority at the time the
request was dequeued.
</summary>
</histogram>
<histogram name="SB2.DownloadChecks" enum="SB2DownloadChecks"
expires_after="2025-08-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records results of SafeBrowsing download url check. Warning: this histogram
was expired from M78 to M91. Data may be missing.
This metric is used to populate a dashboard on go/crsb-site.
</summary>
</histogram>
<histogram name="SB2.DownloadUrlCheckDuration" units="ms"
expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for SafeBrowsing to check a download url. Warning: this
histogram was expired from M78 to M91. Data may be missing.
</summary>
</histogram>
<histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many URLs were actually checked vs skipped via
RemoteSafeBrowsingDatabaseManager because the scheme is not supported by
Safe Browsing. Incremented each time a resource load is initiated.
</summary>
</histogram>
<histogram name="SB2.RemoteCall.CanCheckUrl.{CheckType}"
enum="BooleanCanCheckUrl" expires_after="2025-01-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many URLs were actually checked by {CheckType} vs skipped via
RemoteSafeBrowsingDatabaseManager because the scheme is not supported by
Safe Browsing. Incremented each time a resource load is initiated. Different
check types are not directly comparable because hash real time checks have
applied pre-filtering before this histogram is logged while hash database
checks haven't.
</summary>
<token key="CheckType">
<variant name="HashDatabase" summary="hash database check"/>
<variant name="HashRealTime" summary="hash real time check"/>
</token>
</histogram>
<histogram name="SB2.RemoteCall.CheckDelta" units="microseconds"
expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The microseconds between sending the Safe Browsing API call and receiving
the response. Logged in java code and does not include any thread hops or
extra work. Note that this does include task queue time to respond to the
IPC (and that queue time is often non-trivial).
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="SB2.RemoteCall.Elapsed" units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Latency of URL-classification API calls from Chrome via
RemoteSafeBrowsingDatabaseManager, logged per-request. This includes the
time to go through JNI, check the URL, and return the result and includes
several thread hops betwetween IO and UI threads. The resource-load will not
necessarily be delayed this much (see SB2.Delay for that).
</summary>
</histogram>
<histogram name="SB2.RemoteCall.InternalErrorStatusCode2"
enum="GooglePlayServicesConnectionResult" expires_after="never">
<!-- expires-never: This tracks the result of connecting to GmsCore for
Safe Browsing lookups, which is critical for security. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status code provided by GmsCore if it is unable to respond to a URL
check request due to incorrect initialization, not being ready, etc. Logged
on each URL check that hits the internal error condition. The total number
of these should add up to the INTERNAL_ERROR reports under
SB2.RemoteCall.Result.
</summary>
</histogram>
<histogram name="SB2.RemoteCall.Result" enum="SB2RemoteCallResult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Result of URL-classification API calls from Chrome via
RemoteSafetyNetApiHandler. Logged after each URL is judged safe/not-safe, or
hits a deadline. The INTERNAL_ERROR cases are further classified under
SB2.RemoteCall.InternalErrorStatusCode.
</summary>
</histogram>
<histogram name="SBIRS.DiscardedIncident" enum="IncidentType"
expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident discarded by the safe browsing incident reporting
service as a result of profile or service destruction.
</summary>
</histogram>
<histogram name="SBIRS.DroppedIncident" enum="IncidentType"
expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident given to the safe browsing incident reporting service
but dropped as a result of not participating in safe browsing.
</summary>
</histogram>
<histogram name="SBIRS.Incident" enum="IncidentType" expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident included in an incident report by the safe browsing
incident reporting service.
</summary>
</histogram>
<histogram name="SBIRS.NoDownloadIncident" enum="IncidentType"
expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident pruned by the safe browsing incident reporting service
as a result of not having a matching binary download.
</summary>
</histogram>
<histogram name="SBIRS.PrunedIncident" enum="IncidentType"
expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident pruned from a report in the safe browsing incident
reporting service as a result of having previously been reported.
</summary>
</histogram>
<histogram name="SBIRS.ReceivedIncident" enum="IncidentType"
expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of incident received by the safe browsing incident reporting
service.
</summary>
</histogram>
<histogram name="SBIRS.ReportPayloadSize" units="bytes" expires_after="never">
<!-- expires-never: This tracks health of the incident reporting feature and
should be kept until we remove incident reporting. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The size, in bytes, of a safe browsing incident report.</summary>
</histogram>
<histogram name="SBIRS.UploadResult" enum="ReportProcessingResult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
The result of an attempted report upload by the safe browsing incident
reporting service.
</summary>
</histogram>
<histogram name="ScreenLocker.AuthenticationFailure" enum="UnlockType"
expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS lock screen regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
What type of authentication was attempted when the user failed to unlock the
lock screen.
</summary>
</histogram>
<histogram name="ScreenLocker.AuthenticationFailureTime" units="ms"
expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS lock screen regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The time spent for authentication in case of a failure.</summary>
</histogram>
<histogram name="ScreenLocker.AuthenticationSuccess" enum="UnlockType"
expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS lock screen regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
What type of authentication was attempted when the user successfully
unlocked the lock screen.
</summary>
</histogram>
<histogram name="ScreenLocker.AuthenticationSuccessTime" units="ms"
expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS lock screen regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The time spent for authentication in case of a success.</summary>
</histogram>
<histogram name="ScreenLocker.ScreenLockTime" units="ms" expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS lock screen regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The time spent before the screen locker is ready.</summary>
</histogram>
<histogram name="ScreenLocker.{LockState}.Duration" units="ms"
expires_after="2023-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration for the screen to be in locked/unlocked state. Recorded inside
ScreenlockMonitor, when the screen lock state changes.
</summary>
<token key="LockState">
<variant name="Locked" summary="screen was locked in this duration."/>
<variant name="Unlocked" summary="screen was unlocked in this duration."/>
</token>
</histogram>
<histogram name="Servicification.Startup2" enum="ServicificationStartupMode"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Histogram of how Chrome is launched, either in ServiceManager only mode or
as full browser, as well as either cold start or warm start. See
go/servicification_startup_metrics for more details.
</summary>
</histogram>
<histogram name="Servicification.Startup3" enum="ServicificationStartupMode"
expires_after="2025-02-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Histogram of how Chrome is launched, either in ServiceManager only mode or
as full browser, as well as either cold start or warm start. See
go/servicification_startup_metrics for more details. The UMA data is cached
in the SharedPreference compared with Servicification.Startup2, which might
lose some data when Chrome is running in the ServiceManager only mode.
</summary>
</histogram>
<histogram name="Setup.Install.LzmaUnPackStatus" enum="UnPackStatus"
expires_after="2025-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Record the status of unpacking the contents of a 7z file.</summary>
</histogram>
<histogram name="Setup.Install.PeakPagefileUsage" units="KB"
expires_after="never">
<!-- expires-never: used to monitor memory usage of setup installer. -->
<owner>[email protected]</owner>
<summary>
The peak page file usage by setup.exe in KB during install or uninstall
attempt.
</summary>
</histogram>
<histogram name="Setup.Install.PeakWorkingSetSize" units="KB"
expires_after="never">
<!-- expires-never: used to monitor memory usage of setup installer. -->
<owner>[email protected]</owner>
<summary>
The peak working set size of setup.exe in KB during install or uninstall
attempt.
</summary>
</histogram>
<histogram name="Setup.Install.Result" enum="SetupInstallResult"
expires_after="never">
<!-- expires-never: Fundamental metric used to gague overall failure rates. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The final exit-result of the entire run of setup.exe on Windows.
</summary>
</histogram>
<histogram name="ShortcutsProvider.DatabaseSize" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
The number of entries in shortcuts backend's database when initialized,
which happens during profile load.
</summary>
</histogram>
<histogram name="Shutdown.BrowserExit.Time2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time duration for shutdown initiated by the browser exit menu command. The
duration covers from the shutdown trigger to the deletion of the
BrowserImpl. Note: Android does not have shutdown metrics.
</summary>
</histogram>
<histogram name="Shutdown.EndSession.Time2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time duration for shutdown initiated by an end session (user logs off, shuts
down or reboots without explicitly exiting).The duration covers from the
shutdown trigger to the deletion of the BrowserImpl. Note: Android does not
have shutdown metrics.
</summary>
</histogram>
<histogram name="Shutdown.NotValid.Time2" units="ms" expires_after="2023-09-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time for shutdown for a not valid exit. This situation happen when a chrome
process is already running and the process is terminated after the process
singleton rendez-vous. The duration covers from the shutdown trigger to the
deletion of the BrowserImpl. Note: Android does not have shutdown metrics.
</summary>
</histogram>
<histogram name="Shutdown.OtherExit.Time2" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time duration for clean shutdown that are not catched by other not initiated
by the users. The duration covers from the shutdown trigger to the deletion
of the BrowserImpl. Note: Android does not have shutdown metrics.
</summary>
</histogram>
<histogram name="Shutdown.ShutdownType2" enum="ShutdownType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The action type that triggered a browser shutdown. The metric is emitted
just after BrowserImpl deletion. Note: Android does not have shutdown
metrics.
In M-108, the detection of shutdown due to early exit paths changed and
these shutdowns will be moved from the NotValid bucket to the Other bucket.
</summary>
</histogram>
<histogram name="Shutdown.SilentExit.Time2" units="ms"
expires_after="2024-05-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time for shutdown for a silent exit. The duration covers from the shutdown
trigger to the deletion of the BrowserImpl. Note: Android does not have
shutdown metrics.
</summary>
</histogram>
<histogram name="Shutdown.WindowClose.Time2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time for shutdown initiated by the last browser window being closed. The
duration covers from the shutdown trigger to the deletion of the
BrowserImpl. Note: Android does not have shutdown metrics.
</summary>
</histogram>
<histogram name="SignedExchange.CertificateFetch.CacheHit"
enum="BooleanCacheHit" expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the fetched Signed Exchange certchain was served from HTTP cache
or not.
</summary>
</histogram>
<histogram name="SignedExchange.CertVerificationResult" enum="NetErrorCodes"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the result of Signed Exchange cert verification, including success.
</summary>
</histogram>
<histogram name="SignedExchange.CTVerificationResult" enum="CTComplianceStatus"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the result of Signed Exchange CT verification, including success.
</summary>
</histogram>
<histogram name="SignedExchange.FallbackRedirectLoop" enum="BooleanDetected"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records true when a fallback redirect of Signed Exchange has failed with
ERR_TO_MANY_REDIRECTS.
Total count of SignedExchange.LoadResult2 should be used as a baseline of
this histogram.
</summary>
</histogram>
<histogram name="SignedExchange.LoadResult2" enum="SignedExchangeLoadResult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of loading a resource from Signed HTTP Exchange. Emitted
each time a response is handled as Signed Exchange.
</summary>
</histogram>
<histogram name="SignedExchange.OCSPResponseStatus" enum="OCSPResponseStatus"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of OCSP response in Signed Exchange certificates. Reported each
time Signed Exchange's OCSP check is performed.
</summary>
</histogram>
<histogram name="SignedExchange.OCSPRevocationStatus"
enum="OCSPRevocationStatus" expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the revocation status of OCSP response in Signed Exchange
certificates. Emitted when Signed Exchange's OCSP check is performed, but
only when an up-to-date OCSP response was stapled.
</summary>
</histogram>
<histogram name="SignedExchange.Prefetch.LoadResult2"
enum="SignedExchangeLoadResult" expires_after="2023-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the prefetched Signed Exchange was properly formatted and passed
verification steps. Reported for each completed SignedExchange prefetch.
</summary>
</histogram>
<histogram name="SignedExchange.SignatureVerificationError.Expired"
units="seconds" expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when Signed Exchange signature was expired. Records the time delta
between current time and signature's "expires" value.
</summary>
</histogram>
<histogram name="SignedExchange.SignatureVerificationError.NotYetValid"
units="seconds" expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when Signed Exchange signature was not yet valid. Records the time
delta between current time and signature's "date" value.
</summary>
</histogram>
<histogram name="SignedExchange.SignatureVerificationResult"
enum="SignedExchangeSignatureVerificationResult" expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the result of Signed Exchange signature verification, including
success.
</summary>
</histogram>
<histogram name="SignedExchange.Time.CertificateFetch.Failure" units="ms"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time elapsed to fetch certificate chain from certUrl, for
which the fetch has failed.
</summary>
</histogram>
<histogram name="SignedExchange.Time.CertificateFetch.Success" units="ms"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time elapsed to fetch certificate chain from certUrl, for
which the fetch has succeeded.
</summary>
</histogram>
<histogram name="SignedExchange.Time.SignatureVerify" units="ms"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time that elapsed during
SignedExchangeSignatureVerifier::Verify.
</summary>
</histogram>
<histogram name="SignedExchange.TimeUntilExpiration" units="seconds"
expires_after="2023-03-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of seconds until the Signed Exchange's expiration time. Recorded when
Signed Exchange signature verification is performed, and emitted only for
Signed Exchanges within the validity period.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.Behaviour"
enum="SiteIsolatedCodeCacheJSBehaviour" expires_after="2025-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The behaviour of site isolated javascript code cache recorded for each cache
transaction. It records if the request was serviced and if serviced how it
was serviced for ex: hit, miss, update.
Warning: this histogram was expired from 2022-07-24 to 2023-04-03; data may
be missing.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.FetchCodeCache" units="ms"
expires_after="2023-10-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time spent to fetch a code cache. Recorded only for a JS code
cache, and recorded only when a non-empty code cache is found.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.Hit" enum="Boolean"
expires_after="2023-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Represents whether fetching from the code cache succeeded. Recorded when the
code cache result gets available.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.MemoryBackedCodeCachePotentialImpact"
units="Milliseconds" expires_after="2023-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time that could be saved if we had a memory-backed code cache.
Recorded when the code cache result gets available.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.PotentialMemoryBackedCodeCacheHit"
enum="Boolean" expires_after="2023-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Represents whether fetching from the memory-backed code cache would succeed.
Recorded when the code cache result gets available.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.PotentialMemoryBackedCodeCacheSize2"
units="counts" expires_after="2024-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Represents the (hypothetical) size of the memory-backed code cache. Recorded
for every 5 minutes.
</summary>
</histogram>
<histogram name="SiteIsolatedCodeCache.JS.WebUI.Behaviour"
enum="SiteIsolatedCodeCacheJSBehaviour" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The behaviour of site isolated WebUI JS code cache recorded for each cache
transaction. It records if the request was serviced and if serviced how it
was serviced for ex: hit, miss, update.
</summary>
</histogram>
<histogram
name="SiteIsolatedCodeCache.JS.WebUI.{WebUIHostname}.Origin.Behaviour"
enum="SiteIsolatedCodeCacheJSBehaviour" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The behaviour of site isolated WebUI JS code cache recorded for each cache
transaction for the WebUI origin {WebUIHostname}. It records if the request
was serviced and if serviced how it was serviced (eg hit, miss, update).
</summary>
<token key="WebUIHostname" variants="WebUIHostname"/>
</histogram>
<histogram
name="SiteIsolatedCodeCache.JS.WebUI.{WebUIHostname}.Resource.Behaviour"
enum="SiteIsolatedCodeCacheJSBehaviour" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The behaviour of site isolated WebUI JS code cache recorded for each cache
transaction for a resource under the WebUI host {WebUIHostname}. It records
if the request was serviced and if serviced how it was serviced (eg hit,
miss, update).
</summary>
<token key="WebUIHostname" variants="WebUIHostname"/>
</histogram>
<histogram name="SiteIsolatedCodeCache.WASM.Behaviour"
enum="SiteIsolatedCodeCacheWASMBehaviour" expires_after="2025-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The behaviour of site isolated web assembly code cache recorded for each
cache transaction during WASM compilation. It records if the request was
serviced and if serviced how it was serviced for ex: hit, miss, update.
Warning: this histogram was expired from 2020-04-19 to 2023-04-03; data may
be missing.
</summary>
</histogram>
<histogram name="Skia.SubmitRenderPasses" units="renderpasses"
expires_after="2023-07-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Skia render passes sent to the GPU during a GrContext::submit
call. The max value that is sent here is 100 so anything in the 100 bucket
actually includes render pass counts of 100+. Though we don't expect to be
reaching 100 render passes often. This is collected each time we submit to
the GPU in Skia.
</summary>
</histogram>
<histogram name="Skia.VulkanMemoryAllocator.AmountAllocated" units="KB"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total amount of memory that the VulkanMemoryAllocator used by Skia's
Vulkan backend has allocated. This is GPU memory for VkImages and VkBuffers.
Note that the allocator may be shared with other users outside of Skia and
this amount includes their uses as well. This is collected each time we
request an allocation from Skia.
</summary>
</histogram>
<histogram name="Snackbar.Shown" enum="SnackbarIdentifier"
expires_after="never">
<!-- expires-never: Required as long as snackbars exist. -->
<owner>[email protected]</owner>
<owner>src/chrome/browser/ui/messages/OWNERS</owner>
<summary>
Records the identifier of a snackbar every time one is shown.
</summary>
</histogram>
<histogram name="SpellCheck.api.async" units="code units"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of text checked via async checking.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.api.check" units="code units"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of text checked by spellCheck. No replacement suggestions were
requested.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.api.check.suggestions" units="code units"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of text checked by spellCheck. Replacement suggestions were
requested.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.api.showUI" enum="BooleanEnabled"
expires_after="M124">
<owner>[email protected]</owner>
<summary>
The number of times the platform spelling UI was enabled/disabled.
</summary>
</histogram>
<histogram name="SpellCheck.CheckedWords" units="words"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of words checked within a session.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.CheckedWordsPerHour" units="words"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The average number of words checked per hour. Sampled every 30 minutes.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.Enabled2" enum="BooleanEnabled"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of sessions that started with spellchecking enabled. Recorded
only for regular profiles. (Not recorded on guest profiles for example.)
</summary>
</histogram>
<histogram name="SpellCheck.MisspelledWords" units="words"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of misspelled words within a session.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.ReplacedWords" units="words"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of misspelled-but-replaced words within a session.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.ShownSuggestions" units="suggestions"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of occurrences that shows spelling suggestion within a session.
This is incremented and logged when a context menu with spelling suggestions
is shown for a misspelled word.
Warning: this histogram was expired from M83 to M107; data may be missing.
</summary>
</histogram>
<histogram name="SpellCheck.SpellingService.Enabled2" enum="BooleanEnabled"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the user has opted in to asking Google for spelling suggestions.
Recorded only for regular profiles. (Not recorded on guest profiles for
example.) Recorded both when spelling is initialized and when the preference
is changed.
</summary>
</histogram>
<histogram name="SpellCheck.SpellingService.RequestDuration" units="ms"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The elapsed time, in ms, between the moment the SimpleURLLoader starts
downloading the request and the moment the SimpleURLLoader callback is
invoked after the request finishes, whether an error or a success.
</summary>
</histogram>
<histogram name="SpellCheck.SpellingService.RequestHttpResponseCode"
enum="HttpResponseCode" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The HTTP code of Spelling service responses.</summary>
</histogram>
<histogram name="SpellCheck.SpellingService.RequestResultType"
enum="ServiceRequestResultType" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Describes the results returned by the Spelling service by assigning them to
one of three high-level buckets: request/service error, success with no
suggestions, and success with spelling suggestions.
</summary>
</histogram>
<histogram name="SpellCheck.SuggestionHitRatio" units="%"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of replacement executions within suggestion occurrences.
</summary>
</histogram>
<histogram name="SpellCheck.UniqueWords" units="words" expires_after="M124">
<owner>[email protected]</owner>
<summary>The number of unique checked words within a session.</summary>
</histogram>
<histogram base="true" name="Spellcheck.Windows.ChromeLocalesSupport2"
units="locales" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many languages are added to Chrome by the user but are not
supported for spell check (today Chrome only supports a hard-coded list of
locales for spell check). Recorded only for regular profiles. (Not recorded
on guest profiles for example.)
This is a measure of the potential impact of adding support for non-Hunspell
locales in the spell check settings. This also helps answer the following
question: should the Chrome spell check settings raise awareness of Windows
language packs and / or link to documentation describing how to install a
Windows language pack?
This is recorded once during spell check initialization, and then once each
time the user changes their Chrome languages.
</summary>
</histogram>
<histogram base="true" name="Spellcheck.Windows.SpellcheckLocalesSupport2"
units="locales" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Of all the currently enabled spell check languages, counts how many are
supported by the different spell checkers (Hunspell and the Windows OS).
Recorded only for regular profiles. (Not recorded on guest profiles for
example.)
This helps measure the impact and reach of the native spell checker
integration.
This is recorded once during spell check initialization, and then once each
time the user changes their enabled spell check languages.
</summary>
</histogram>
<histogram base="true" name="Spellcheck.Windows.SpellcheckRequestDuration"
units="ms" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to perform one spell check end to end. The start
time is taken just before invoking Hunspell or the native spell checker (via
Mojo), and the end time is taken just before invoking the Blink spell check
callback.
This is recorded every time a spell check is performed.
</summary>
</histogram>
<histogram base="true" name="Spellcheck.Windows.SuggestionGatheringDuration"
units="ms" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to generate spelling suggestions when a user
right clicks a misspelled word. The start time is taken just before invoking
Hunspell for the suggestions, and the end time is taken just after the final
suggestion list is constructed.
This is recorded every time the user opens the context menu on a misspelled
word, but only if the suggestions hadn't been pre-generated (which happens
when all spell check locales are supported by the OS spell checker).
</summary>
</histogram>
<histogram name="SSL.Experimental.SubresourceResponse"
enum="SSLSubresourceResponseType" expires_after="2023-07-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The histogram is being used to track the number of messages
(content::mojom::FrameHost::SubresourceResponseStarted IPCs) resulting in
no-op (i.e. returning without doing anything) but requiring an IPC vs
messages which revoke exceptions after seeing a good certificate when
calling SSLManager::DidStartResourceResponse() from
RenderFrameHostImpl::SubresourceResponseStarted(). We are not interested in
calls to SSLManager::DidStartResourceResponse() from ReadyToCommitNavigation
since they don't involve mojo messages. From local benchmarks, we observe
this request causes significant IPC chatter, and this histogram will help us
understand it better.
</summary>
</histogram>
<histogram name="SSORecallPromo.AccountsAvailable" units="units"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of accounts available for Single Sign On with the current device,
recorded at the time the SSO Promo is shown.
</summary>
</histogram>
<histogram name="SSORecallPromo.PromoAction" enum="SSOPromoUserAction"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Action the user takes when the Single Sign On promotion is shown.
</summary>
</histogram>
<histogram name="SSORecallPromo.PromoSeenCount" units="units"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of times the promotion has been seen on the current device.
</summary>
</histogram>
<histogram name="Style.InvalidationTime" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
Microseconds spent in StyleEngine::InvalidateStyle. Only samples from high
resolution timers are recorded.
</summary>
</histogram>
<histogram name="Style.RebuildLayoutTreeTime" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
Microseconds spent in RebuildLayoutTree called from Document::UpdateStyle.
</summary>
</histogram>
<histogram name="Style.RecalcTime" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
Microseconds spent in RecalcStyle called from Document::UpdateStyle.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.BundleFetchErrorCode"
enum="NetErrorCodes" expires_after="2024-11-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The net error code recorded when request for a subresource web bundle was
failed.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.ContentLength" units="bytes"
expires_after="2024-11-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The value of content length header of a subresource web bundle, or zero if
the content-length header is missing.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.LoadResult"
enum="SubresourceWebBundleLoadResult" expires_after="2024-11-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The result of loading subresource web bundles.</summary>
</histogram>
<histogram name="SubresourceWebBundles.MaxMemoryUsagePerProcess" units="bytes"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The max memory usage per renderer process for subresource web bundles which
are kept in the network process's memory. Recorded when all the subresource
web bundles for the renderer process are released.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.OriginType"
enum="SubresourceWebBundleOriginType" expires_after="2024-11-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The counts of Web Bundles origin types requested by Subresource Loading with
Web Bundles. Recorded when a script element whose type is webbundle is
inserted into a document.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.ReceivedSize" units="bytes"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The received data size of a subresource web bundle. Recorded when received
all the body of the subresource web bundle.
</summary>
</histogram>
<histogram name="SubresourceWebBundles.ResourceCount" units="resources"
expires_after="2024-11-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of resources contained in a web bundle. Recorded when bundle
metadata is received and parsed successfully.
</summary>
</histogram>
<histogram name="Tablet.CountOfVolumeAdjustType" units="numbers"
expires_after="2023-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of each volume adjust type in tablet mode. Logged when starts
volume adjust while in tablet mode.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Certificates.Microsoft" units="certificates"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of certificates for modules loaded (or potentially loaded)
into the browser process that are signed by Microsoft. A catalog counts as a
single certificate, and may refer to many modules. Measured shortly after
startup. Windows only. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Certificates.Total" units="certificates"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of certificates for modules loaded (or potentially loaded)
into the browser process. A catalog counts as a single certificate, and may
refer to many modules. Measured shortly after startup. Windows only. This
histogram was expired between 2019-12-31 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.GetDriveLetterPathFound" enum="BooleanFound"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an equivalent driver letter path was found for a device
path. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Heartbeat.BlockedModulesCount"
units="modules" expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of modules that were blocked from loading into the
browser process by the third-party DLL blocking feature. This is recorded
every 5 minutes. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram
name="ThirdPartyModules.Heartbeat.PrintingWorkaround.BlockingEnabled"
enum="BooleanEnabled" expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not Chrome is still blocking third-party DLLs. This is a
bit that turns to false when the in-process printing is invoked. Recorded
every 5 minutes. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Heartbeat.UniqueBlockedModulesCount"
units="modules" expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of unique modules that were blocked from loading into the
browser process by the third-party DLL blocking feature. This is recorded
every 5 minutes. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.InputMethodEditorsCount" units="counts"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of registered input method editors found on the user's machine.
This is emitted shortly after startup when the IME enumeration takes place.
This histogram was expired between M77 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Loaded" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of third-party modules (neither Microsoft nor Google) that
are loaded in the browser process. Measured shortly after startup. Windows
only. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.NotLoaded" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of third-party modules (neither Microsoft nor Google) that
are not yet loaded in the browser process, but may potentially be (shell
extensions, for example). Measured shortly after startup. Windows only. This
histogram was expired between 2019-12-31 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Signed" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of signed modules loaded (or potentially loaded) into the
browser process. Measured shortly after startup. Windows only. This
histogram was expired between 2019-12-31 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Signed.Catalog" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of modules loaded (or potentially loaded) into the browser
process that are signed via a catalog. Measured shortly after startup.
Windows only. This histogram was expired between 2019-12-31 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Signed.Microsoft" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of modules loaded (or potentially loaded) into the browser
process that are signed by Microsoft. Measured shortly after startup.
Windows only. This histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Total" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of modules loaded (or potentially loaded) into the browser
process. Measured shortly after startup. Windows only. This histogram was
expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Modules.Unsigned" units="modules"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of unsigned modules loaded (or potentially loaded) into the
browser process. Measured shortly after startup. Windows only. This
histogram was expired between M85 and M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.ShellExtensionsCount3" units="counts"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of registered shell extensions found on the user's machine. This
is emitted shortly after startup when the shell extensions enumeration is
done. Doesn't count duplicates. This histogram was expired between M85 and
M114.
</summary>
</histogram>
<histogram name="ThirdPartyModules.Uninstallable" enum="BooleanUninstallable"
expires_after="M121">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not a loaded third party module could be uninstalled
using the Windows Apps & Features page. This histogram was expired
between M85 and M114.
</summary>
</histogram>
<histogram name="Thumbnails.Gradient.ImageDetectionTime" units="ms"
expires_after="M84">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes to detect whether a thumbnail requires a gradient overlay.
This is run when thumbnails are downloaded for content suggestions, as they
load and the result is cached for future use. It is Android specific.
</summary>
</histogram>
<histogram name="Thumbnails.Gradient.ImageRequiresGradient" enum="Boolean"
expires_after="M84">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a thumbnail used for a suggestions image requires a gradient to be
overlaid to not fade into the background. It applies to the thumbnails used
for content suggestions and is Android specific.
</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.Event" enum="TimeZoneRequestEvent"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Events in TimeZoneRequest.</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.ResponseCode" enum="HttpResponseCode"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Http response codes in TimeZoneRequest.</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.ResponseFailureTime" units="ms"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time elapsed between the sending of the first API request and the time
the final (failed) response was recorded. Includes all retries.
</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.ResponseSuccessTime" units="ms"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time elapsed between the sending of the first API request and the time
the final (successfull) response was recorded. Includes all retries.
</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.Result" enum="TimeZoneRequestResult"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Result of TimeZoneRequest.</summary>
</histogram>
<histogram name="TimeZone.TimeZoneRequest.Retries" units="units"
expires_after="never">
<!-- expires-never: This reports external time zone provider health status and
should be kept until we use this API. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of retries until the final response was recorded.</summary>
</histogram>
<histogram name="Toolbar.ChromeLabs.{State}LabAction"
enum="ChromeLabsSelectedLab" expires_after="never">
<!-- expires-never: Chrome Labs is a feature that allows teams to add their
experiemntal features for users to try out and give feedback on before it is
fully rolled out. We want teams that add their features to Chrome Labs to
continue to have access to metrics on how many users enable (or disable) their
features through Chrome Labs. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Chrome Labs features user-facing experiments through a button in the
toolbar.
This metric tracks which experiment (also called lab in the context of
Chrome Labs) a user selects {State} for. This histogram is emitted to when
{State} is selected in the combobox of the ChromeLabs dialog.
</summary>
<token key="State">
<variant name="Default" summary="Default state selected for lab"/>
<variant name="Disable" summary="Disabled state selected for lab"/>
<variant name="Enable" summary="Enabled state selected for lab"/>
</token>
</histogram>
<histogram name="Touchpad.HapticClickSensitivity.Changed"
enum="HapticClickSensitivity" expires_after="2024-03-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad haptic click sensitivity setting changes by the user. Only
reported on Chrome OS.
</summary>
</histogram>
<histogram name="Touchpad.HapticClickSensitivity.Started"
enum="HapticClickSensitivity" expires_after="2024-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad haptic click sensitivity setting on startup. Only reported
on Chrome OS.
</summary>
</histogram>
<histogram name="Touchpad.HapticFeedback.Changed" enum="BooleanEnabled"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad haptic feedback setting changes by the user. Only reported
on Chrome OS.
</summary>
</histogram>
<histogram name="Touchpad.HapticFeedback.Started" enum="BooleanEnabled"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad haptic feedback setting on startup. Only reported on Chrome
OS.
</summary>
</histogram>
<histogram name="Touchpad.NaturalScroll.Changed" enum="BooleanEnabled"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad natural scroll setting changes by the user. Only reported on
Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="Touchpad.NaturalScroll.Started" enum="BooleanEnabled"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad natural scroll setting on startup. Only reported on Chrome
OS.
</summary>
</histogram>
<histogram name="Touchpad.PointerSensitivity.Changed" enum="PointerSensitivity"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad sensitivity setting changes by the user. This replaces the
old Touchpad.Sensitivity.Changed metric. Only reported on Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="Touchpad.PointerSensitivity.Started" enum="PointerSensitivity"
expires_after="2025-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad sensitivity setting on startup. This replaces the old
Touchpad.Sensitivity.Started metric. Only reported on Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram base="true" name="Touchpad.ScrollAcceleration" enum="BooleanEnabled"
expires_after="2025-02-11">
<!-- Name completed by histogram_suffixes name="PreferenceChangeType" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether touchpad scroll acceleration is enabled. Only reported on Chrome OS.
Warning: this histogram was expired from 2020-12-01 to M105, 2023-12-10 to
M123; data may be missing.
</summary>
</histogram>
<histogram base="true" name="Touchpad.ScrollSensitivity"
enum="PointerSensitivity" expires_after="2025-02-11">
<!-- Name completed by histogram_suffixes name="PreferenceChangeType" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Touchpad scroll sensitivity value. Only reported on Chrome OS.
Warning: this histogram was expired from 2020-12-01 to M105, 2023-12-10 to
M123; data may be missing.
</summary>
</histogram>
<histogram name="Touchpad.TapDragging.Changed" enum="BooleanEnabled"
expires_after="2025-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad TapDragging setting changes by the user. Only reported on
Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="Touchpad.TapDragging.Started" enum="BooleanEnabled"
expires_after="2025-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad TapDragging setting on startup. Only reported on Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="Touchpad.TapToClick.Changed" enum="BooleanEnabled"
expires_after="2025-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad TapToClick setting changes by the user. Only reported on
Chrome OS.
Warning: this histogram was expired from 2022-06-15 to M105; data may be
missing.
</summary>
</histogram>
<histogram name="Touchpad.TapToClick.Started" enum="BooleanEnabled"
expires_after="2025-02-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks touchpad TapToClick setting changes by the user. Only reported on
Chrome OS.
</summary>
</histogram>
<histogram name="TouchScreen.MissedTOUCHEVENTF_UP" enum="BooleanHit"
expires_after="2024-10-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a touch event excludes an active touch (a touch-id/dwId that
previously generated a TOUCHEVENTF_DOWN, and has not since generated a
TOUCHEVENTF_UP). Chromium generates a simulated event to maintain
consistency/correctness. Only recorded on Windows.
Warning: This histogram was expired after M95, and resurrected in M108.
This workaround will be removed once usage drops off. See
https://crbug.com/811273 for details.
</summary>
</histogram>
<histogram name="Tracing.Background.CompressedTraceSizeInKB" units="KB"
expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The size, in kilobytes, of a compressed trace ready to be uploaded. Values
can range from 1KB to 100MB.
</summary>
</histogram>
<histogram name="Tracing.Background.FinalizationDisallowedReason"
enum="TracingFinalizationDisallowedReason" expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
Reason why background tracing finalization was not allowed. Also see
"Tracing.Background.ScenarioState" metric, which records the total
number of times finalization was allowed and not allowed.
</summary>
</histogram>
<histogram name="Tracing.Background.Perfetto.Trigger"
enum="BackgroundTracingTriggerNameHash" expires_after="2024-09-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records Perfetto Tracing Trigger name hash when they occur. Tracing Triggers
defined in a proto scenario config from
third_party/perfetto/protos/perfetto/config/chrome/scenario_config.proto and
are usually based on named events or histograms.
</summary>
</histogram>
<histogram name="Tracing.Background.Scenario.Trigger.{Type}"
enum="BackgroundTracingTriggerNameHash" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records Background Tracing {Type} Trigger name hash when they occur. Tracing
Triggers defined in a proto scenario config from
third_party/perfetto/protos/perfetto/config/chrome/scenario_config.proto and
are usually based on named events or histograms.
</summary>
<token key="Type">
<variant name="Start"/>
<variant name="Stop"/>
<variant name="Upload"/>
</token>
</histogram>
<histogram name="Tracing.Background.Scenario.{Event}"
enum="BackgroundTracingScenarioNameHash" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records Background Tracing scenario name hash when event {Event} occurs.
</summary>
<token key="Event">
<variant name="Active"/>
<variant name="Idle"/>
<variant name="Recording"/>
<variant name="SaveTrace"/>
</token>
</histogram>
<histogram name="Tracing.Background.ScenarioState"
enum="BackgroundTracingState" expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
Records state of the Background Tracing system, from when scenarios are
attempted to be activated until they're completed (successfully or failed)
</summary>
</histogram>
<histogram name="Tracing.Background.UploadingTraceSizeInKB" units="KB"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The size, in kilobytes, of a trace about to be uploaded. Values can range
from 1KB to 100MB.
</summary>
</histogram>
<histogram name="Tracing.SharedBufferIsValid" enum="BooleanSuccess"
expires_after="2024-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records success or failure of creating the shared buffer in
ProducerClient::InitSharedMemoryIfNeeded()
</summary>
</histogram>
<histogram name="UI.DeviceScale" units="%" expires_after="2024-09-29">
<owner>[email protected]</owner>
<summary>
The device scales available on the system at startup. A system may report
more than one if it has multiple displays with varying device scales. Only
logged on Windows.
</summary>
</histogram>
<histogram name="UnifiedConsent.MakeSearchesAndBrowsingBetter.OnProfileLoad"
enum="BooleanEnabled" expires_after="never">
<!-- expires-never: Core metric for monitoring user settings for making searches and browsing better. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
State of the user settings for making searches and browsing better, recorded
each time a regular profile is loaded (this histogram is not recoded for
system profiles, guest profiles, off-the-record profiles or irregular
ChromeOS profiles).
</summary>
</histogram>
<histogram
name="UnifiedConsent.SyncAndGoogleServicesSettings.AfterAdvancedOptIn.SyncDataTypesOff"
enum="UnifiedConsentSyncDataTypesOffAfterAdvancedOptIn"
expires_after="never">
<!-- expires-never: Core metric for monitoring sync data types. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
All *off* sync data types are recorded when the user confirmed the sync
setup after going through the advanced opt-in flow.
</summary>
</histogram>
<histogram
name="UpdateClient.BackgroundDownloaderMac.DownloadResultRequestorKnown"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the requestor of a background download was known. Recorded each time
a download completes.
</summary>
</histogram>
<histogram name="UpdateClient.BackgroundDownloaderMac.StartDownloadOutcome"
enum="UpdateClientBackgroundDownloaderMacStartDownloadOutcome"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of a download start request. Recorded once each time a download
is requested.
</summary>
</histogram>
<histogram name="UpdateClient.BackgroundDownloaderWin.ExistingJobUsed"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether an existing BITS task was reused or created when a download was
requested.
</summary>
</histogram>
<histogram name="UpdateClient.BackgroundDownloaderWin.StaleDownloadAge"
units="hours" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The age of unclaimed downloads when they were removed from the cache.
</summary>
</histogram>
<histogram name="UpdateClient.BackgroundDownloaderWin.StaleJobsCleaned"
units="count" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of stale jobs that were cleaned each time a new download
starts.
</summary>
</histogram>
<histogram name="UpdateClient.Component.CanUpdateResult"
enum="UpdateClientCanUpdateResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of a CanUpdate check when a component update is offered. Recorded
once per check per component.
</summary>
</histogram>
<histogram name="UpdateClient.Component.UpdateCheckResult"
enum="UpdateClientUpdateCheckResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of a component update check. Recorded once per component per
update check.
</summary>
</histogram>
<histogram name="UpdateClient.Component.Updated" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records when the update client has updated a component.</summary>
</histogram>
<histogram name="UpdateClient.CrxDownloader.DownloadCompleteSuccess"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a download completed with an error or not. Recorded once for every
completed download.
</summary>
</histogram>
<histogram name="UpdateClient.CrxDownloader.Fallback" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the CRX Downloader falls back to a different downloader
implementation due to errors.
</summary>
</histogram>
<histogram name="UpgradeDetector.DaysBeforeUpgrade" units="days"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the days elapsed from an update being visible to the browser and
the browser being restarted or quit.
Warning: this histogram expired after M87, and was re-added in M92; data may
be missing.
</summary>
</histogram>
<histogram name="UpgradeDetector.HoursBeforeUpgrade" units="hours"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the hours elapsed from an update being visible to the browser and
the browser being restarted or quit.
</summary>
</histogram>
<histogram name="UpgradeDetector.RollbackReason"
enum="UpgradeDetectorRollbackReason" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks what is the reason we're doing a rollback instead of an update (going
to a more stable channel or admin-initiated enterprise rollback). We're
showing different notifications depending on the reason.
Sent when the device finished installing the rollback image, shows the
notification and is waiting for reboot.
This metric is specific to ChromeOS.
</summary>
</histogram>
<histogram name="Uptime.ChromeExecToLoginPromptVisibleAfterLogout" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS between when Chrome is started, and
when the login prompt is again visible after a logout. This statistic is
only collected when preceeded by a logout.
Warning: this histogram was expired from M77 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.DBusCrash" units="ms" expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The system uptime on Chrome OS when the dbus-daemon process crashes,
resulting in a reboot.
Warning: this histogram was expired from M85 to M118 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.LoginPromptSetupTimeAfterLogout" units="ms"
expires_after="2022-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS for setting up for a login after a
logout. More specifically, it is the time between when the Cryptohome is
unmounted (the last step in the logout process) and when the login prompt is
again visible after a logout.
Warning: this histogram was expired from M85 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.Logout" units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS when performing a logout. More
specifically, it is the time between when a logout is initiated and when the
Cryptohome is unmounted, signaling the last step in the logout process. This
statistic is not collected when the logout is part of a restart or shutdown.
Warning: this histogram was expired from 09/2020 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.LogoutToLoginPromptVisible" units="ms"
expires_after="2022-11-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS between initiating a logout and the
next time the login prompt is visible again. This statistic is not collected
if the machine is shutdown between the logout initiation and the prompt
becoming visible.
Warning: this histogram was expired from M77 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.LogoutToUIStopAfterLogout" units="ms"
expires_after="2022-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS between when a logout is initiated
and the UI has stopped (and Chrome has exited) during the logout process.
This statistic is not collected if the logout is part of a restart or
shutdown.
Warning: this histogram was expired from M77 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.OtherProcessesTerminatedToChromeExecAfterLogout"
units="ms" expires_after="2022-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS between when all user-associated
processes have been terminated during the logout process and when Chrome is
started again to show the login screen.
Warning: this histogram was expired from M77 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="Uptime.UIStopToProcessesTerminatedAfterLogout" units="ms"
expires_after="2022-09-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed on Chrome OS between when the UI has stopped
(Chrome has exited), and when all other associated processes have been
terminated during the logout process. This statistic is not collected if the
logout is part of a restart or shutdown.
Warning: this histogram was expired from M77 to M96 some data may be
missing.
</summary>
</histogram>
<histogram name="UsageStats.Events" enum="UsageStatsEvents"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: count of Usage Stats events. Recorded as these events occur; e.g.
when a domain is associated with a token, or a site is suspended.
</summary>
</histogram>
<histogram name="UserImage.Changed2" enum="ChromeOSUserImageId2"
expires_after="2024-03-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Distribution of the device images that users changed (Chrome OS). The
statistic is recorded each time the user changes their device image to a
different one in Settings.
This metric expired in March 2022 and was revived in M105. Data between
these times is incomplete.
This metric supersedes `UserImage.Changed` due to a change in enum values.
</summary>
</histogram>
<histogram name="UserImage.LoggedIn3" enum="ChromeOSUserImageId2"
expires_after="never">
<!-- expires-never: Core metric for monitoring user image selections. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Distribution of the default images that existing users log in with (Chrome
OS). One sample is taken each time the user logs in.
This metric supersedes UserImage.LoggedIn2 due to a change in enum values.
Special value 0 (Camera image) of ChromeOSUserImageId2 is never recorded in
this histogram.
Warning: this histogram was expired from 2022-03-30 to 2022-08-01; data may
be missing.
</summary>
</histogram>
<histogram name="UserManager.LoginUserType" enum="UserType"
expires_after="2025-04-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of users of different types that log in to the system (Chrome
OS).
</summary>
</histogram>
<histogram name="UserManager.LogoutToLoginDelay" units="seconds"
expires_after="never">
<!-- expires-never: Core metric for monitoring Chrome OS logout/login
regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between one regular user logging out and a different regular user
logging in (Chrome OS). Delays above thirty minutes or which span system
reboots or non-regular-user logins are not reported.
</summary>
</histogram>
<histogram name="UserManager.ProfileEverInitializedMigrationCompleted"
enum="BooleanCompleted" expires_after="M77">
<owner>[email protected]</owner>
<summary>
Whether the profile_ever_initialized() user attribute migration has
completed for the current user.
</summary>
</histogram>
<histogram name="UserManager.UserTypeChanged" enum="UserTypeChanged"
expires_after="never">
<!-- expires-never: Core metric for monitoring User type change regressions. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is logged when new user type reported by Gaia is different from the old
one (for existing user).
</summary>
</histogram>
<histogram name="VoiceInteraction.DismissedEventSource"
enum="VoiceInteractionEventSource" expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The source of a dismissed voice search, such as omnibox or NTP.
This is recorded after the dismissed intent returns to Chrome.
</summary>
</histogram>
<histogram name="VoiceInteraction.FailureEventSource"
enum="VoiceInteractionEventSource" expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The source of a failed voice search, such as omnibox or NTP. This
is recorded after any intent failure, which could occur before an intent is
sent (if the send fails) or after the intent returns unsuccessfully. It will
only be recorded once.
</summary>
</histogram>
<histogram name="VoiceInteraction.FinishEventSource"
enum="VoiceInteractionEventSource" expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The source of a successful voice search, such as omnibox or NTP.
This is recorded immediately after the successful intent returns to Chrome.
</summary>
</histogram>
<histogram name="VoiceInteraction.StartEventSource"
enum="VoiceInteractionEventSource" expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The source of a voice search start event, such as omnibox or NTP.
This is recorded immediately before the voice transcription intent is sent.
</summary>
</histogram>
<histogram name="VoiceInteraction.VoiceResultConfidenceValue" units="%"
expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records the confidence value of a successful voice search as a
percentage. This is recorded when the voice intent returns successfully.
Warning: this histogram was expired from 2024-04-28 to 2024-08-19; data may
be missing.
</summary>
</histogram>
<histogram name="VoiceInteraction.VoiceSearchResult" enum="BooleanSuccess"
expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records whether the voice search produced results. This is recorded
when the voice intent returns successfully.
</summary>
</histogram>
<histogram name="WebContentsObserver.{Method}{FrameType}" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to call all observers of the WebContents observer
method {Method} in {FrameType}. Logged every time the method is called.
WARNING: This method may have been expired from 2023-07-28 to 2024-06-02.
</summary>
<token key="Method" variants="WebContentsObserverMethods"/>
<token key="FrameType">
<variant name="" summary="all frames"/>
<variant name=".MainFrame" summary="main frame"/>
<variant name=".Subframe" summary="subframe"/>
</token>
</histogram>
<histogram name="WebController.CertVerificationErrorsCacheHit"
enum="BooleanCacheHit" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
[iOS] Report cache hit/miss for WKWebView cert verification.
CRWWKNavigationHandler has a cache of pending cert verification results to
avoid extra verifications when presenting SSL interstitial. This metric
helps to understand how often this cache miss happens.
</summary>
</histogram>
<histogram name="WebDatabase.AutofillWebDataBackendImpl.OperationResult"
enum="AutofillWebDataBackendImplOperationResult" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the success or failure of various database operations in
autofill::AutofillWebDataBackendImpl.
</summary>
</histogram>
<histogram name="WebDatabase.DatabaseErrors" enum="SqliteLoggedResultCode"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the errors reported by SQLite.</summary>
</histogram>
<histogram name="WebDatabase.FailedMigrationToVersion" units="version"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a migration to a new WebDatabase schema fails, this histogram records the
target version to which the migration failed.
</summary>
</histogram>
<histogram name="WebDatabase.InitResult" enum="WebDatabaseInitResult"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether WebDatabase::Init succeeds or otherwise a failure reason.
</summary>
</histogram>
<histogram name="WebDatabase.SucceededMigrationToVersion" units="version"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a migration to a new WebDatabase schema succeeds, this histogram records
the target version to which the migration failed.
</summary>
</histogram>
<histogram name="WebFont.BlankTextShownTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A histogram tracking the time we spent showing blank text because a web font
wasn't available by the time we needed it. Measured once per @font-face that
ended up showing blank text.
</summary>
</histogram>
<histogram name="WebFont.CacheHit" enum="WebFontCacheHit"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded upon web fonts load. Counts the number of times web font is loaded
from cache (disk cache or memory cache), fetched over network, or served
from data URL.
</summary>
</histogram>
<histogram name="WebFont.Clients.RenderBlockingFonts.ExpiredFonts"
units="fonts" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when render-blocking web font preloads have reached the maximum
blocking time, and therefore, turned into non-render-blocking. Records the
number of web font preloads that are still pending. This is a diagnostic
metric for feature RenderBlockingFonts.
</summary>
</histogram>
<histogram name="WebFont.DownloadTime.LoadError" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time taken for a webfont download that failed. Includes aborted
requests.
</summary>
</histogram>
<histogram name="WebFont.HadBlankText" enum="BooleanHadBlankText"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metrics is logged when a page that use web fonts is loaded. The value
is whether we had to wait on at least one web font and ended up showing
blank text, or not.
</summary>
</histogram>
<histogram name="WebFont.LocalFontUsed" enum="BooleanUsage"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a locallly installed font is actually used when @font-face had local
sources.
</summary>
</histogram>
<histogram name="WebShare.ApiCount" enum="WebShareMethod"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<summary>
Counts the number of calls to navigator.share. Includes both successful and
failed shares.
</summary>
</histogram>
<histogram name="WebShare.ShareOutcome" enum="WebShareOutcome"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<summary>
Records the outcome of calls to navigator.share. This will not count any
calls that never complete (e.g., if the page closes while the picker is
open). Therefore, DO NOT look at the raw percentages of this histogram;
instead, compare these numbers with the WebShare.ApiCount.Share total.
NOTE: At the moment, if the user cancels the picker, its recording will be
delayed, and possibly never recorded (https://crbug.com/636274), so that
will account for a discrepancy between ShareOutcome and ApiCount.Share.
</summary>
</histogram>
<histogram name="Webstore.ExtensionInstallResult" enum="BooleanSuccess"
expires_after="M81">
<owner>[email protected]</owner>
<summary>
The success or failure of all extension installs from the webstore. This
includes those initiated by sync.
</summary>
</histogram>
<histogram name="WebUI.ColorsStylesheetServingDuration" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The time in milliseconds to generate chrome://theme/colors.css and queue it
to be sent to the renderer for WebUI. Does not include url parsing time.
Recorded for every request for colors.css. Lower is better.
Expired Jan 2024. Revived M124.
</summary>
</histogram>
<histogram name="WebUI.CreatedForUrl" enum="WebUIUrlHashes"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>URLs for which Chrome creates WebUIControllers.</summary>
</histogram>
<histogram name="WebUI.Settings.PathVisited" enum="WebUISettingsPathHashes"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Paths within chrome://settings visited. For evaluating popularity and
priorities for chrome://settings GUI. Note that this metric used to include
paths that were part of OS settings, but starting with M-81, this metric
only records browser settings paths.
For Android settings usage check Settings.FragmentAttached.
</summary>
</histogram>
<histogram name="WebUI.TopChrome.Preload.Result" enum="WebUIPreloadResult"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of attempting to use a preloaded WebUI when a new Top Chrome
WebUI is requested.
</summary>
</histogram>
<histogram name="WebUI.TopChrome.RequestToFCP{WebUIName}" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time elapsed from the initiation of a WebUI request to its
first contentful paint. This metric applies to the main frame documents of
top-chrome WebUI pages, such as side-panel content. The request initiation
is marked by the call to WebUIContentsPreloadManager::Request().
</summary>
<token key="WebUIName" variants="TopChromeWebUIName"/>
</histogram>
<histogram name="WebUI.WebUIURLLoaderFactory.URLRequestLoadTime" units="ms"
expires_after="2022-10-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The elapsed time for URL requests made through the WebUIURLLoaderFactory.
The reported duration is the time spent in the browser process from the
reception of the mojo request up to the content delivery through mojo call.
</summary>
</histogram>
<histogram name="WebUICodeCache.FeatureEnabled" enum="Boolean"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if WebUICodeCache feature is enabled. This counts the number of times
generated WebUICodeCache JS code cache is instantiated.
</summary>
</histogram>
<histogram name="WebUITabStrip.CloseAction" enum="WebUITabStripCloseActions"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The WebUI tab strip is a more touch-friendly tab strip used in place of
Chrome's native tab strip in some cases. It can be opened and closed. This
records how a user closed it.
</summary>
</histogram>
<histogram name="WebUITabStrip.CloseTabAction"
enum="WebUITabStripCloseTabActions" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The WebUI tab strip is a more touch-friendly tab strip used in place of
Chrome's native tab strip in some cases. This records how a user closed a
tab within the WebUI tab strip.
</summary>
</histogram>
<histogram name="WebUITabStrip.LoadCompletedTime" units="ms"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad event
and the RenderFrameHost DocumentOnLoadCompleted event for the WebUI tab
strip page. This happens once when a browser window with WebUI tab strip
enabled is created. WebUITabStrip.LoadDocumentTime should be smaller or
equal to WebUITabStrip.LoadCoimpletedTime.
</summary>
</histogram>
<histogram name="WebUITabStrip.LoadDocumentTime" units="ms"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad and
DidFinishDocumentLoad events for the WebUI tab strip page. This happens once
when a browser window with WebUI tab strip enabled is created.
WebUITabStrip.LoadDocumentTime should be smaller or equal to
WebUITabStrip.LoadCoimpletedTime.
</summary>
</histogram>
<histogram name="WebUITabStrip.OpenAction" enum="WebUITabStripOpenActions"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The WebUI tab strip is a more touch-friendly tab strip used in place of
Chrome's native tab strip in some cases. It can be opened and closed. This
records how a user opened it.
</summary>
</histogram>
<histogram name="WebUITabStrip.OpenDuration" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The WebUI tab strip is a more touch-friendly tab strip used in place of
Chrome's native tab strip in some cases. It can be opened and closed. This
records how long it was open when closing.
</summary>
</histogram>
<histogram name="WebUITabStrip.TabActivation" units="ms"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WebUI Tabstrip: Time from activating a tab from WebUI to receiving an
activation notification in WebUI.
</summary>
</histogram>
<histogram name="WebUITabStrip.TabCreation" units="ms"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WebUI Tabstrip: Time needed to create all of the tab elements at launch.
</summary>
</histogram>
<histogram name="WebUITabStrip.TabDataReceived" units="ms"
expires_after="2024-10-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WebUI Tabstrip: Time from requesting the tab data to receiving the data.
</summary>
</histogram>
<histogram name="WebUsb.ChooserClosed" enum="WebUsbChooserClosed"
expires_after="never">
<!-- expires-never: Used to monitor user interaction with the WebUSB API. -->
<owner>[email protected]</owner>
<summary>
Records the reason why the WebUSB device chooser was closed.
</summary>
</histogram>
<histogram name="WebUsb.NotificationClosed" enum="WebUsbNotificationClosed"
expires_after="never">
<!-- expires-never: Used to monitor user interaction with the WebUSB API. -->
<owner>[email protected]</owner>
<summary>
Records the reason why the "WebUSB device detected" notification
was dismissed.
</summary>
</histogram>
<histogram name="WebUsb.PermissionRevoked" enum="WebUsbPermissionRevoked"
expires_after="never">
<!-- expires-never: Used to monitor user interaction with the WebUSB API. -->
<owner>[email protected]</owner>
<summary>
Records when the user revokes permission for an origin to connect to a USB
device using the WebUSB API.
</summary>
</histogram>
<histogram name="WrenchMenu.MenuAction" enum="WrenchMenuAction"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of times that each menu item is clicked.</summary>
</histogram>
<histogram name="WrenchMenu.TimeToAction.{Action}" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time a user takes to select a menu item after opening the menu.
</summary>
<token key="Action">
<variant name="About"/>
<variant name="AddNewProfile"/>
<variant name="AppInfo"/>
<variant name="BetaForum"/>
<variant name="BookmarkAllTabs"/>
<variant name="BookmarkPage"/>
<variant name="Cast"/>
<variant name="ChromeOSRestart"/>
<variant name="ChromeTips"/>
<variant name="ClearBrowsingData"/>
<variant name="CloseProfile"/>
<variant name="Copy"/>
<variant name="CopyUrl"/>
<variant name="CreateHostedApp"/>
<variant name="CreateQrCode"/>
<variant name="CustomizeChrome"/>
<variant name="Cut"/>
<variant name="DevTools"/>
<variant name="DevToolsConsole"/>
<variant name="DevToolsDevices"/>
<variant name="DistillPage"/>
<variant name="EnterFullScreen"/>
<variant name="Exit"/>
<variant name="Feedback"/>
<variant name="Find"/>
<variant name="HelpPage"/>
<variant name="ImportSettings"/>
<variant name="InstallPwa"/>
<variant name="LoginForDeviceTabs"/>
<variant name="ManageChromeProfiles"/>
<variant name="ManageExtensions"/>
<variant name="ManageGoogleAccount"/>
<variant name="NewIncognitoWindow"/>
<variant name="NewTab"/>
<variant name="NewWindow"/>
<variant name="OpenBookmark"/>
<variant name="OpenGuestProfile"/>
<variant name="OpenInChrome"/>
<variant name="OpenInPwaWindow"/>
<variant name="OpenRecentTab"/>
<variant name="PasswordManager"/>
<variant name="Paste"/>
<variant name="Print"/>
<variant name="ProfilingEnabled"/>
<variant name="ReadingListAddTab"/>
<variant name="ReadingListShowUi"/>
<variant name="RequestTabletSite"/>
<variant name="RestoreTab"/>
<variant name="SafetyHubNotificationManageExtensions"/>
<variant name="SafetyHubNotificationOpenSafetyHub"/>
<variant name="SafetyHubNotificationPasswordCheck"/>
<variant name="SavePage"/>
<variant name="SendToDevices"/>
<variant name="SetBrowserAsDefault"/>
<variant name="Settings"/>
<variant name="ShowAddresses"/>
<variant name="ShowBookmarkBar"/>
<variant name="ShowBookmarkMgr"/>
<variant name="ShowBookmarkSidePanel"/>
<variant name="ShowChromeLabs"/>
<variant name="ShowCustomizeChromeSidePanel"/>
<variant name="ShowDownloads"/>
<variant name="ShowHistory"/>
<variant name="ShowHistoryClustersSidePanel"/>
<variant name="ShowKaleidoscope"/>
<variant name="ShowLensOverlay"/>
<variant name="ShowPasswordManager"/>
<variant name="ShowPaymentMethods"/>
<variant name="ShowPerformanceSettings"/>
<variant name="ShowReadingModeSidePanel"/>
<variant name="ShowSavedTabGroups"/>
<variant name="ShowSearchCompanion"/>
<variant name="ShowSigninWhenPaused"/>
<variant name="ShowSyncSettings"/>
<variant name="ShowTranslate"/>
<variant name="ShowTurnOnSync"/>
<variant name="SiteSettings"/>
<variant name="SwitchToAnotherProfile"/>
<variant name="TaskManager"/>
<variant name="ViewSource"/>
<variant name="VisitChromeWebStore"/>
<variant name="Win8MetroRestart"/>
<variant name="WinDesktopRestart"/>
<variant name="ZoomMinus"/>
<variant name="ZoomPlus"/>
</token>
</histogram>
</histograms>
</histogram-configuration>