<!--
Copyright 2021 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 Simple 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>
<histogram name="AppBanners.BeforeInstallEvent"
enum="AppBannersBeforeInstallEvent" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
App banners promote an application related to the current website, and are
requested specifically through the current page's HTML. This stat tracks
usage of the BeforeInstallPromptEvent, which allows developers to control
when an app banner appears. The events in this histogram are not mutually
exclusive - for example, preventDefault() must be called if prompt() is
called.
</summary>
</histogram>
<histogram name="AppBanners.DismissEvent" enum="AppBannersDismissEvent"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
App banners promote an application related to the current website, and are
requested specifically through the current page's HTML. This stat tracks the
different ways that an app banner left the screen, e.g. through an automatic
dismissal after navigation or an explicit user action.
</summary>
</histogram>
<histogram name="AppBanners.DisplayEvent" enum="AppBannersDisplayEvent"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
App banners promote an application related to the current website, and are
requested specifically through the current page's HTML. This stat tracks
when an app banner was requested and how the request was handled, e.g. the
user blocked its appearance or the banner was ultimately created.
</summary>
</histogram>
<histogram name="AppBanners.InstallableStatusCode" enum="InstallableStatusCode"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
App banners promote an application related to the current website, and are
requested specifically through the current page's HTML. This stat tracks the
status code logged by the app banner system as it processes a site's
eligibility for an app banner. Every request for a banner will be logged in
a bucket of this histogram.
</summary>
</histogram>
<histogram name="AppBanners.InstallEvent" enum="AppBannersInstallEvent"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
App banners promote an application related to the current website, and are
requested specifically through the current page's HTML. This stat tracks
when a user triggers an install dialog for the app promoted by the banner,
as well as whether or not the user ultimately decided to install the app.
</summary>
</histogram>
<histogram name="AppBanners.UserResponse" enum="AppBannersUserResponse"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This stat tracks the user reponse when the add-to-homescreen dialog is shown
either: (A) Via the website's JavaScript (B) Via the user tapping the app
banner which promotes the application related to the current site.
</summary>
</histogram>
<histogram name="Launch.BrowserTab.CreateShortcutApp.WebAppDisplayMode"
enum="WebAppDisplayMode" expires_after="2025-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the display mode (as defined in the Web App Manifest spec) at the
launch of a web app that was created using "Create Shortcut..." on
desktop. This is only recorded if the launch was to a browwer tab context,
not a standalone window.
</summary>
</histogram>
<histogram name="Launch.BrowserTab.WebAppDisplayMode" enum="WebAppDisplayMode"
expires_after="2025-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the display mode (as defined in the Web App Manifest spec) at the
launch of a desktop web app installed NOT using "Create
Shortcut...". This is only recorded if the launch was to a browwer tab
context, not a standalone window.
</summary>
</histogram>
<histogram name="Launch.BrowserTab.WebAppLaunchHandlerClientMode"
enum="WebAppLaunchHandlerClientMode" expires_after="2025-05-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the launch_handler.client_mode used when a web app is launched in a
browser tab.
</summary>
</histogram>
<histogram name="Launch.HomeScreen" enum="LaunchFromHomeScreen"
expires_after="2025-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how Chrome handled a launch from an Android Home screen shortcut.
</summary>
</histogram>
<histogram name="Launch.HomeScreenSource" enum="LaunchFromHomeScreenSource"
expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the source of an Android homescreen launch intent used to launch
Chrome.
The Menu item bucket is deprecated as of M57, and will only contain records
for shortcuts added to the homescreen until M56.
For M57+, the Menu item (standalone) bucket contains all launch intents
originating from the add to homescreen menu item that launch to standalone
mode and *are not* WebAPKs. These are sites which do not meet the PWA
eligibility criteria, but have an app manifest that specifies either
standalone or fullscreen display. This bucket also contains PWA *and*
non-PWA intents that were added to the homescreen *prior* to M57, as we
cannot distinguish between them after they are added.
For M57+, the Menu item (shortcut) bucket contains all launch intents
originating from the add to homescreen menu item that launch to a browser
tab, regardless of when the intent was added.
</summary>
</histogram>
<histogram name="Launch.WebApp.DiyOrCrafted" enum="LaunchedAppType"
expires_after="2025-05-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the type of app that was launched in a windowed context was
a DIY app or a crafted app.
</summary>
</histogram>
<histogram name="Launch.WebAppDisplayMode" enum="WebAppDisplayMode"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the display mode (as defined in the Web App Manifest spec) at the
launch of the Added to Home screen or installed Web App (including WebAPKs).
This is only recorded if the launch was to a windowed context, not a browser
tab.
</summary>
</histogram>
<histogram name="Launch.WebAppLaunchHandlerClientMode"
enum="WebAppLaunchHandlerClientMode" expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the launch_handler.client_mode used when a web app is launched in a
window.
</summary>
</histogram>
<histogram name="Launch.Window.CreateShortcutApp.WebAppDisplayMode"
enum="WebAppDisplayMode" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the display mode (as defined in the Web App Manifest spec) at the
launch of a shortcut created using "Add to Homescreen" on mobile,
or a "Create Shortcut..." on desktop. This is only recorded if the
launch was to a windowed context, not a browser tab.
</summary>
</histogram>
<histogram name="Webapp.AddToHomescreenDialog.Timeout" units="ms"
expires_after="2023-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of milliseconds that the add to homescreen dialog
required to check installability eligibility.
</summary>
</histogram>
<histogram name="Webapp.AmbientBadge.Terminate"
enum="InstallableAmbientBadgeState" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/android/webapk/OWNERS</owner>
<summary>
On mobile, an install ambient badge may automatically shows to promote an
application related to the current website when the site meets all install
criteria. When the ambient badge pipleline was terminated, record the
pipeline state.
</summary>
</histogram>
<histogram name="Webapp.AppIdentityDialog.AlreadyApproved"
enum="AppIdentityDisplayMetric" expires_after="2024-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever PWAs change their manifest, this may result in a change to their
identity (icon and/or name). This metric is intended to keep track of the
combinations of App Identity changes that were requested (changes to the
icons and/or app name -- plus icon masks and/or shortname on Android). This
metric is logged once each time Chrome determines that a PWA is in need of
an update, but ONLY if the change should be auto-approved. On Android that
happens when the user has approved the App Identity dialog with identical
data before (and another update request comes in), and on Desktop platforms
that happens when Default apps/Policy apps are pre-approved for updating.
See also complementary metric Webapp.AppIdentityDialog.NotShowing. Milestone
112 update: This used to record when there were no app identity changes
required or for shortcut apps, this is now recorded as
Webapp.AppIdentityDialog.NotShowing instead.
</summary>
</histogram>
<histogram name="Webapp.AppIdentityDialog.NotShowing"
enum="AppIdentityDisplayMetric" expires_after="2024-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever PWAs change their manifest, this may result in a change to their
identity (icon and/or name). This metric is intended to keep track of the
combinations of App Identity changes that were requested (changes to the
icons and/or app name -- plus icon masks and/or shortname on Android). This
metric is logged once each time Chrome determines that a PWA is in need of
an update, but ONLY if there is no App Identity change involved (or the App
Identity dialog is disabled by a feature switch). See also complementary
metric Webapp.AppIdentityDialog.Showing. Milestone 112 update:
Webapp.AppIdentityDialog.AlreadyApproved used to record when there were no
app identity changes required or for shortcut apps, this is now recorded as
Webapp.AppIdentityDialog.NotShowing instead.
</summary>
</histogram>
<histogram name="Webapp.AppIdentityDialog.Showing"
enum="AppIdentityDisplayMetric" expires_after="2024-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever PWAs change their manifest, this may result in a change to their
identity (icon and/or name). This metric is intended to keep track of the
combinations of App Identity changes that were requested (changes to the
icons and/or app name -- plus icon masks and/or shortname on Android). This
metric is logged once each time Chrome determines that a PWA is in need of
an update, but ONLY if there is an App Identity change involved (the App
Identity dialog is enabled by a feature switch and the dialog was shown to
the user). See also complementary metric
Webapp.AppIdentityDialog.NotShowing.
</summary>
</histogram>
<histogram name="Webapp.ApplySyncDataToApp.ManifestIdMatch"
enum="BooleanSuccess" expires_after="2025-04-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when incoming sync data is applied to an app, whether the resolved
manifest ID's path matches the manifest ID path stored in the sync proto.
</summary>
</histogram>
<histogram name="WebApp.AppSettingsPage.EntryPoints"
enum="AppSettingsPageEntryPoints" expires_after="2023-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the source of certain navigations to chrome://app-settings.
Recording happens at the given entry point, and not during the loading of
chrome://app-settings, so direct visits to the URL are not recorded.
</summary>
</histogram>
<histogram name="Webapp.CreateWebApp.ManifestIdMatch" enum="BooleanSuccess"
expires_after="2025-04-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded at web app database read time for each app, whether the resolved
manifest ID's path matches the manifest ID path stored in the sync proto.
</summary>
</histogram>
<histogram name="WebApp.Database.WriteResult" enum="BooleanSuccess"
expires_after="never">
<!-- expires-never: The dPWA team uses this from time to time to look into success rates for database writes for web apps. pwa-team@ -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if modifying data in the web app database was successful. Recorded
whenever the database is written to, which can happen on large events like
installing a web app, as well as small events like changing a the user
display preference for a web app.
</summary>
</histogram>
<histogram name="WebApp.DedupeInstallUrls.AppsDeduped" units="apps"
expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of web apps deduped *for each install URL* that had more than one
web app associated with it. Recorded at the end of each
DedupeInstallUrlsCommand scan, about 3 times at start up (once per external
web app install source) and once whenever web app policy changes.
</summary>
</histogram>
<histogram name="WebApp.DedupeInstallUrls.InstallUrlsDeduped"
units="install URLs" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of install URLs that had multiple web apps associated with it
during a run of DedupeInstallUrlsCommand. Recorded at the end of each
DedupeInstallUrlsCommand scan, about 3 times at start up (once per external
web app install source) and once whenever web app policy changes.
</summary>
</histogram>
<histogram name="WebApp.DedupeInstallUrls.SessionRunCount" units="runs"
expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times the DedupeInstallUrlsCommand ran in a single browser
profile session. Note that because this is recorded for each run, if it is
run 3 times the client will emit 1, 2 and 3 in succession. Recorded at the
start of each DedupeInstallUrlsCommand scan, about 3 times at start up (once
per external web app install source) and once whenever web app policy
changes.
</summary>
</histogram>
<histogram name="WebApp.DefaultOffline.ClosingReason"
enum="DefaultOfflineClosingReason" expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Keeps track of why the default offline (error) page is no longer visible.
Logged once each time the default error page shown, after determining that
it is no longer needed, e.g. because a new navigation occurred for the error
page's WebContents, the device is online again and the WebContents was
refreshed or when the WebContents is destroyed.
</summary>
</histogram>
<histogram name="WebApp.DefaultOffline.DurationShown" units="seconds"
expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Keeps track of how long the default offline (error) page was shown for PWAs.
Logged once each time the default error page shown, after determining that
it is no longer needed, e.g. because a new navigation occurred for the error
page's WebContents, the device is online again and the WebContents was
refreshed or when the WebContents is destroyed.
</summary>
</histogram>
<histogram name="WebApp.DiyAppsInstalledCount.ByUser" units="count"
expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of fully installed DIY web apps, installed by the user.
This is recorded on the initialization of the Profile object, which can
happen either at chrome startup or when the user switches profiles.
</summary>
</histogram>
<histogram name="WebApp.Engagement.{EngagementType}"
enum="SiteEngagementServiceEngagementType" expires_after="never">
<!-- expires-never: This is used for dashboard metrics. [email protected] -->
<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 that {EngagementType}. This is collected for
a subset of SiteEngagementService.EngagementType, which is triggered for all
browsing contexts. Recorded at the time of engagement accumulation (e.g.,
when mouse is clicked).
</summary>
<token key="EngagementType">
<variant name="MoreThanThreeUserInstalledApps"
summary="happened in web site for user with 4 or more user-installed
apps"/>
<variant name="NoUserInstalledApps"
summary="happened in web site for user without user-installed apps"/>
<variant name="UpToThreeUserInstalledApps"
summary="happened in web site for user with [1-3] user-installed apps"/>
</token>
</histogram>
<histogram name="WebApp.Engagement{Context}.{Container}"
enum="SiteEngagementServiceEngagementType" expires_after="2025-06-21">
<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 that {Container} for {Context}. This is
collected for a subset of SiteEngagementService.EngagementType, which is
triggered for all browsing contexts. Recorded at the time of engagement
accumulation (e.g., when mouse is clicked).
</summary>
<token key="Context">
<variant name="" summary="all web app types"/>
<variant name=".DefaultInstalled"
summary="an app installed by default on profile creation"/>
<variant name=".UserInstalled" summary="an app installed by the user"/>
<variant name=".UserInstalled.Crafted"
summary="a 'crafted' app installed by the user (where the app was
normally installable)"/>
<variant name=".UserInstalled.Diy"
summary="a 'DIY' app installed by the user (where the app was not
normally installable)"/>
</token>
<token key="Container">
<variant name="InTab" summary="happened in app running in a browser tab"/>
<variant name="InWindow" summary="happened in app running as a window"/>
</token>
</histogram>
<histogram name="WebApp.FileHandlersRegistration.Result" enum="BooleanSuccess"
expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of file handler registration for PWAs. This is triggered
during installations or updates, when set by policy changes in the web app
settings policy or when an user modifies the file handling settings from the
chrome://app-settings/ page per app.
</summary>
</histogram>
<histogram name="WebApp.FileHandlersUnregistration.Result"
enum="BooleanSuccess" expires_after="2025-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of file handler unregistration for PWAs. This is
triggered during uninstalls or updates, when set by policy changes in the
web app settings policy or when an user modifies the file handling settings
from the chrome://app-settings page per app.
</summary>
</histogram>
<histogram name="WebApp.GeneratedIconFix.AttemptCount" units="attempts"
expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of generated icon fixes already attempted for each web
app that had an icon fix scheduled at start up. Recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.GeneratedIconFix.Result" enum="GeneratedIconFixResult"
expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of attempting to fix a web app's generated icon. Recorded
during start up and for all follow up daily retry events.
</summary>
</histogram>
<histogram name="WebApp.GeneratedIconFix.ScheduleDecision"
enum="GeneratedIconFixScheduleDecision" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the decision made for whether to fix a web app's generated icon.
Recorded during start up and for all follow up daily retry events.
</summary>
</histogram>
<histogram name="WebApp.GeneratedIconFix.StartUpAttemptCount"
units="start up attempts" expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of background generated icon fix attempts initiated
during start up. Recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithEmptyDownloadedIconSizes" units="web apps"
expires_after="2025-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have an empty
WebApp::downloaded_icon_sizes field. This indicates an icon failure state
caused by an installation bug. This gets recorded at browser profile start
up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithEmptyIconBitmap" units="web apps"
expires_after="2023-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have missing icon bitmap data. This gets
recorded at browser profile start up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithEmptyIconFile" units="web apps"
expires_after="2025-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have empty icon files. This gets
recorded at browser profile start up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithGeneratedIconBitmap" units="web apps"
expires_after="2023-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have a generated letter icon bitmap
(distinct from the is_generated_icon flag). This gets recorded at browser
profile start up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithGeneratedIconFlag" units="web apps"
expires_after="2025-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have their WebApp::is_generated_icon
field set. This indicates a letter icon was generated during installation
instead of using a real app icon. This gets recorded at browser profile
start up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithGeneratedIconFlagFalseNegative"
units="web apps" expires_after="2023-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have their WebApp::is_generated_icon
field unset but actually have a generated icon bitmap. This indicates a
letter icon was generated during installation instead of using a real app
icon and a manifest update clobbered the correct value of is_generated_icon
(https://crbug.com/1317922). This gets recorded at browser profile start up
in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.AppsWithMissingIconFile" units="web apps"
expires_after="2025-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that have missing icon files. This gets
recorded at browser profile start up in both the Lacros and Ash processes.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedHttpStatusCodeOnCreate"
enum="HttpResponseCode" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code returned for a list of icons when installing single
WebApp. Recorded when WebAppInstallTask finishes downloading icons for
non-sync installs. Icon download attempts with identical codes produce only
one event for this histogram.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedHttpStatusCodeOnSync"
enum="HttpResponseCode" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code returned for a list of icons when installing single
WebApp. Recorded when WebAppInstallTask finishes downloading icons for web
apps from sync. Icon download attempts with identical codes produce only one
event for this histogram.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedHttpStatusCodeOnUpdate"
enum="HttpResponseCode" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code returned for a list of icons when updating single
WebApp. Recorded when ManifestUpdateDataFetchCommand finishes downloading
icons for update. Icon download attempts with identical codes produce only
one event for this histogram.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedResultOnCreate"
enum="WebAppIconsDownloadedResult" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The overall result returned by WebAppIconDownloader. Recorded when
WebAppInstallTask finishes downloading icons for non-sync installs.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedResultOnSync"
enum="WebAppIconsDownloadedResult" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The overall result returned by WebAppIconDownloader. Recorded when
WebAppInstallTask finishes downloading icons for web aps from sync.
</summary>
</histogram>
<histogram name="WebApp.Icon.DownloadedResultOnUpdate"
enum="WebAppIconsDownloadedResult" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The overall result returned by WebAppIconDownloader. Recorded when
ManifestUpdateDataFetchCommand finishes downloading icons.
</summary>
</histogram>
<histogram name="WebApp.Icon.HttpStatusCodeClassOnCreate"
enum="HttpStatusCodeClass" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code class returned for each icon loaded during a WebApp's
creation. Recorded when WebAppInstallTask finishes downloading icons.
</summary>
</histogram>
<histogram name="WebApp.Icon.HttpStatusCodeClassOnSync"
enum="HttpStatusCodeClass" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code class returned for each icon loaded when syncing a
WebApp. Recorded when WebAppInstallTask finishes downloading icons on sync.
</summary>
</histogram>
<histogram name="WebApp.Icon.HttpStatusCodeClassOnUpdate"
enum="HttpStatusCodeClass" expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The HTTP status code class returned for each icon loaded when updating a
WebApp. Recorded when ManifestUpdateDataFetchCommand finishes downloading
icons.
</summary>
</histogram>
<histogram name="WebApp.IconDownloader.HttpResult"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the http error code returned from downloading icons from the
WebAppIconDownloader. This is recorded during any type of web app install
(user/sync/preinstall/policy/etc), manifest update checking which can occur
on page loads under an installed app scope, or other users of of
WebAppIconDownloader in the WebAppProvider system.
</summary>
</histogram>
<histogram name="WebApp.IconDownloader.Result"
enum="WebAppIconDownloaderResult" expires_after="2025-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of downloading a number of icons. This is recorded during
any type of web app install (user/sync/preinstall/policy/etc), manifest
update checking which can occur on page loads under an installed app scope,
or other users of WebAppIconDownloader in the WebAppProvider system.
</summary>
</histogram>
<histogram name="Webapp.Install.DisplayMode2" enum="WebAppDisplayMode"
expires_after="2025-09-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the display mode (as defined in the Web App Manifest spec) at the
install time of a WebApp. Fixes a bug in the data collection for desktop web
apps.
</summary>
</histogram>
<histogram name="Webapp.Install.InstallBounce" enum="WebappInstallSource"
expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a web app install bounced for different install sources. A
bounce is when the user uninstalls the web app within 1 hour of installing
it.
</summary>
</histogram>
<histogram name="Webapp.Install.InstallEvent" enum="WebappInstallSource"
expires_after="never">
<!-- expires-never: This is used for dashboard metrics. [email protected] -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mechanism and source from which a web app installation was
triggered, regardless of whether the installation was successful.
</summary>
</histogram>
<histogram name="WebApp.Install.Result" enum="BooleanSuccess"
expires_after="2025-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is recorded when a web app installation is completed. If the
installation occurred or the app was already installed, then this records
"true". All other cases record "false". This tracks all
kinds of web app installations, e.g. user installs from install icon or
admin installs from WebAppInstallForcelist.
</summary>
</histogram>
<histogram name="WebApp.Install.Source.Failure" enum="WebappInstallSource"
expires_after="never">
<!-- expires-never: This is used for dashboard metrics. [email protected] -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mechanism and source from which a web app installation was
triggered, when installation failed.
</summary>
</histogram>
<histogram name="WebApp.Install.Source.Success" enum="WebappInstallSource"
expires_after="never">
<!-- expires-never: This is used for dashboard metrics. [email protected] -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mechanism and source from which a web app installation was
triggered, when installation succeeded (this includes cases where the app
was already installed).
</summary>
</histogram>
<histogram name="WebApp.Install.SyncFallbackInstallInitiated"
enum="WebAppInstallResultCode" expires_after="2024-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is recorded when a web app install from the sync system fails and the
fallback install is initiated. Sync installations happen when the sync
system tells the local client that a web app has been installed on the
profile on a different device. This often happens during startup. The value
is the error code for the regular install flow.
</summary>
</histogram>
<histogram name="Webapp.Install.UninstallEvent" enum="WebappUninstallSource"
expires_after="never">
<!-- expires-never: The dPWA team uses this from time to time to look into uninstallations of web apps per uninstall source. pwa-team@ -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mechanism and source from which a web app uninstallation was
triggered, regardless of whether the uninstallation was successful.
</summary>
</histogram>
<histogram name="WebApp.InstallConfirmation.CloseReason"
enum="WidgetClosedReason" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason that the WebApp install confirmation dialog is closed.
This dialog is shown when the user clicks on the 'install' icon in the
omnibox for websites that are installable. This metric is intended to give
data for an experiment to choose the best install icon.
</summary>
</histogram>
<histogram name="WebApp.InstalledCount.ByUser" units="count"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of fully installed web apps, installed by the user. This
is recorded on the initialization of the Profile object, which can happen
either at chrome startup or when the user switches profiles. Note: This
includes DIY apps as well.
</summary>
</histogram>
<histogram name="WebApp.InstalledCount.ByUserInMultipleProfiles" units="count"
expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of fully installed web apps, installed by the user in
multiple profiles. This is only recorded on macOS. This is recorded on the
initialization of the Profile object, which can happen either at chrome
startup or when the user switches profiles.
</summary>
</histogram>
<histogram name="WebApp.InstalledCount.ByUserNotLocallyInstalled" units="count"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of web apps that were installed by sync but not yet
locally installed by the user. This is recorded on the initialization of the
Profile object, which can happen either at chrome startup or when the user
switches profiles.
</summary>
</histogram>
<histogram name="Webapp.InstallResult" enum="WebAppInstallResultCode"
expires_after="2025-01-05">
<!-- Name completed by histogram_suffixes name="WebAppType" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result code of Web App installs.</summary>
</histogram>
<histogram name="WebApp.Isolated.InstallError"
enum="IsolatedWebAppInstallError" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the exact error that occured during the installation of an Isolated
Web App. The error is logged together with WebApp.Isolated.InstallSuccess in
case an error occurs.
</summary>
</histogram>
<histogram name="WebApp.Isolated.InstallSuccess" enum="BooleanSuccess"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records whether the the installation of an Isolated Web App was successful
or resulted in an error.
</summary>
</histogram>
<histogram name="WebApp.Isolated.OrphanedBundlesCleanupJobError"
enum="IsolatedWebAppCleanupOrphanedIWAsError" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the exact error that occurred during the execution of the
OrphanedBundlesCleanupCommand. This command is run on session start and
after a failed IWA install, to remove the folders of IWAs that are not
installed. The error is logged together with
WebApp.Isolated.OrphanedBundlesCleanupJobSuccess in case an error occurs.
</summary>
</histogram>
<histogram name="WebApp.Isolated.OrphanedBundlesCleanupJobSuccess"
enum="BooleanValid" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records whether the OrphanedBundlesCleanupCommand was successful or resulted
in an error. This command is run on session start and after a failed IWA
install, to remove the folders of IWAs that are not installed.
</summary>
</histogram>
<histogram name="WebApp.Isolated.ReadResponseHeadError"
enum="IsolatedWebAppReadResponseHeadError" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the exact error that occured during reading of a response head for a
request to an Isolated Web App via the isolated-app: scheme. The error is
logged together with WebApp.Isolated.ReadResponseHeadSuccess in case when an
error occurs. Warning: this histogram was expired from 2024-05-08 to
2024-06-12; data may be missing.
</summary>
</histogram>
<histogram name="WebApp.Isolated.ReadResponseHeadSuccess" enum="BooleanSuccess"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records whether reading the response head for a request to an Isolated Web
App via the isolated-app: scheme was successful or resulted in an error. As
a prerequisite for this metric to be logged, the Isolated Web App's
integrity block and metadata must have passed validation and its signatures
must have been verified successfully. This metric is then logged for any
resources loading for the Isolated Web App, so any usage could trigger this
metric. Warning: this histogram was expired from 2024-05-08 to 2024-06-12;
data may be missing.
</summary>
</histogram>
<histogram name="WebApp.Isolated.ResponseReaderCacheState"
enum="IsolatedWebAppResponseReaderCacheState" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
This histogram is logged whenever an HTTP request to read a response from a
Signed Web Bundle used for Isolated Web Apps is made through the
isolated-app: scheme and handled by the corresponding URLLoader. This
happens both during installation of an Isolated Web App, and when users
browse an installed Isolated Web App. The histogram records whether a cached
reader was used to read the response. A cached reader is able to directly
read a response from the Signed Web Bundle, whereas an uncached reader first
needs to parse the Signed Web Bundle's Integrity Block and metadata, and
possibly verify signatures.
</summary>
</histogram>
<histogram name="WebApp.Isolated.SignatureVerificationDuration" units="ms"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records how long it takes to verify signatures of Signed Web Bundles used
for Isolated Web Apps every time their signatures are verified. Signatures
are verified during installation (all platforms) and when an Isolated Web
App is first accessed during a Chrome session (non-ChromeOS platforms only).
</summary>
</histogram>
<histogram name="WebApp.Isolated.SignatureVerificationFileLength" units="MiB"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the file length of Signed Web Bundles used for Isolated Web Apps
every time their signatures are verified. Signatures are verified during
installation (all platforms) and when an Isolated Web App is first accessed
during a Chrome session (non-ChromeOS platforms only).
</summary>
</histogram>
<histogram name="WebApp.Isolated.SwbnFileUsabilityError"
enum="IsolatedWebAppSwbnFileUsabilityError" expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the exact error why a Signed Web Bundle is unusable. In particular
integrity block or metadata parsing errors are recorded here. The error is
logged together with WebApp.Isolated.SwbnFileUsabilitySuccess when an error
occurs. Warning: this histogram was expired from 2024-05-08 to 2024-06-12;
data may be missing.
</summary>
</histogram>
<histogram name="WebApp.Isolated.SwbnFileUsabilitySuccess" enum="BooleanValid"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records whether a Signed Web Bundle file is usable. To be usable the file's
integrity block and metadata should be read, parsed and validated
successfully. This is logged every time the integrity block and metadata of
an Isolated Web App are parsed, which happens whenever the reader for an
Isolated Web App is not yet cached. Readers are evicted from the cache after
approximately 10 minutes of not reading any responses from their
corresponding Signed Web Bundle. Isolated Web Apps are parsed for any
resources loading for the web app, so any usage could trigger this UMA.
Warning: this histogram was expired from 2024-05-08 to 2024-06-12; data may
be missing.
</summary>
</histogram>
<histogram name="WebApp.Isolated.UpdateError" enum="IsolatedWebAppUpdateError"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records the exact error that occured during the update of an Isolated Web
App. The update process happens at 2 different times: browser launch and
every 5 hours. Admin installed IWAs are also checked everytime the policy
value changes. Additional details can be found at go/iwa-managed-updates.
The error is logged together with WebApp.Isolated.UpdateSuccess in case an
error occurs.
</summary>
</histogram>
<histogram name="WebApp.Isolated.UpdateSuccess" enum="BooleanSuccess"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/web_applications/isolated_web_apps/OWNERS</owner>
<summary>
Records whether the the update of an Isolated Web App was successful or
resulted in an error. The update process happens at 2 different times:
browser launch and every 5 hours. Admin installed IWAs are also checked
everytime the policy value changes. Additional details can be found at
go/iwa-managed-updates.
</summary>
</histogram>
<histogram name="WebApp.LaunchContainer" enum="AppLaunchContainer"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the container used for a web app launch, when the app is launched
(eg. via UI surfaces or intents). Not recorded when the web app is navigated
to via URL.
</summary>
</histogram>
<histogram name="WebApp.Launcher.LaunchResult"
enum="WebAppLauncherLaunchResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of a Progressive Web App (PWA) launcher's attempt to launch
Chrome. Windows-only.
</summary>
</histogram>
<histogram name="WebApp.LaunchSource" enum="LaunchSource"
expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times web apps are launched, grouped by apps::LaunchSource.
The equivalent histogram on Android is called Launch.HomeScreenSource.
</summary>
</histogram>
<histogram name="WebApp.Media.SystemMediaControls"
enum="WebAppSystemMediaControlsEvent" expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records events when Progressive Web Apps (PWAs) play audio as well as when
PWA specific SystemMediaControls are interacted with in the operating
system. This can be to play, pause, skip and other similar actions available
from the OS. This histogram is only used when instanced PWA system media
controls is enabled. The control events (like next) are only fired if the
request comes from system media controls (and the OS) not when the media is
directly interacted.
</summary>
</histogram>
<histogram name="WebApp.MlInstall.DialogResponse"
enum="WebAppMlInstallResponse" expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the user's response to an install dialog, but only if the dialog was
triggered by the ML promotion prediction system, or if the dialog was
already showing when the ML prediction system returned a result. Note that
in the second case, the ML prediction could have been anything, but in the
first case, the prediction is always to show the installation UX. The ML
prediction always happens after a page is loaded, relevant UKM metrics are
gathered, and 3 seconds have gone past. If the result is 'blocked by
guardrails', then that can only occur if there wasn't install UX showing
when ML finished the prediction, and the programatic guardrails applied.
This is reported irrespective of the ML result.
</summary>
</histogram>
<histogram name="WebApp.MlInstall.InstallSource" enum="WebappInstallSource"
expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a result occurs on an installation dialog that was either
triggered via ML or was showing through another means when ML returned a
classification result for the web contents.
</summary>
</histogram>
<histogram name="WebApp.MLInstallPromo.UserResponse"
enum="WebAppMlInstallResponse" expires_after="2025-04-25">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Similar to WebApp.MlInstall.DialogResponse, but measures the user response
only if ML triggered the install dialog for PWAs. This is a subset of the
information that will be sent to the Segmentation system for training, and
is useful in understanding the exact outputs of the ML model.
</summary>
</histogram>
<histogram name="WebApp.NewCraftedAppInstalled.ByUser" enum="BooleanSuccess"
expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of an app installation flow for a site that is promotable
and installable, that is triggered manually by the user. This is measured
when the user completes the full installation flow, by opening the dialog
from either the omnibox icon or the three dot menu option for installing the
site, and performing an action on it.
</summary>
</histogram>
<histogram name="WebApp.NewDiyAppInstalled.ByUser" enum="BooleanSuccess"
expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of a DIY app installation flow that is triggered manually
by the user. This is measured when the user visits the three dot menu and
clicks on `Install Page as App`.
</summary>
</histogram>
<histogram name="WebApp.OpenMode" enum="WebAppOpenMode" expires_after="never">
<!-- expires-never: The dPWA team uses this from time to time to see how web
apps are opened. davidbienvenu@ -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when Chrome is launched to open a Web App; e.g., with --app-id.
Metric describes how the web app opened; e.g., in a standalone window or in
a tab. Previously recorded in Launch.Modes.
</summary>
</histogram>
<histogram name="WebApp.OsSettingsUninstallRegistration.Result"
enum="BooleanSuccess" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of registering a PWA with the OS's app management
surface, which is used to offer uninstallation. This currently is only
implemented on Windows, and this causes the app to appear in the control
panel's list of installed applications. This is triggered during
installations or updates. Updates can occur when the app's name has been
changed, or when the system has determined that the user can uninstall this
app. For example, if this app was installed by the user and policy (so the
user cannot uninstall it, due to policy), but then the policy is removed.
The app is now uninstallable by the user, so this will be registered with
the OS.
</summary>
</histogram>
<histogram name="WebApp.OsSettingsUninstallUnregistration.Result"
enum="BooleanSuccess" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of unregistering a PWA with the OS's app management
surface, which is used to offer uninstallation. This currently is only
implemented on Windows, and this causes the app to no longer appear in the
control panel's list of installed applications. This is triggered during
uninstallations or updates. Updates can occur when the app's name has been
changed, or when the system has determined that the user cannot uninstall
this app. For example, if this app was installed by the user (which is
uninstallable), but then it is force-installed by policy. The app is no
longer uninstallable by the user, so this will be unregistered with the OS.
</summary>
</histogram>
<histogram name="WebApp.OsSettingsUninstallUnregistration.WinOSResult"
enum="WinRegistryErrorCode" expires_after="2025-08-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the windows result code for OS settings uninstallation
unregistration when an app is being uninstalled, so that the app no longer
appears on the control panel's list of installed applications. This is
triggered during uninstallations or updates. Updates can occur when the
app's name has been changed, or when the system has determined that the user
cannot uninstall this app. For example, if this app was installed by the
user (which is uninstallable), but then it is force-installed by policy. The
app is no longer uninstallable by the user, so this will be unregistered
with the OS.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.AppToReplaceStillDefaultInstalledCount"
units="apps" expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Preinstalled web app configs can specify a set of apps to uninstall after
the preinstalled web app is installed.
This records how many apps that are meant to be uninstalled are still
default installed; see https://crbug.com/1266234.
This gets recorded at start up after preinstalled web apps configs have been
applied.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.AppToReplaceStillInstalledCount"
units="apps" expires_after="2024-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Preinstalled web app configs can specify a set of apps to uninstall after
the preinstalled web app is installed.
This records how many apps that are meant to be uninstalled are still
installed. This could occur due to manual installation by the user or Chrome
app sync, see https://crbug.com/1266234.
This gets recorded at start up after preinstalled web apps configs have been
applied.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.AppToReplaceStillInstalledInShelfCount"
units="apps" expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Preinstalled web app configs can specify a set of apps to uninstall after
the preinstalled web app is installed.
This records how many apps that are meant to be uninstalled are still
installed and present in the Chrome OS shelf; see https://crbug.com/1266234.
This gets recorded at start up after preinstalled web apps configs have been
applied.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.ConfigErrorCount" units="apps"
expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web app config files failed to parse as valid
JSON with valid fields. See preinstalled_web_app_utils.cc ParseConfig().
This is recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.CorruptUserUninstallPrefsCount"
units="apps" expires_after="2025-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web app configs have an entry in
UserUninstalledPreinstalledWebAppPrefs while the associated web app is still
installed by default. This state is an error state caused by:
https://crbug.com/1359205 This is recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.DisabledCount" units="apps"
expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web apps configs were disabled for the device.
This is recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.DisabledReason"
enum="PreinstalledAppDisabledReason" expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason a preinstalled installation was disabled. This is
recorded at startup for every app in the preinstalled apps list, before it
is sent to the ExternallyManagedAppManger for synchronization.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.EnabledCount" units="apps"
expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web apps configs were enabled for the device.
This is recorded at start up.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.InstallCount" units="apps"
expires_after="2025-06-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web app installations were attempted during
synchronization at startup. This is the size of install_results in the
SynchronizeInstalledApps() callback.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.UninstallAndReplaceCount" units="apps"
expires_after="2023-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many preinstalled web app installations uninstalled and replaced
an old default app (web app or Chrome app). This corresponds to the
"uninstall_and_replace" field in preinstalled web app configs.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.UninstallAppRemovedCount" units="apps"
expires_after="2025-06-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many of the preinstalled web app uninstalls attempted during
synchronization at startup removed the app since it had no other install
sources. This is the number of items set to kAppRemoved in uninstall_results
in the SynchronizeInstalledApps() callback.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.UninstallSourceRemovedCount" units="apps"
expires_after="2025-06-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many of the preinstalled web app uninstalls attempted during
synchronization at startup removed a single install source but left the app
installed since other sources remained. This is the number of items set to
kInstallSourceRemoved in uninstall_results in the SynchronizeInstalledApps()
callback.
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.UninstallTotalCount" units="apps"
expires_after="2025-06-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total of how many preinstalled web app uninstalls were attempted
during synchronization at startup. This is the total size of
uninstall_results in the SynchronizeInstalledApps() callback.
</summary>
</histogram>
<histogram name="WebApp.ProtocolHandlers.Registration.Result"
enum="BooleanSuccess" expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of registering protocol handlers for PWAs. This is
triggered during OS integration synchronization whenever new protocol
handlers need to be registered for a recently installed app, when an user
allows an app as a protocol handler from chrome://settings/handlers or
during a manifest update process when the app previously did not have any
protocol handlers defined for it.
</summary>
</histogram>
<histogram name="WebApp.ProtocolHandlers.Unregistration.Result"
enum="BooleanSuccess" expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of unregistering protocol handlers for PWAs. This is
triggered during OS integration synchronization whenever an app is being
uninstalled, when a manifest update removes the approved protocol handlers
from an app or when an user has disallowed the app from its protocol
handlers from chrome://settings/handlers.
</summary>
</histogram>
<histogram name="WebApp.ProtocolHandlers.Update.Result" enum="BooleanSuccess"
expires_after="2025-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of updating protocol handlers for PWAs. This is triggered
during OS integration synchronization whenever the protocol handlers for an
existing app needs to be updated as part of the manifest update process or
user approval changes from chrome://settings/handlers.
</summary>
</histogram>
<histogram name="WebApp.RunOnOsLogin.CommandCompletionState"
enum="RunOnOSLoginCommandCompletionState" expires_after="2025-07-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the completion state for Run On OS Login commands being scheduled.
The command can be scheduled when the user changes the Run on OS login
setting and/or when a policy is applied, and the completion state is
recorded after the command either executes succesfully or fails prematurely.
</summary>
</histogram>
<histogram name="WebApp.RunOnOsLogin.Registration.Result" enum="BooleanSuccess"
expires_after="2025-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of registering Run On OS Login with the OS. This is
triggered during OS integration whenever an app is being installed or the
run on OS login state is being updated by the user from various UI surfaces
like the chrome://apps context menu or from the app settings page for an
app.
</summary>
</histogram>
<histogram name="WebApp.RunOnOsLogin.Unregistration.Result"
enum="BooleanSuccess" expires_after="2025-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of unregistering Run On OS Login with the OS. This is
triggered during OS integration whenever an app is being uninstalled or the
user is modifying the app preferences to not have it run on startup from the
chrome://apps context menu or app settings page.
</summary>
</histogram>
<histogram name="WebApp.Shortcuts.Creation.Result"
enum="ShortcutsCreationResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result of shortcut creation for PWA.</summary>
</histogram>
<histogram name="WebApp.Shortcuts.Delete.Result" enum="BooleanSuccess"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of deleting shortcuts for an installed PWA. Shortcuts are usually
the icon in the operating system signifying the app or extension as an OS
entity (e.g. on Mac, it's the .app file). Deleting shortcuts occurs when an
app is uninstalled, which can be triggered by the user uninstalling the app,
or by other 'app management' sources uninstalling an app (e.g. organization
policy).
</summary>
</histogram>
<histogram name="WebApp.Shortcuts.Update.Result" enum="BooleanSuccess"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of updating shortcuts for an installed PWA. Shortcuts are usually
the icon in the operating system signifying the app or extension as an OS
entity (e.g. on Mac, it's the .app file). Updating shortcuts occurs when an
app is updated through the manifest update mechanism, when the Mac
architecture changes, the shortcut version number has been updated, and when
the user denies use of protocol handlers or file handlers, which occurs on
launch of those respective features.
Before 2024/06 on macOS some successes were incorrectly counted as failures.
</summary>
</histogram>
<histogram name="WebApp.ShortcutsMenu.Win.Results"
enum="ShortcutsMenuWinRegistrationResult" expires_after="2025-08-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the different results (both failure and success) that contributes to
shortcuts menu registration on Windows.
</summary>
</histogram>
<histogram name="WebApp.ShortcutsMenuBitmapAndItemCount.Results"
enum="ShortcutsMenuIconAndDataDifference" expires_after="2025-07-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the difference in result between the shortcuts menu icons downloaded
compared to the shortcuts menu item information stored in the web
applications/ DB for that web app. This is measured during OS integration
registration, unregistration or update during the Configuration phase of the
sub managers. This is not measured when the app is not installed, or if
there are no shortcuts menu items infos in the DB.
</summary>
</histogram>
<histogram name="WebApp.ShortcutsMenuRegistration.Result" enum="BooleanSuccess"
expires_after="2025-07-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result of shortcuts menu registration for PWAs.</summary>
</histogram>
<histogram name="WebApp.ShortcutsMenuUnregistered.Result" enum="BooleanSuccess"
expires_after="2025-07-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of shortcuts menu unregistration for PWAs.
</summary>
</histogram>
<histogram name="Webapp.Site.Intents.IntentPickerIconEvent"
enum="IntentPickerIconEvent" expires_after="2025-11-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records events associated with the intent picker icon in the omnibox.
Recorded when the icon is shown or interacted with on Windows, Mac and Linux
only.
</summary>
</histogram>
<histogram name="WebApp.Sync.CorruptSyncEntity"
enum="WebAppManifestIdParseResult" expires_after="2025-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a sync data corruption that was detected after the storage key was
parsed. This is detected on startup (if sync is already connected), when
signing in to sync, or when sync sends changes to Chrome while it's already
running and signed in.
</summary>
</histogram>
<histogram name="WebApp.Sync.InvalidEntity" enum="WebAppStorageKeyParseResult"
expires_after="2025-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records invalid sync data that was detected, and completely ignored /
excluded from the WebAppSyncBridge logic. This is recorded potentially
multiple times during startup (if sync is already connected), when signing
in to sync, or when sync sends changes to Chrome while it's already running
and signed in.
</summary>
</histogram>
<histogram name="Webapp.SyncInitiatedUninstallResult" enum="BooleanSuccess"
expires_after="2024-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records uninstallation result for sync initiated uninstalls in the new
USS-based web applications system.
Warning: this histogram was expired from 2022-04-24 through M106, data may
be missing.
</summary>
</histogram>
<histogram name="Webapp.SystemApps.FreshInstallDuration" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time taken to perform a fresh install of all system web apps. It
measures the time from when we dispatch a call to install them, until we get
all the installation results. This intentionally excludes the scenario where
we don't request to install all the apps for consistency. Recorded in
milliseconds, from 1 millisecond to 3 minutes.
</summary>
</histogram>
<histogram name="Webapp.SystemApps.IconsAreHealthyInSession"
enum="BooleanSuccess" expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether system web app icons are healthy for each user session that
has system web apps installed. Failure indicates that at least one app has
missing or fallback icons.
</summary>
</histogram>
<histogram name="Webapp.SystemApps.IconsFixedOnReinstall" enum="BooleanSuccess"
expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a reinstall fixes previously broken system web app icons.
This is recorded during icon check after a reinstall (when icons were broken
in the last session).
</summary>
</histogram>
<histogram name="WebApp.Uninstall.NonSyncIncompleteCount"
units="Partially uninstalled webapps" expires_after="2024-03-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of incomplete uninstalls that were found on startup.
These web apps are immediately scheduled for uninstall again. This does NOT
include webapps that uninstalled from sync - any incomplete uninstalls from
sync cannot be counted.
</summary>
</histogram>
<histogram name="WebApp.Uninstall.Result" enum="BooleanSuccess"
expires_after="never">
<!-- expires-never: The dPWA team uses this in chirp alerts to ensure
uninstallation doesn't start failing. dmurph@ -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if uninstallation was successful. Uninstall can occur from the user,
enterprise policy, device policy, or chrome sync.
</summary>
</histogram>
<histogram name="Webapp.UninstallDialogAction"
enum="WebappUninstallDialogAction" expires_after="2025-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the user response to the dialog shown when uninstalling a web app.
Warning: this histogram was expired from 2022-05-22 through M106, data may
be missing.
</summary>
</histogram>
<histogram name="Webapp.Update.ManifestUpdateResult"
enum="WebAppManifestUpdateResult" expires_after="2025-10-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of web app manifest update checks during page
navigations. Note that "No app in scope" results are ignored due
to the expected several orders of magnitude higher volume than all other
update results.
</summary>
</histogram>
<histogram name="Webapp.WebAppOriginAssociationFetchResult"
enum="WebAppOriginAssociationFetchResult" expires_after="2025-03-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of web app origin association file fetch when url
handlers are present. Happens when PWA is installed or updated.
</summary>
</histogram>
<histogram name="Webapp.WebAppOriginAssociationParseResult"
enum="WebAppOriginAssociationParseResult" expires_after="2025-03-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of web app origin association file parsing. Happens after
an web app origin association file is fetched.
</summary>
</histogram>
<histogram name="Webapp.WebAppUrlLoaderPrepareForLoadResult"
enum="WebAppUrlLoaderResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result of WebAppUrlLoader::PrepareForLoad().</summary>
</histogram>
</histograms>
</histogram-configuration>