<!--
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 Permissions 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>
<!-- LINT.IfChange(AllPermissionTypes) -->
<variants name="AllPermissionTypes">
<variant name="AR"/>
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="CameraPanTiltZoom"/>
<variant name="ClipboardReadWrite"/>
<variant name="Geolocation"/>
<variant name="IdleDetection"/>
<variant name="LocalFonts"/>
<variant name="MidiSysEx"/>
<variant name="MultipleDownload"/>
<variant name="Nfc"/>
<variant name="Notifications"/>
<variant name="PaymentHandler"/>
<variant name="ProtectedMedia"/>
<variant name="Quota"/>
<variant name="RegisterProtocolHandler"/>
<variant name="SecurityKeyAttestation"/>
<variant name="StorageAccess"/>
<variant name="TopLevelStorageAccess"/>
<variant name="U2fApiRequest"/>
<variant name="VideoCapture"/>
<variant name="VR"/>
<variant name="WindowPlacement"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/settings/histograms.xml:AllPermissionTypes) -->
<variants name="ContentSettingSource">
<variant name="FromAllowlist"/>
<variant name="FromExtension"/>
<variant name="FromInstalledWebApp"/>
<variant name="FromNone"/>
<variant name="FromPolicy"/>
<variant name="FromSourceTpcdGrant"/>
<variant name="FromSupervised"/>
<variant name="FromUser"/>
</variants>
<variants name="OsScreen">
<variant name="OS_PROMPT"/>
<variant name="OS_SYSTEM_SETTINGS"/>
</variants>
<variants name="OsScreenAction">
<variant name="DISMISSED_SCRIM"/>
<variant name="DISMISSED_X_BUTTON"/>
<variant name="SYSTEM_SETTINGS"/>
</variants>
<variants name="PermissionTypeForElementAnchoredBubble">
<variant name="AR"/>
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="Geolocation"/>
<variant name="VideoCapture"/>
</variants>
<variants name="PermissionTypesSupportPermissionsPolicy">
<variant name="AR"/>
<variant name="AudioCapture"/>
<variant name="ClipboardReadWrite"/>
<variant name="ClipboardSanitizedWrite"/>
<variant name="DisplayCapture"/>
<variant name="Geolocation"/>
<variant name="IdleDetection"/>
<variant name="LocalFonts"/>
<variant name="Midi"/>
<variant name="MidiSysEx"/>
<variant name="ProtectedMedia"/>
<variant name="StorageAccess"/>
<variant name="TopLevelStorageAccess"/>
<variant name="VideoCapture"/>
<variant name="VR"/>
<variant name="WakeLockScreen"/>
<variant name="WindowPlacement"/>
</variants>
<variants name="PromptDisposition">
<variant name="AnchoredBubble"/>
<variant name="CustomModalDialog"/>
<variant name="ElementAnchoredBubble"/>
<variant name="LocationBarLeftChip"/>
<variant name="LocationBarLeftChipAutoBubble"/>
<variant name="LocationBarLeftQuietAbusiveChip"/>
<variant name="LocationBarLeftQuietChip"/>
<variant name="LocationBarRightAnimatedIcon"/>
<variant name="LocationBarRightStaticIcon"/>
<variant name="MessageUI"/>
<variant name="MiniInfobar"/>
<variant name="ModalDialog"/>
<variant name="NoneVisible"/>
</variants>
<variants name="Top2PermissionTypes">
<variant name="Geolocation"/>
<variant name="Notifications"/>
</variants>
<histogram name="BrowserDialogs.ExternalProtocol.BlockState"
enum="BlockStateMetric" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The observance of external protocol schemes that are denied or allowed by
default built-in lists, enterprise policy, or user preference.
The kAllowedDefaultNews and kNewsNotDefault values are influenced by the
PromptForExternalNewsSchemes feature. When enabled, kNewsNotDefault will be
emtited with another histogram value to indicate whether it was allowed by
policy, preference, or prompt. When disabled, the kAllowedDefaultNews sample
will not be emitted.
</summary>
</histogram>
<histogram name="BrowserDialogs.ExternalProtocol.HandleState"
enum="HandleStateType" expires_after="2023-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Whether or not the user checked the option in the external protocol dialog
to remember their choice of opening or not opening the specified app.
Recorded each time the user interacts with the External Protocol Dialog,
when making a decision.
</summary>
</histogram>
<histogram name="BrowserDialogs.ExternalProtocol.Scheme"
enum="ExternalProtocolScheme" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the scheme of an external protocol request. Only logs schemes listed
among the enum ExternalProtocolScheme. This is logged once for each request
to open an external protocol.
</summary>
</histogram>
<histogram name="Permissions.Action" enum="PermissionAction"
expires_after="never">
<!-- expires-never: Primary metrics for monitoring capability usage and trends. -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks user interactions on permission prompts, aggregated across all UI
dispositions, including quiet permission prompts due to CPSS or Crowd Deny.
One sample is recorded each time a permission request triggers a prompt,
even if the prompt UI is never seen by the user. This histogram does not
include permission requests that are granted/denied because the user had
previously made a decision; nor requests that are denied by Permission
Policy, per-site permission embargo, or are cancelled while queued.
The suffix of the histogram indicates which particular permission.
</summary>
</histogram>
<histogram name="Permissions.Action.WithDisposition.{DispositionType}"
enum="PermissionAction" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the action that a user had taken per permission prompt UI
disposition. Suffixed by the UI disposition that the prompt used. Recorded
when a permission prompt has been resolved.
</summary>
<token key="DispositionType">
<variant name="AnchoredBubble"
summary="A bubble under the site settings padlock"/>
<variant name="CustomModalDialog" summary="Other custom modal dialogs"/>
<variant name="ElementAnchoredBubble"
summary="A bubble shown near the embedded permission element, when
the element is clicked."/>
<variant name="LocationBarLeftChip"
summary="A chip on the left-hand side of the location bar that shows
a bubble when clicked"/>
<variant name="LocationBarLeftChipAutoBubble"
summary="A chip on the left-hand side of the location bar that
automatically shows a bubble"/>
<variant name="LocationBarLeftQuietAbusiveChip"
summary="A less prominent, non-animated version of a chip on the
left-hand side of the location bar that shows a bubble when
clicked"/>
<variant name="LocationBarLeftQuietChip"
summary="A less prominent version of a chip on the left-hand side of
the location bar that shows a bubble when clicked"/>
<variant name="LocationBarRightAnimatedIcon"
summary="An animated indicator on the right-hand side of the location
bar"/>
<variant name="LocationBarRightStaticIcon"
summary="A static indicator on the right-hand side of the location
bar"/>
<variant name="MessageUI"
summary="A message bubble near top of the screen and below the
location bar (alternative to Infobar UI)"/>
<variant name="MiniInfobar"
summary="An initially-collapsed infobar at the bottom of the page"/>
<variant name="ModalDialog" summary="A modal dialog"/>
<variant name="NoneVisible" summary="There was no UI being shown"/>
<variant name="NotApplicable" summary="No permission prompt at all"/>
</token>
</histogram>
<histogram name="Permissions.Action.{PermissionType}.CrossOriginFrame"
enum="PermissionAction" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when a permission prompt has been resolved and the permission
request was made from a cross-origin iframe. Records the action that a user
had taken.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
</histogram>
<histogram
name="Permissions.Action.{PermissionType}.CrossOriginFrame.TopLevelHeaderPolicy"
enum="PermissionsPolicyConfiguration" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission prompt is shown to the user which was
triggered by a request made from a cross-origin frame. Records what type of
type of permission header policy the top-level document defined for the
accessed feature.
</summary>
<token key="PermissionType"
variants="PermissionTypesSupportPermissionsPolicy"/>
</histogram>
<histogram
name="Permissions.ActivityIndicator.{Disposition}.{PermissionType}.{Action}"
enum="ActivityIndicatorState" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when a permission activity indicator has been shown from in the
location bar. Records the indicator's state.
</summary>
<token key="PermissionType">
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="VideoCapture"/>
</token>
<token key="Disposition">
<variant name="LHS"/>
</token>
<token key="Action">
<variant name="Click"/>
<variant name="Show"/>
</token>
</histogram>
<histogram name="Permissions.API.CreatedPermissionStatusObjects" units="units"
expires_after="2024-12-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the number of PermissionStatus handles that have been created by a
document (via the "navigator.permissions" API). Recorded at the
destruction of said document. Only recorded if the document has created at
least one PermissionStatus handle.
</summary>
</histogram>
<histogram name="Permissions.AutoBlocker.EmbargoPromptSuppression"
enum="PermissionEmbargoStatus" expires_after="2025-01-24">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
For every permission request that would show a prompt to the user, this
metric tracks whether the request is suppressed by embargo (and the source
of that embargo), or whether there is no embargo and the prompt is shown.
This is the proportion of permission prompts that the user would have seen
that have been blocked due to embargo.
If the (origin, permission) pair was previously placed under embargo, no
prompt is displayed and the reason for embargo is recorded. Otherwise, the
prompt is shown and a no embargo reason is recorded.
</summary>
</histogram>
<histogram name="Permissions.AutoBlocker.EmbargoStatus"
enum="PermissionEmbargoStatus" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the reason that an (origin, permission) pair has been placed under
embargo (blocked from making requests for that permission for a period of
time). This is triggered when a permission is placed under embargo for
blacklisting (once Safe Browsing has returned a result), when a permission
prompt has been shown and it is placed under embargo for repeated
dismissals, or when a permission prompt is shown and not embargoed.
</summary>
</histogram>
<histogram name="Permissions.Chip.TimeToInteraction" units="ms"
expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records how long it takes for the user to click on the permission chip after
it was shown.
</summary>
</histogram>
<histogram name="Permissions.ConfirmationChip.PageInfoDialogAccessType"
enum="PageInfoDialogAccessType" expires_after="2025-05-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Record each time the page info bubble is opened through either the lock icon
or the confirmation chip, how it was opened and how the opening related to
the confirmation chip.
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.DidHoldbackQuietUi" enum="Boolean"
expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Whenever a notification permission prompt is to be displayed, crowd deny
might trigger based on site reputation which will result in a quiet
permission prompt UI to be used. Whenever this happens, there is a small
chance that the normal UI will still be used. This records, when a quiet UI
is supposed to be shown, whether it has been randomly selected into the
hold-back group. In this case the normal UI will be displayed unless
overriden by the user Prefences.
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.PreloadData.DelayedPushNotification"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Record, for each incoming push notification, a delay caused by loading Crowd
Deny component during abusive an origin verification. It's recorded only for
non-abusive origins and only if the Crowd Deny request was made while the
preload data is in the process of being loaded. Timing starts at requesting
CrowdDenyPreloadData::GetReputationDataForSiteAsync, and timing ends after
Crowd Deny returns result to
AbusiveOriginPermissionRevocationRequest::OnSiteReputationReady.
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.PreloadData.NotificationUxQuality"
enum="CrowdDenyNotificationUxQuality" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records, each time a notification permission prompt is about to be shown,
the NotificationUxQuality result for the requesting origin.
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.PreloadData.VersionAtAbuseCheckTime"
units="date" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records, each time abusive origin verification is performed, the version of
the Crowd Deny preload data on disk (not necessarily loaded).
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.SafeBrowsing.RequestDuration" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records, each time a Safe Browsing request is made in response to a website
requesting the notification permission, how long that Safe Browsing request
took. This also includes all delays introduced by thread hopping.
</summary>
</histogram>
<histogram name="Permissions.CrowdDeny.SafeBrowsing.Verdict"
enum="CrowdDenySafeBrowsingVerdict" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records, each time a Safe Browsing request is made in response to a website
requesting the notification permission, the Safe Browsing verdict regarding
the notification prompt experience on that site.
</summary>
</histogram>
<histogram name="Permissions.DSE.AutoPermissionRevertTransition"
enum="AutoDSEPermissionRevertTransition" expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the Default Search Engine automatic permission grant is
reverted. It tracks the transition that the settings for the DSE origin
takes when this happens. Suffixed by `PermissionTypes` to provide
information per permission type. Only recorded for Android as that is the
only platform where the DSE permissions were enabled.
</summary>
</histogram>
<histogram name="Permissions.DSE.EffectiveSetting" enum="ContentSetting"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded at initialization and when the Default Search Engine origin is
changed. Tracks the setting for the Default Search Engine origin. Suffixed
by `PermissionTypes` to provide information per permission type. Only
recorded for Android as that is the only platform where the DSE permissions
were enabled.
</summary>
</histogram>
<histogram name="Permissions.Engagement.Accepted" units="%"
expires_after="2025-01-21">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user accepts the permission prompt. It tracks the Site
engagement score for sites. For more info check chrome/browser/engagement/
</summary>
</histogram>
<histogram name="Permissions.Engagement.AcceptedOnce" units="%"
expires_after="2022-08-25">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user accepts the one time permission prompt. It tracks the
Site engagement score for sites. For more info check
chrome/browser/engagement/
</summary>
</histogram>
<histogram name="Permissions.Engagement.Denied" units="%"
expires_after="2023-03-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user denies the permission prompt. It tracks the Site
engagement score for sites. For more info check chrome/browser/engagement/
</summary>
</histogram>
<histogram name="Permissions.Engagement.Dismissed" units="%"
expires_after="2025-01-21">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user dismisses the permission prompt. It tracks the Site
engagement score for sites. For more info check chrome/browser/engagement/
</summary>
</histogram>
<histogram name="Permissions.Engagement.Ignored" units="%"
expires_after="2023-07-02">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user ignores the permission prompt. It tracks the Site
engagement score for sites. For more info check chrome/browser/engagement/
</summary>
</histogram>
<histogram
name="Permissions.Experimental.PrimaryMainNavigationFinished.{PermissionType}.TopLevelHeaderPolicy"
enum="PermissionsPolicyConfiguration" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a navigation finished in a primary main frame. Records
what type of permission header policy the top-level document defined for the
feature corresponding to {PermissionType} .
</summary>
<token key="PermissionType">
<variant name="AudioCapture"/>
<variant name="Geolocation"/>
<variant name="VideoCapture"/>
</token>
</histogram>
<histogram
name="Permissions.Experimental.Usage.{PermissionType}.CrossOriginFrame.TopLevelHeaderPolicy"
enum="PermissionsPolicyConfiguration" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission is used in a cross-origin frame. Records what
type of permission header policy the top-level document defined for the
accessed feature.
</summary>
<token key="PermissionType"
variants="PermissionTypesSupportPermissionsPolicy"/>
</histogram>
<histogram
name="Permissions.Experimental.Usage.{PermissionType}.IsCrossOriginFrame"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission is used. Records whether the permission is
used in a cross origin frame.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
</histogram>
<histogram name="Permissions.GetLastCommittedOriginAsURL.IsFileURL"
enum="Boolean" expires_after="2024-10-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a RenderFrameHost is used to fetch an origin for
permission verification on Android. This histogram is needed to verify if
the file url override rule is still needed.
</summary>
</histogram>
<histogram name="Permissions.MissingOSLevelPermission.Action"
enum="PermissionAction" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the "Chrome needs permission..." infobar is
resolved. Records the resulting action that was taken. Suffixed by
`PermissionTypes` to provide information per permission type.
</summary>
</histogram>
<histogram name="Permissions.MissingOSLevelPermission.ShouldShow"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the "Chrome needs permission..." infobar might be
displayed to the user because a site already has the permission but Chrome
does not. Records whether the infobar should be displayed or not. Ignores
situations when the infobar cannot be displayed (for example because there
is no appropriate web contents) as in those cases no decision is actually
made. Suffixed by `PermissionTypes` to provide information per permission
type.
</summary>
</histogram>
<histogram
name="Permissions.OnDevicePredictionService.Response.{PermissionType}"
enum="BooleanIgnored" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever the permissions prediction service(on-device) responds to
a {PermissionType} permission request. Records whether its response was
ignored or not.
</summary>
<token key="PermissionType" variants="Top2PermissionTypes"/>
</histogram>
<histogram name="Permissions.OneTimePermission.{PermissionType}.Event"
enum="OneTimePermissionEvent" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Logs granting, revocation, and expiry behaviors of one time permissions.
Starting with M116, the lifetime limit is enforced actively instead of
lazily, and expiration is accurately captured in "Expired after maximum
lifetime". M116 also added the functionality to expire on suspend. This
event is also captured in the new enum value "Expired because the
device was suspended". Note that these buckets are only recorded for
clients >= M116.
Warning: "Revoked one time grant manually" is only recorded
correctly for clients >= M116 (and should be ignored for previous major
versions)
</summary>
<token key="PermissionType">
<variant name="AudioCapture"/>
<variant name="Geolocation"/>
<variant name="VideoCapture"/>
</token>
</histogram>
<histogram
name="Permissions.PageInfo.Changed.{PermissionType}.Reallowed.Outcome"
enum="PermissionChangeInfo" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records if a user manually reallowed permission state via PageInfo. Recorded
when the user closes a tab, makes cross-origin navigation, or if permission
is used by an origin. Grouped by whether permission was used, the page was
reloaded and a "Reload this page" infobar was shown.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
</histogram>
<histogram name="Permissions.PageInfo.Changed.{PermissionType}.{ReloadInfoBar}"
enum="PermissionChangeAction" expires_after="2025-04-28">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric measures how often and in what way users change permissions
state via PageInfo and if we show a "Reload this page" info bar.
Recorded when users changes permissions state or clicks the "Reset
permission" button in PageInfo.
</summary>
<token key="PermissionType">
<variant name="AudioCapture"/>
<variant name="VideoCapture"/>
</token>
<token key="ReloadInfoBar">
<variant name="ReloadInfobarNotShown"/>
<variant name="ReloadInfobarShown"/>
</token>
</histogram>
<histogram name="Permissions.PageInfo.ChangedWithin1m.{PermissionType}"
enum="PermissionChangeAction" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric measures how often and in what way users change their mind
within the first minute of making an active permission decision, i.e. any
PermissionAction that is any action that is not ignore, dismiss or an
automated revoke event.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
</histogram>
<histogram name="Permissions.PredictionService.PredictionSource"
enum="PermissionPredictionSource" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission is sent to the prediction service. Records
whether the request was sent to the local on-device prediction service or
the server side prediction service.
</summary>
</histogram>
<histogram name="Permissions.PredictionService.PredictionThresholdSource"
enum="PermissionPredictionThresholdSource" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever on-device Permissions prediciton service model is
executed. Records if the threshold value for the non-grant score is obtained
from the model's metadata or if the default fallback was used.
</summary>
</histogram>
<histogram name="Permissions.PredictionService.Response.{PermissionType}"
enum="BooleanIgnored" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever the permissions prediction service(server-side) responds
to a {PermissionType} permission request. Records whether its response was
ignored or not.
</summary>
<token key="PermissionType" variants="Top2PermissionTypes"/>
</histogram>
<histogram name="Permissions.Prompt.Accepted" enum="PermissionRequestType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the permission bubbles (merged and non-merged) that are accepted.
Merged bubbles are considered accepted if all permissions are allowed.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Accepted.PriorDismissCount2" units="units"
expires_after="2025-01-25">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt accept, records the
total number of prompt dismissal events for this origin since the last time
the user explicitly set the permission state or cleared history / site data
and prior to the accept. The suffix of the histogram indicates which
particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Accepted.PriorIgnoreCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt accept, records the
total number of prompt ignore events for this origin since the last time the
user explicitly set the permission state or cleared history / site data and
prior to the accept. The suffix of the histogram indicates which particular
permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.AcceptedOnce" enum="PermissionRequestType"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded when the user clicks on the one-time allow button of the permission
prompt. Tracks the permission bubbles (merged and non-merged) that are
accepted once. Merged bubbles are considered accepted if all permissions are
allowed.
</summary>
</histogram>
<histogram name="Permissions.Prompt.AcceptedOnce.PriorDismissCount2"
units="units" expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt one-time accept,
records the total number of prompt dismissal events for this origin since
the last time the user explicitly set the permission state or cleared
history / site data and prior to the accept. The suffix of the histogram
indicates which particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.AcceptedOnce.PriorIgnoreCount2"
units="units" expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt one-time accept,
records the total number of prompt ignore events for this origin since the
last time the user explicitly set the permission state or cleared history /
site data and prior to the accept. The suffix of the histogram indicates
which particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Denied" enum="PermissionRequestType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the permission bubbles (merged and non-merged) that are denied.
Merged bubbles are considered denied if any permission is denied.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Denied.PriorDismissCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt deny, records the
total number of prompt dismissal events for this origin since the last time
the user explicitly set the permission state or cleared history / site data
and prior to the accept. The suffix of the histogram indicates which
particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Denied.PriorIgnoreCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt deny, records the
total number of prompt ignore events for this origin since the last time the
user explicitly set the permission state or cleared history / site data and
prior to the accept. The suffix of the histogram indicates which particular
permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Dismissed.InvalidContentSetting"
enum="ContentSetting" expires_after="2025-06-01">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric is used to investigate a crash observed when a certain type of
permission prompt is dismissed. It's recorded when a permission prompt is
dismissed with an invalid content setting (aka one that does not have a
corresponding request type) and it records the content setting itself.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Dismissed.PriorDismissCount2" units="units"
expires_after="2024-07-09">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt dismiss, records
the total number of prompt dismissal events for this origin since the last
time the user explicitly set the permission state or cleared history / site
data and prior to the dismiss. The suffix of the histogram indicates which
particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Dismissed.PriorIgnoreCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt dismiss, records
the total number of prompt ignore events for this origin since the last time
the user explicitly set the permission state or cleared history / site data
and prior to the dismiss. The suffix of the histogram indicates which
particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Has{FaviconType}Favicon" enum="Boolean"
expires_after="2024-08-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a permission prompt for a two origin scoped permission (e.g.
StorageAccess) has successfully loaded a favicon. Recorded when a permission
prompt with favicons is shown.
</summary>
<token key="FaviconType">
<variant name="Embedding"/>
<variant name="Requesting"/>
</token>
</histogram>
<histogram name="Permissions.Prompt.Ignored.PriorDismissCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt ignore, records the
total number of prompt dismissal events for this origin since the last time
the user explicitly set the permission state or cleared history / site data
and prior to the ignore. The suffix of the histogram indicates which
particular permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Ignored.PriorIgnoreCount2" units="units"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
This metric, recorded at the time of a permission prompt ignore, records the
total number of prompt ignore events for this origin since the last time the
user explicitly set the permission state or cleared history / site data and
prior to the ignore. The suffix of the histogram indicates which particular
permission.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Infobar.DetailsExpanded" enum="Boolean"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks whether the user has expanded the infobar notification permission
request.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Notifications.EnabledAppLevel"
enum="Boolean" expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records whether chrome has notifications already enabled at the app level or
at least is allowed to request for app level permission. When none of these
conditions are true, site level notification permissions are blocked.
Recorded when a site attempts to prompt the user for notifications
permission. Android only.
</summary>
</histogram>
<histogram name="Permissions.Prompt.Shown" enum="PermissionRequestType"
expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks how many times permission prompts are shown to users.
</summary>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.ElementAnchoredBubble.Dismissed.Reason"
enum="DismissedReason" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks how a {PermissionType} prompt was dismissed by the user. Tracked when
the user dimisses an ElementAnchoredBubble prompt.
</summary>
<token key="PermissionType"
variants="PermissionTypeForElementAnchoredBubble"/>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.ElementAnchoredBubble.Variant"
enum="ElementAnchoredBubbleVariant" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records which screen was shown to the user as part of an
ElementAnchoredBubble permission prompt. Multiple screens can be shown
sequentially as part of the same prompt. Is recorded when the screen is
shown.
</summary>
<token key="PermissionType"
variants="PermissionTypeForElementAnchoredBubble"/>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.ElementAnchoredBubble.{OsScreen}.OsScreenAction"
enum="OsScreenAction" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the action taken on a {PermissionType} screen that informs the user
about state of the OS settings. Recorded when the user interacts with this
screen.
</summary>
<token key="PermissionType"
variants="PermissionTypeForElementAnchoredBubble"/>
<token key="OsScreen" variants="OsScreen"/>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.ElementAnchoredBubble.{OsScreen}.{OsScreenAction}.TimeToAction"
units="ms" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the time until an action is taken on a {PermissionType} screen that
informs the user about state of the OS settings. Recorded whenever the user
takes an action that results in closing the screen.
</summary>
<token key="PermissionType"
variants="PermissionTypeForElementAnchoredBubble"/>
<token key="OsScreen" variants="OsScreen"/>
<token key="OsScreenAction" variants="OsScreenAction"/>
</histogram>
<histogram name="Permissions.Prompt.{PermissionType}.{Disposition}.Action"
enum="PermissionAction" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks the action that a user had taken for a {PermissionType} permission
prompt with disposition of type {Disposition}. Recorded when a permission
prompt has been resolved.
</summary>
<token key="Disposition" variants="PromptDisposition"/>
<token key="PermissionType">
<variant name="AR"/>
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="ClipboardReadWrite"/>
<variant name="Geolocation"/>
<variant name="IdleDetection"/>
<variant name="MidiSysEx"/>
<variant name="Notifications"/>
<variant name="VideoCapture"/>
<variant name="VR"/>
</token>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.{Disposition}.Dismissed.Method"
enum="PermissionPromptDismissMethod" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Tracks how the user dismissed the {PermissionType} permission prompt with
disposition of type {Disposition}. Recorded when a permission prompt has
been resolved. Currently only implemented and reported for Clank.
</summary>
<token key="Disposition" variants="PromptDisposition"/>
<token key="PermissionType" variants="AllPermissionTypes"/>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.{Disposition}.Ignored.DidShowBubble"
enum="Boolean" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records if a permission prompt bubble of type {PermissionType} was displayed
as a result of a user having clicked on a chip with disposition
{Disposition} that was subsequently ignored. Chip framework is only
available on Desktop.
</summary>
<token key="Disposition">
<variant name="LocationBarLeftChip"/>
<variant name="LocationBarLeftChipAutoBubble"/>
<variant name="LocationBarLeftQuietAbusiveChip"/>
<variant name="LocationBarLeftQuietChip"/>
</token>
<token key="PermissionType">
<variant name="AR"/>
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="ClipboardReadWrite"/>
<variant name="Geolocation"/>
<variant name="IdleDetection"/>
<variant name="MidiSysEx"/>
<variant name="Notifications"/>
<variant name="VideoCapture"/>
<variant name="VR"/>
</token>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.{Disposition}.IgnoredReason"
enum="PermissionRequestIgnoredReason" expires_after="2024-02-20">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Permission requests are categorized as ignored when the user failed to take
action. This metric captures more detailed information on why a permission
request was ignored.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
<token key="Disposition" variants="PromptDisposition"/>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.{Disposition}.{Action}.TimeToAction"
units="ms" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records how long it takes for the user to take the {Action} action on a
prompt of type {PermissionType} with {Disposition} disposition. The Ignored
state will be recorded if the user closes the tab or a permission chip gets
expired.
</summary>
<token key="Action">
<variant name="Accepted"/>
<variant name="AcceptedOnce"/>
<variant name="Denied"/>
<variant name="Dismissed"/>
<variant name="Ignored"/>
</token>
<token key="Disposition">
<variant name="AnchoredBubble"/>
<variant name="CustomModalDialog"/>
<variant name="ElementAnchoredBubble"/>
<variant name="LocationBarLeftChip"/>
<variant name="LocationBarLeftChipAutoBubble"/>
<variant name="LocationBarLeftQuietAbusiveChip"/>
<variant name="LocationBarLeftQuietChip"/>
<variant name="LocationBarRightAnimatedIcon"/>
<variant name="LocationBarRightStaticIcon"/>
<variant name="MessageUI"/>
<variant name="MiniInfobar"/>
<variant name="ModalDialog"/>
<variant name="NoneVisible"/>
</token>
<token key="PermissionType">
<variant name="AR"/>
<variant name="AudioAndVideoCapture"/>
<variant name="AudioCapture"/>
<variant name="ClipboardReadWrite"/>
<variant name="Geolocation"/>
<variant name="IdleDetection"/>
<variant name="MidiSysEx"/>
<variant name="Notifications"/>
<variant name="VideoCapture"/>
<variant name="VR"/>
</token>
</histogram>
<histogram
name="Permissions.Prompt.{PermissionType}.{Disposition}.{Action}.{ButtonClick}"
enum="Boolean" expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records {ButtonClick} if a user clicked on "Learn More" or
"Manage" buttons on the quiet chip of type {PermissionType} with
{Disposition} disposition. Recorded when the permission prompt gets resolved
with {Action} action and only for the quiet chip.
</summary>
<token key="ButtonClick">
<variant name="DidClickLearnMore"/>
<variant name="DidClickManage"/>
</token>
<token key="Action">
<variant name="Accepted"/>
<variant name="AcceptedOnce"/>
<variant name="Denied"/>
<variant name="Dismissed"/>
<variant name="Ignored"/>
</token>
<token key="Disposition">
<variant name="LocationBarLeftQuietAbusiveChip"/>
<variant name="LocationBarLeftQuietChip"/>
<variant name="MessageUI"/>
<variant name="MiniInfobar"/>
</token>
<token key="PermissionType">
<variant name="Geolocation"/>
<variant name="Notifications"/>
</token>
</histogram>
<histogram name="Permissions.Prompt.{PermissionType}.{Gesture}.Attempt"
enum="Boolean" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>Recorded when a permission prompt creation is in progress.</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
<token key="Gesture">
<variant name="Gesture"/>
<variant name="NoGesture"/>
<variant name="Unknown"/>
</token>
</histogram>
<histogram name="Permissions.Query.QueryResponseTime" units="ms"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Measure the response time of permissions.query as seen by Blink. This
histogram is introduced to get a baseline for the performance in Clank and
will be used to measure a future implementation of the API in WebView to
compare the performance.
The histogram is emitted when Blink receives a callback from the browser
process for the HasService call made as part of permissions.query.
</summary>
</histogram>
<histogram name="Permissions.QuietChip.TimeToInteraction" units="ms"
expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long it takes for the user to click on the quiet chip after it
was shown. Chip framework is only available on Desktop. Recorded only if the
user clicks on the quiet chip. We can learn what % of prompts get ignored by
comparing this metric and
`PermissionPromptDisposition.LocationBarLeftQuietChip`.
</summary>
</histogram>
<histogram
name="Permissions.QuietNotificationPrompts.EnabledStateInPrefsChangedTo"
enum="BooleanEnabled" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records when the quiet notification permission UI state changes, that is, it
either gets enabled or disabled, in preferences.
</summary>
</histogram>
<histogram
name="Permissions.QuietNotificationPrompts.{RegularProfileFiltered}IsEnabledInPrefs"
enum="BooleanEnabled" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records whether the quiet notification permission UI is enabled in
preferences at profile creation. No sample recorded when notifications are
set to be blocked completely.
</summary>
<token key="RegularProfileFiltered">
<variant name="RegularProfile."
summary="from version M-110. It is recorded only for regular profiles"/>
</token>
</histogram>
<histogram name="Permissions.QuietPrompt.Preignore" enum="PermissionType"
expires_after="2024-11-15">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records when a permission request was preignored because it will be shown as
a quiet chip.
</summary>
</histogram>
<histogram name="Permissions.Request.CrossOrigin" enum="PermissionType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission request is made by a cross-origin site, and
before it is decided whether the request should be displayed to the user.
Records the permission type of the request.
</summary>
</histogram>
<histogram name="Permissions.Request.SameOrigin.{FrameLevel}"
enum="PermissionType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Recorded whenever a permission request is made by a same-origin site, and
before it is decided whether the request should be displayed to the user.
Records the permission type of the request, and is grouped by whether the
requesting frame is the main frame or a sub frame.
</summary>
<token key="FrameLevel">
<variant name="MainFrame"/>
<variant name="SubFrame"/>
</token>
</histogram>
<histogram base="true" name="Permissions.Revocation.ElapsedTimeSinceGrant"
units="seconds" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the time elapsed since the grant of the permission until it's
revoked.
</summary>
</histogram>
<histogram name="Permissions.Revocation.Notifications.DidRecordUkm"
enum="Boolean" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records, each time when the notification permission is revoked, whether a
UKM event was recorded as well.
</summary>
</histogram>
<histogram name="Permissions.Revocation.Notifications.SourceUI"
enum="PermissionSourceUI" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
When revoking the notification from a website for push messaging, this
records the PermissionSourceUI where it occurred.
</summary>
</histogram>
<histogram name="Permissions.Serial.ChooserClosed" enum="SerialChooserOutcome"
expires_after="never">
<!-- expires-never: Used to monitor user interaction with the Web Serial API. -->
<owner>[email protected]</owner>
<owner>src/content/browser/serial/OWNERS</owner>
<summary>
Records the reason why the Serial API chooser, triggered by a call to
navigator.serial.requestPort(), was closed.
</summary>
</histogram>
<histogram name="Permissions.Serial.Revoked" enum="SerialPermissionRevoked"
expires_after="never">
<!-- expires-never: Used to monitor user interaction with the Web Serial API. -->
<owner>[email protected]</owner>
<owner>src/content/browser/serial/OWNERS</owner>
<summary>Records when permission to access a serial port is revoked.</summary>
</histogram>
<histogram base="true" name="Permissions.Usage.ElapsedTimeSinceGrant"
units="seconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the time elapsed since the grant of the permission until it's latest
usage. This histogram will be recorded only for the first usage of a given
permission after the site has loaded.
</summary>
</histogram>
<histogram base="true"
name="Permissions.Usage.ElapsedTimeSinceGrant.{PermissionType}.{Source}"
units="seconds" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the time elapsed since the grant of the permission until it's latest
usage for a particular content setting source. This histogram will be
recorded only for the first usage of a given permission after the site has
loaded.
</summary>
<token key="PermissionType" variants="AllPermissionTypes"/>
<token key="Source" variants="ContentSettingSource"/>
</histogram>
<histogram name="Permissions.Usage.Notifications.DidRecordUkm" enum="Boolean"
expires_after="2025-05-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records, each time when the notification permission is used, whether a UKM
event was recorded as well.
</summary>
</histogram>
<histogram name="Permissions.WebHid.ChooserClosed" enum="WebHidChooserClosed"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the WebHID device chooser was closed.
</summary>
</histogram>
<histogram name="SiteEngagementService.EngagementScore" units="units"
expires_after="2022-03-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Distribution of the engagement scores accumulated by a user, recorded at
startup per non-incognito profile, and then upon the first
engagement-increasing event every hour thereafter.
</summary>
</histogram>
<histogram name="SiteEngagementService.EngagementType"
enum="SiteEngagementServiceEngagementType" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of engagement (navigation, user input, etc.) which led to an
accumulation in site engagement.
</summary>
</histogram>
<histogram name="SiteEngagementService.MeanEngagement" units="units"
expires_after="2022-03-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The mean site engagement per origin accumulated by this profile, recorded at
startup per non-incognito profile, and then upon the first
engagement-increasing event every hour thereafter.
</summary>
</histogram>
<histogram name="SiteEngagementService.MedianEngagement" units="units"
expires_after="2022-03-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The median site engagement per origin accumulated by this profile, recorded
at startup per non-incognito profile, and then upon the first
engagement-increasing event every hour thereafter.
</summary>
</histogram>
<histogram name="SiteEngagementService.OriginsEngaged" units="units"
expires_after="2024-07-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of origins with a non-zero site engagement score for this
profile, recorded at startup per non-incognito profile, and then upon the
first engagement-increasing event every hour thereafter.
</summary>
</histogram>
<histogram name="SiteEngagementService.OriginsWithMaxEngagement" units="units"
expires_after="2021-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of origins which have reached the absolute site engagement point
cap, recorded at startup per non-incognito profile, and then upon the first
engagement-increasing event every hour thereafter. Thus, each bin N contains
the number of clients where at least N origins have reached the maximum
absolute site engagement point cap.
</summary>
</histogram>
<histogram name="WebsiteSettings.Action" enum="WebsiteSettingsAction"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks actions with the website setting (a.k.a. page info / origin info)
bubble, such as opening it up or clicking on the Connection tab.
</summary>
</histogram>
<histogram name="WebsiteSettings.AllSitesAction2"
enum="WebSiteSettingsAllSitesAction2" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks actions with the "All Sites" page in website settings
starting in M82. No data available for M94, was temporarily expired. Values
7 and 8 were added with M96.
</summary>
</histogram>
<histogram name="WebsiteSettings.OriginInfo.PermissionChanged"
enum="ContentType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Count of how often a specific content type (permission) is changed using the
Origin Info dialog.
Note: The values of this metric collected for Chrome 49 (early 2016) are
innacurate and should not be trusted. crbug.com/589255.
</summary>
</histogram>
<histogram name="WebsiteSettings.OriginInfo.PermissionChanged.Allowed"
enum="ContentType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Count of how often a specific content type (permission) is set to 'Allowed'
using the Origin Info dialog.
Note: The values of this metric collected for Chrome 49 (early 2016) are
innacurate and should not be trusted. crbug.com/589255.
</summary>
</histogram>
<histogram name="WebsiteSettings.OriginInfo.PermissionChanged.Blocked"
enum="ContentType" expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Count of how often a specific content type (permission) is set to 'Blocked'
using the Origin Info dialog.
Note: The values of this metric collected for Chrome 49 (early 2016) are
innacurate and should not be trusted. crbug.com/589255.
</summary>
</histogram>
</histograms>
</histogram-configuration>