<!--
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 Bookmarks 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
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

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

<variants name="BookmarkBarContextMenuEntrypoint">
  <variant name="BookmarkBarFolder"
      summary="A folder button on the bookmarks bar"/>
  <variant name="BookmarkBarItem"
      summary="A bookmark item button on the bookmarks bar"/>
  <variant name="EmptySpace" summary="Empty space of the bookmarks bar"/>
  <variant name="PopupFolder"
      summary="A folder inside a bookmark drop-down popup menu"/>
  <variant name="PopupItem"
      summary="A bookmark item inside a bookmark drop-down popup menu"/>
</variants>

<!-- LINT.ThenChange(//chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarContextMenuMetrics.java:BookmarkBarContextMenuEntrypoint) -->

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

<variants name="BookmarkBarContextMenuGesture">
  <variant name="LongPress" summary="Menu triggered via touch long-press"/>
  <variant name="RightClick" summary="Menu triggered via mouse right-click"/>
</variants>

<!-- LINT.ThenChange(//chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarContextMenuMetrics.java:BookmarkBarContextMenuGesture) -->

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

<variants name="BookmarksFileType">
  <variant name="Account" summary="account node"/>
  <variant name="LocalOrSyncable" summary="local-or-syncable node"/>
</variants>

<!-- LINT.ThenChange(//components/bookmarks/common/bookmark_metrics.cc:BookmarksFileType) -->

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

<variants name="EncryptionType">
  <variant name="ClearText" summary="clear text"/>
  <variant name="Encrypted" summary="encrypted"/>
</variants>

<!-- LINT.ThenChange(//components/bookmarks/common/bookmark_metrics.cc:EncryptionType) -->

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

<variants name="ImportantFileWriter">
  <variant name="BookmarkStorage" summary="bookmarks storage for user actions"/>
  <variant name="BookmarkStorageEncrypted"
      summary="encrypted bookmarks storage for user actions"/>
  <variant name="BookmarkStorageEncryptedImmediate"
      summary="encrypted bookmarks storage for profile load"/>
  <variant name="BookmarkStorageImmediate"
      summary="bookmarks storage for profile load"/>
</variants>

<!-- LINT.ThenChange(//components/bookmarks/common/bookmark_metrics.cc:ImportantFileWriter) -->

<histogram name="BookmarkManager.CommandExecuted" enum="BookmarkManagerCommand"
    expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->

  <owner>johntlee@chromium.org</owner>
  <owner>chrome-analysis-team@google.com</owner>
  <summary>
    Logs when a user action triggers a command in the bookmark manager. Commands
    can be triggered by keyboard shortcuts, menu items or other buttons in the
    UI.

    Revised in M-76 when the &quot;Open (double click/enter)&quot; bucket was
    split into two separate buckets, one for bookmarks and one for folders.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="BookmarkManager.ResultsRenderedTime" units="ms"
    expires_after="2026-11-15">
  <owner>johntlee@chromium.org</owner>
  <owner>dpapad@chromium.org</owner>
  <summary>
    Records the time taken to load the bookmarks Web UI and render. This is
    roughly equivalent to 'time to first meaningful paint' for the bookmark
    manager.
  </summary>
</histogram>

<histogram name="Bookmarks.AddBookmarkType" enum="BookmarkType"
    expires_after="2027-01-24">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs whether the bookmark entry is a user bookmark or a partner bookmark
    when it is added. Only recorded on Android.
  </summary>
</histogram>

<histogram name="Bookmarks.AddedPerProfileType" enum="BrowserProfileType"
    expires_after="2027-01-17">
  <owner>rhalavati@chromium.org</owner>
  <owner>chrome-privacy-core@google.com</owner>
  <summary>
    This histogram records when a bookmark is added sliced on profile type.

    This was not recorded for Android before M90. Reading list and partner
    bookmarks aren't reported by it.
  </summary>
</histogram>

<histogram name="Bookmarks.Android.BackendLoaded"
    enum="JavaBookmarkBridgeBackends" expires_after="2026-11-22">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>Recorded when a bookmark bridge backend successfully loads.</summary>
</histogram>

<histogram
    name="Bookmarks.Android.BackendLoadTime.{JavaBookmarkBackendClients}"
    units="ms" expires_after="2027-09-14">
  <owner>wylieb@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    How long it takes to load the given backends in the java bookmark bridge.
    Time is measured from when the bridge singleton is instantiated to when each
    loaded observer call comes in.
  </summary>
  <token key="JavaBookmarkBackendClients">
    <variant name="AccountReadingList"
        summary="The account reading list model."/>
    <variant name="Bookmarks" summary="The bookmark model."/>
    <variant name="LocalReadingList" summary="The local reading list model."/>
    <variant name="PartnerBookmarks" summary="The partner bookmarks shim."/>
    <variant name="ReadingListManager" summary="The reading list manager."/>
  </token>
</histogram>

<histogram name="Bookmarks.Android.LoadedState"
    enum="JavaBookmarkBridgeLoadedState" expires_after="2026-11-22">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Recorded when the aggregated BookmarkBridge loading state changes. This is
    recorded when the java bridge is created, and again when all the different
    bookmark backends complete loading.
  </summary>
</histogram>

<histogram
    name="Bookmarks.AttachedBar.CurrentTab.TimeToFirstVisuallyNonEmptyPaint"
    units="ms" expires_after="2024-01-31">
  <owner>tluk@chromium.org</owner>
  <owner>chrome-cros@google.com</owner>
  <summary>
    Tracks the time between when the user first launches a bookmark from the
    attached bookmark bar into the current tab to when we receive the first
    visually non-empty paint. Emitted after the WebContents in the browser has
    been notified of the non-empty paint.
  </summary>
</histogram>

<histogram name="Bookmarks.AverageNodeSize.{EncryptionType}" units="Bytes"
    expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the average size of {EncryptionType} bookmark nodes on disk.
    Approximated by dividing the total size on disk by the number of non-folder
    nodes. This value won't be recorded if there is no bookmarks or the total
    size on disk is zero.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.Android.ShownOnStartUp"
    enum="BooleanShown" expires_after="2027-01-17">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Records whether the bookmark bar is shown at startup or not. This records
    true (enabled/shown) when the user has a Desktop Profile pref and is on a
    compatible device, or has the device-level preference to show the bar. This
    is an accurate count of the times the bookmark bar is actually visible to
    the user, not a count of how many users have the setting enabled (which can
    be different). This does not count users that have the bookmark bar shown
    due to a forced feature param.

    Note: This histogram is distinctly different than the
    &quot;Bookmarks.BookmarkBar.Shown&quot; histogram. This histogram is only
    tracked on Android devices, and provides an accurate count of the number of
    users with the Bookmark Bar enabled, taking into account not only the
    Profile preference, but also the current device capabilities, window size,
    and device-level preference overrides.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.Android.ShownOnStartUpReason"
    enum="BookmarkBarShownReason" expires_after="2027-02-14">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Records the reason that the bookmark bar is shown/not shown on start-up,
    which can be because of a Profile pref, device preference, or environment
    limitation (e.g. screen size).

    Note: This histogram is only relevant on Android, where the visibility of
    the histogram is controlled by many factors beyond the Profile preference.

    Note: This histogram was incorrectly named in histograms.xml until
    2025-12-18, although it was recording with the correct name in code since it
    was added. Data needs to be manually queried with SQL before this date.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.Click" enum="BookmarkBarClickType"
    expires_after="2027-01-17">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted when users click on an item that is part of the bookmark bar or its
    anchored pop-up menu. Emits an enum corresponding to the type of click that
    a user can make (folder vs. url, overflow, all bookmarks).
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.ContextMenu.{Entrypoint}.Action"
    enum="BookmarkBarContextMenuAction" expires_after="2027-01-01">
  <owner>wylieb@google.com</owner>
  <owner>evanluo@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>Recorded when an action is executed from the context menu.</summary>
  <token key="Entrypoint" variants="BookmarkBarContextMenuEntrypoint"/>
</histogram>

<histogram
    name="Bookmarks.BookmarkBar.ContextMenu.{Entrypoint}.{Gesture}.Opened"
    enum="Boolean" expires_after="2027-01-01">
  <owner>wylieb@google.com</owner>
  <owner>evanluo@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>Recorded when the bookmarks bar context menu is opened.</summary>
  <token key="Entrypoint" variants="BookmarkBarContextMenuEntrypoint"/>
  <token key="Gesture" variants="BookmarkBarContextMenuGesture"/>
</histogram>

<histogram
    name="Bookmarks.BookmarkBar.NavigationOrActivationToFirstContentfulPaint"
    units="ms" expires_after="2027-02-07">
  <owner>robertlin@chromium.org</owner>
  <owner>chrome-prerendering@google.com</owner>
  <summary>
    Measures the time from navigation start or prerender activation to first
    contentful paint for bookmark bar. Refer to
    BookmarkBarMetricsObserver::OnFirstContentfulPaintInPage() for details.
  </summary>
</histogram>

<histogram
    name="Bookmarks.BookmarkBar.NavigationOrActivationToFirstMeaningfulPaint"
    units="ms" expires_after="2027-01-24">
  <owner>robertlin@chromium.org</owner>
  <owner>chrome-prerendering@google.com</owner>
  <summary>
    Measures the time from navigation start or prerender activation to first
    meaningful paint for bookmark bar. Refer to
    BookmarkBarMetricsObserver::OnFirstMeaningfulPaintInMainFrameDocument() for
    details.
  </summary>
</histogram>

<histogram
    name="Bookmarks.BookmarkBar.NavigationOrActivationToLargestContentfulPaint"
    units="ms" expires_after="2027-02-07">
  <owner>robertlin@chromium.org</owner>
  <owner>chrome-prerendering@google.com</owner>
  <summary>
    Measures the time from navigation start or prerender activation to largest
    contentful paint for bookmark bar. Refer to
    BookmarkBarMetricsObserver::OnComplete() for details.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.PrerenderNavigationToActivation"
    units="ms" expires_after="2026-12-16">
  <owner>robertlin@chromium.org</owner>
  <owner>chrome-prerendering@google.com</owner>
  <summary>
    Measures the time from the prerendering navigation starts to prerender
    activation. Refer to
    BookmarkBarMetricsObserver::DidActivatePrerenderedPage() for details.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.Shown" enum="BooleanShown"
    expires_after="2027-02-07">
  <owner>amelies@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records whether the bookmark bar is shown at startup or not.

    Note: This histogram should not be used on Android. For Android devices, use
    the histogram &quot;Bookmarks.BookmarkBar.Android.ShownOnStartUp&quot;. This
    histogram defines &quot;shown&quot; as the current Profile preference on
    start-up. This does not account for the behavior on Android that can hide
    the Bookmark Bar on devices with small screens, or small window sizes (even
    though the Profile pref is enabled), or that Android has device-level
    preferences for the Bookmark Bar as well.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.ToggledByKeyboardShortcut"
    enum="BooleanEnabled" expires_after="2027-01-24">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted when users show/hide the bookmarks bar using the keyboard shortcut
    Ctrl+Shift+B. Emits enabled if the bar will be shown after the shortcut and
    disabled if it will be hidden.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.ToggledInSettings" enum="BooleanEnabled"
    expires_after="2027-01-17">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted when users show/hide the bookmarks bar using the Appearance Settings
    page toggle. Emits enabled if the bar will be shown after the shortcut and
    disabled if it will be hidden.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.TriState.Toggled{Origin}"
    enum="BookmarkBarVisibilityState" expires_after="2027-02-15">
  <owner>mschillaci@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted when users change the bookmarks bar visibility state setting using
    {Origin}. Emits the new BookmarkBarVisibilityState chosen by the user.
  </summary>
  <token key="Origin">
    <variant name="AppearanceSettings"
        summary="the Appearance Settings page toggle"/>
    <variant name="AppMenu" summary="the App (3-dot) menu"/>
    <variant name="ContextMenu"
        summary="the bookmark bar context menu visibility submenu"/>
    <variant name="Keyboard" summary="the keyboard shortcut Ctrl+Shift+B"/>
  </token>
</histogram>

<histogram name="Bookmarks.BookmarkBar.TriState.VisibilityStateChangeOrigin"
    enum="BookmarkBarSettingChangeOrigin" expires_after="2027-02-15">
  <owner>mschillaci@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted whenever the bookmarks bar visibility state setting is changed.
    Emits the BookmarkBarSettingChangeOrigin (e.g. keyboard shortcut, appearance
    settings, context menu, or app menu) that triggered the change.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.TriState.VisibilityStateOnStartUp"
    enum="BookmarkBarVisibilityState" expires_after="2027-02-15">
  <owner>mschillaci@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Records the BookmarkBarVisibilityState of the bookmarks bar on start-up.
    This is only recorded for users who have a Desktop device, or users who have
    explicitly set a device preference on tablet (excluding the default
    unselected state).
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarkBar.TriState.VisibilityStateOnStartUpReason"
    enum="BookmarkBarVisibilityStateOnStartUpReason" expires_after="2027-02-15">
  <owner>mschillaci@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Records the reason for the initial visibility state of the bookmarks bar on
    start-up when using the tri-state visibility preference.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarksBar.DragDropType"
    enum="BookmarkBarDragDropType" expires_after="2027-02-07">
  <owner>dfried@chromium.org</owner>
  <owner>top-chrome-desktop-ui@google.com</owner>
  <summary>
    Records whether a bookmarks bar drag-drop is from a URL (e.g. from the
    location bar) or from the bookmarks bar itself (which is effectively a
    move).
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarksExistInStorageType.{SubtreeSelection}"
    enum="BookmarksExistInStorageType" expires_after="2026-11-29">
  <owner>rsult@google.com</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records the storage in which the bookmarks {SubtreeSelection} are stored in.
    Recorded every 24 hours or on the next startup. Recorded only if there exist
    at least one item (folder or URL) and account bookmark nodes exists (B4B
    enabled and active).
  </summary>
  <token key="SubtreeSelection">
    <variant name="ConsideringAllBookmarks" summary="for all bookmarks"/>
    <variant name="UnderBookmarksBar" summary="in the bookmark bar"/>
  </token>
</histogram>

<histogram
    name="Bookmarks.BookmarksFileLoadResult.{BookmarksFileType}.{EncryptionType}"
    enum="BookmarksFileLoadResult" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the result of the load of the {EncryptionType} file of the
    {BookmarksFileType} bookmarks when loading them from disk at startup.
  </summary>
</histogram>

<histogram name="Bookmarks.BookmarksSerializationResult.{ImportantFileWriter}"
    enum="BookmarksSerializationResult" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the result of the serialization that occurred when
    {ImportantFileWriter} saves bookmarks to disk.

    JSON error can't occur for immediate file writer as they receive a json
    string to save instead of the bookmark model.
  </summary>
</histogram>

<histogram name="Bookmarks.Clone.NumCloned" units="bookmarks"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the number of bookmarks that were selected when a clone operation
    starts. It doesn't include the children included in folder copies.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Count.OnProfileLoad3" units="bookmarks"
    expires_after="2027-01-17">
  <owner>mamir@chromium.org</owner>
  <summary>
    The total number of bookmarks a user has saved, excluding folders. Recorded
    when a profile is opened - precisely, when bookmarks are loaded into storage
    from disk. The count includes all bookmarks both in the &quot;Bookmarks
    Bar&quot; and also under &quot;Other Bookmarks&quot;.

    Opening a guest session (guest profile) also causes an emit to this
    histogram even though guest sessions don't typically allow bookmarks. (The
    value emitted is typically zero.) Under certain enterpise configuration,
    guest sessions can have bookmarks.
  </summary>
</histogram>

<histogram name="Bookmarks.DeleteClearTextFile.{BookmarksFileType}"
    enum="BooleanDeletedOrNot" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records every time we try to delete the clear text file of
    {BookmarksFileType} bookmarks file and whether or not the deletion was
    successful. Absence of the file counts as deletion.
  </summary>
</histogram>

<histogram name="Bookmarks.EditLocation" enum="BookmarkLaunchLocation"
    expires_after="2027-07-30">
  <owner>dfried@chromium.org</owner>
  <owner>top-chrome-desktop-ui@google.com</owner>
  <summary>
    Logs a UI location from which a bookmark is edited, after the user opts to
    edit or rename a bookmark or folder via a context menu, and immediately
    before displaying the edit dialog.
  </summary>
</histogram>

<histogram name="Bookmarks.EditURLSource" enum="BookmarkEditSource"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the edit action users take on their bookmarks.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram
    name="Bookmarks.EncryptedBookmarksFileMatchesResult.{BookmarksFileType}"
    enum="BooleanMatched" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records if the {BookmarksFileType} bookmarks encrypted file content matches
    the unencrypted file content when the application starts.
  </summary>
</histogram>

<histogram name="Bookmarks.EntryPoint" enum="BookmarksEntryPoint"
    expires_after="2027-02-07">
  <owner>ianwen@chromium.org</owner>
  <summary>How users add a new bookmark.</summary>
</histogram>

<histogram
    name="Bookmarks.FallbackToClearTextFileOnLoadResult.{BookmarksFileType}"
    enum="BookmarksFileLoadResult" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the result of the fallback to the clear text file when loading
    {BookmarksFileType} bookmarks on profile load. The encrypted file was
    supposed to be used but was missing.
  </summary>
</histogram>

<histogram name="Bookmarks.IdsReassigned2.OnProfileLoad.{BookmarksFileType}"
    enum="BooleanReassigned" expires_after="2026-10-06">
  <owner>mastiz@chromium.org</owner>
  <owner>arthurmilchior@chromium.org</owner>
  <summary>
    Logs whether or not bookmark node IDs were reassigned when loading the
    {BookmarksFileType}. Recorded on profile load. Note that older versions of
    the browser recorded this using a histogram without the &quot;2&quot; suffix
    in the name, before such original histogram expired.
  </summary>
</histogram>

<histogram name="Bookmarks.LaunchLocation" enum="BookmarkLaunchLocation"
    expires_after="2027-07-30">
  <owner>ianwen@chromium.org</owner>
  <summary>Logs a UI location from which a bookmark is launched.</summary>
</histogram>

<histogram name="Bookmarks.MobileBookmarkManager.DisplayOptionUsed"
    enum="MobileBookmarkManagerBookmarkRowDisplayPref"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records when a user interacts with the display options in the mobile
    bookmarks manager.

    Warning: this histogram was expired from 2024-01-01 to 2024-10-01; data may
    be missing. Warning: this histogram was expired from 2025-03-02 to
    2025-07-08; data may be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.MobileBookmarkManager.FilterShown"
    enum="MobileBookmarkManagerFilter" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records when the filter options are shown to the user in mobile bookmarks
    manager. This isn't recorded in any particular interval, so the raw counts
    should be ignored. There is a gap in data between Jan-Sept 2024.
  </summary>
</histogram>

<histogram name="Bookmarks.MobileBookmarkManager.FilterUsed2"
    enum="MobileBookmarkManagerFilter" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records when a user interacts with the filter options in the mobile
    bookmarks manager. Recorded for both on/off events.
  </summary>
</histogram>

<histogram name="Bookmarks.MobileBookmarkManager.OpenedURL" enum="Boolean"
    expires_after="2027-01-17">
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>clank-app-team@google.com</owner>
  <summary>
    Emitted whenever a user has opened a bookmark via any method within the
    application. This histogram provides a raw count of the amount of usage
    bookmarks has on mobile.
  </summary>
</histogram>

<histogram name="Bookmarks.MobileBookmarkManager.SortOptionUsed"
    enum="MobileBookmarkManagerBookmarkRowSortOrder" expires_after="2026-10-11">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records when a user interacts with the sort options in the mobile bookmarks
    manager.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram
    name="Bookmarks.MultipleOpened.OpenBookmarkTimeInterval2.{BookmarkType}"
    units="ms" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the time interval between the time the bookmark was added/opened.

    Recorded when multi-selection is opened from the bookmark manager. Possible
    that the selection is only 1 bookmark.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
  <token key="BookmarkType">
    <variant name="Normal" summary="a normal bookmark."/>
    <variant name="Partner" summary="a partner bookmark."/>
    <variant name="ReadingList" summary="a reading list article."/>
  </token>
</histogram>

<histogram name="Bookmarks.MultipleOpened.OpenBookmarkType" enum="BookmarkType"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs whether the bookmark entry is a user bookmark or a partner bookmark
    when it is opened.

    Recorded when multi-selection is opened from the bookmark manager. Possible
    that the selection is only 1 bookmark.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.OpenBookmarkManager.PerProfileType"
    enum="BrowserProfileType" expires_after="2025-07-13">
  <owner>roagarwal@chromium.org</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    This records the number of times the bookmark manager is opened from regular
    or Incognito tab. This histogram only records the count from
    ChromeTabbedActivity where we actually have the Bookmark manager UI.
    Recorded when the bookmark menu item is clicked in Android.
  </summary>
</histogram>

<histogram name="Bookmarks.OpenBookmarkTimeInterval2.{BookmarkType}" units="ms"
    expires_after="2027-02-07">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    A new version of Bookmarks.OpenBookmarkTimeInterval.{BookmarkType}, to rule
    out corrupted data introduced by a timestamp bug.
  </summary>
  <token key="BookmarkType">
    <variant name="Normal" summary="a normal bookmark."/>
    <variant name="Partner" summary="a partner bookmark."/>
    <variant name="ReadingList" summary="a reading list article."/>
  </token>
</histogram>

<histogram name="Bookmarks.OpenBookmarkType" enum="BookmarkType"
    expires_after="2027-01-24">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs whether the bookmark entry is a user bookmark or a partner bookmark
    when it is opened.
  </summary>
</histogram>

<histogram name="Bookmarks.Opened.TimeSinceAdded" units="days"
    expires_after="2026-11-22">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    This histogram records when a bookmark is added sliced by when it was added.

    Prior to M111 this histogram was overcounting events, and the data shouldn't
    be used.
  </summary>
</histogram>

<histogram name="Bookmarks.Opened.TimeSinceLastUsed" units="days"
    expires_after="2027-09-27">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    This histogram records when a bookmark is added sliced by when it was last
    used.

    Prior to M111 this histogram was overcounting events, and the data shouldn't
    be used.
  </summary>
</histogram>

<histogram name="Bookmarks.ParentFolderType" enum="BookmarkFolderType"
    expires_after="2027-02-14">
  <owner>emshack@chromium.org</owner>
  <owner>top-chrome-desktop-ui@google.com</owner>
  <summary>
    This histogram records the parent folder added to whenever a bookmark is
    created or moved.
  </summary>
</histogram>

<histogram name="Bookmarks.ReadingList.NumberOfItems" units="items"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs the total number of reading list items shown in the reading list on the
    Android Bookmarks page when it is opened.
  </summary>
</histogram>

<histogram name="Bookmarks.ReadingList.NumberOfReadItems" units="items"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs the number of read items shown in the reading list on the Android
    Bookmarks page when it is opened.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.ReadingList.NumberOfUnreadItems" units="items"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs the number of unread items shown in the reading list on the Android
    Bookmarks page when it is opened.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.RemovedLocation" enum="BookmarkLaunchLocation"
    expires_after="2027-07-30">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Logs a UI location from which one or more bookmarks are removed, after the
    user requests them to be removed via a menu and immediately before they are
    actually removed.
  </summary>
</histogram>

<histogram name="Bookmarks.RemovedSource" enum="BookmarkEditSource"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the source when a bookmark is removed.

    Warning: this histogram was expired from 2024-05-01 to 2024-10-01; data may
    be missing. Warning: this histogram was expired from 2025-03-02 to
    2025-07-08; data may be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.ReorderDropTarget{ParentNode}"
    enum="BookmarkReorderDropTarget" expires_after="2027-02-07">
  <owner>msalama@chromium.org</owner>
  <owner>chrome-signin-team@google.com</owner>
  <summary>
    Records where a bookmark is dropped: on bookmark bar, bookmark menu or a UI
    that uses the bookmark manager API. Recorded everytime a bookmark is
    reordered by drag and drop. Reordered in this context means that a bookmark
    changed its index within the same parent node. {ParentNode}
  </summary>
  <token key="ParentNode">
    <variant name="" summary="Recorded for all bookmarks."/>
    <variant name=".InBookmarkBarNode"
        summary="Recorded only for bookmarks that are children of the
                 Bookmarks Bar node."/>
    <variant name=".InMobileBookmarkNode"
        summary="Recorded only for bookmarks that are children of the Mobile
                 Bookmarks node."/>
    <variant name=".InOtherBookmarkNode"
        summary="Recorded only for bookmarks that are children of the Other
                 Bookmarks node."/>
  </token>
</histogram>

<histogram name="Bookmarks.Storage.EncryptedFileSizeAtStartup" units="KB"
    expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Size of the encrypted bookmarks file, recorded when the bookmarks model is
    loaded.

    This is similar to Bookmarks.Storage.FileSizeAtStartup2, but it is recorded
    for the encrypted bookmarks file.
  </summary>
</histogram>

<histogram name="Bookmarks.Storage.FileSizeAtStartup2" units="KB"
    expires_after="2027-02-24">
  <owner>wylieb@google.com</owner>
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Size of the bookmarks file, recorded when the bookmarks model is loaded.

    Opening a guest session (guest profile) also causes an emit to this
    histogram even though guest sessions don't typically allow bookmarks. (The
    value emitted is typically zero.) Under certain enterpise configuration,
    guest sessions can have bookmarks.
  </summary>
</histogram>

<histogram name="Bookmarks.Storage.TimeSinceLastScheduledSave" units="ms"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Time delta between bookmark file saves, recorded when a save occurs.
    Recorded on the first save as the time since startup.

    Warning: this histogram was expired from 2024-07-01 to 2024-10-01; data may
    be missing. Warning: this histogram was expired from 2025-03-02 to
    2025-07-08; data may be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Storage.TimeToLoadAtStartup2" units="ms"
    expires_after="2027-02-24">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Duration of loading bookmarks from disk, recorded when the bookmark model is
    loaded.

    Opening a guest session (guest profile) also causes an emit to this
    histogram even though guest sessions don't typically allow bookmarks. (The
    value emitted is typically zero.) Under certain enterpise configuration,
    guest sessions can have bookmarks.
  </summary>
</histogram>

<histogram name="Bookmarks.Storage.TimeToSerialize.{ImportantFileWriter}"
    units="ms" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Time it takes {ImportantFileWriter} to serialize the bookmark model to a
    string that will be saved to disk. This time includes encoding JSON object
    to a string and encryption (if any). It's only reported if serialization is
    successful.

    It doesn't include time to write to disk which is reported by
    ImportantFile.WriteDuration.*
  </summary>
</histogram>

<histogram name="Bookmarks.Times.OnProfileLoad.MostRecentlyAddedFolderInDays"
    units="days" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records how long ago (in days) the most recently added folder was added.
    Only emitted if the user has a folder with at least one child. Days are
    computed by comparing the current time to the added time for the folder,
    this value is truncated (std::trunc behavior). Only emitted if there's a
    valid value which replaces the default SIZE_MAX value. The default SIZE_MAX
    won't overlap with values coming from real bookmarks.

    Since bookmarks are synced, this histogram is emitted to regardless of the
    platform the bookmark originated from.

    Opening a guest session (guest profile) also causes an emit to this
    histogram under certain enterpise configurations where guest sessions can
    have bookmarks.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Times.OnProfileLoad.MostRecentlySavedBookmarkInDays"
    units="days" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records how long ago (in days) the most recently saved bookmark was saved.
    Only emitted if the user has a bookmark. Days are computed by comparing the
    current time to the added time for the bookmark, this value is truncated
    (std::trunc behavior). Only emitted if there's a valid value which replaces
    the default SIZE_MAX value. The default SIZE_MAX won't overlap with values
    coming from real bookmarks.

    Since bookmarks are synced, this histogram is emitted to regardless of the
    platform the bookmark originated from.

    Opening a guest session (guest profile) also causes an emit to this
    histogram under certain enterpise configurations where guest sessions can
    have bookmarks.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Times.OnProfileLoad.MostRecentlyUsedBookmarkInDays"
    units="days" expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records how long ago (in days) the most recently saved bookmark was used.
    Only emitted if the user has a bookmark which has been opened. Days are
    computed by comparing the current time to the used time for the bookmark,
    this value is truncated (std::trunc behavior). Only emitted if there's a
    valid value which replaces the default SIZE_MAX value. The default SIZE_MAX
    won't overlap with values coming from real bookmarks.

    Since bookmarks are synced, this histogram is emitted to regardless of the
    platform the bookmark originated from.

    Opening a guest session (guest profile) also causes an emit to this
    histogram under certain enterpise configurations where guest sessions can
    have bookmarks.

    Warning: this histogram was expired from 2024-07-01 to 2024-10-01; data may
    be missing. Warning: this histogram was expired from 2025-03-02 to
    2025-07-08; data may be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Times.OnProfileLoad.TimeSinceAdded3" units="days"
    expires_after="2026-01-15">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the average number of days since each bookmark was added. Recorded
    on profile load. Records zero for profiles with no bookmarks.

    Opening a guest session (guest profile) also causes an emit to this
    histogram even though guest sessions don't typically allow bookmarks. (The
    value emitted is typically zero.) Under certain enterpise configuration,
    guest sessions can have bookmarks.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.TimeToReadFile.{BookmarksFileType}.{EncryptionType}"
    units="ms" expires_after="2027-02-24">
  <owner>plcoirier@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the duration it took to read and decrypt the {EncryptionType} file
    of {BookmarksFileType} bookmarks. It does not include the time it took to
    parse the JSON string or deserialize the JSON value.
  </summary>
</histogram>

<histogram name="Bookmarks.UsageCountPerProfileType" enum="BrowserProfileType"
    expires_after="2027-01-17">
  <owner>rhalavati@chromium.org</owner>
  <owner>chrome-privacy-core@google.com</owner>
  <summary>
    The number of times bookmarks are used in each profile type. Recorded when a
    bookmark is clicked.
  </summary>
</histogram>

<histogram name="Bookmarks.UserFolder.OnProfileLoad.BookmarkBarTopLevelItems"
    units="items" expires_after="2027-01-10">
  <owner>yzshen@chromium.org</owner>
  <owner>mschillaci@google.com</owner>
  <owner>eleanorlee@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the total number of top-level bookmarks/items (including folders) in
    the Bookmark Bar folder. This includes all bookmarks/items, not just those
    currently visible (i.e. items in the overflow menu are included). If there
    are non-profile top-level bookmarks/items, they are not included in this
    count. Recorded on profile load.

    These are the direct descendants of the permanent folder: Bookmarks Bar.
  </summary>
</histogram>

<histogram name="Bookmarks.UserFolder.OnProfileLoad.Count" units="folders"
    expires_after="2026-12-16">
  <owner>yzshen@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the total number of user-generated folders. Recorded on profile
    load.

    These are descendants of any permanent bookmark folders (Bookmarks Bar,
    Mobile Bookmarks, Other Bookmarks).
  </summary>
</histogram>

<histogram name="Bookmarks.UserFolder.OnProfileLoad.TopLevelCount"
    units="folders" expires_after="2026-12-16">
  <owner>yzshen@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the number of top-level user-generated folders. Recorded on profile
    load.

    These are children of any permanent bookmark folders (Bookmarks Bar, Mobile
    Bookmarks, Other Bookmarks).
  </summary>
</histogram>

<histogram name="Bookmarks.UserFolderDepth.UrlAdded" units="folders"
    expires_after="2026-10-11">
  <owner>yzshen@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the depth within the bookmark folder hierarchy where a URL bookmark
    is added.

    This number is the count of user-generated folders which are ancestors of
    the added bookmark.
  </summary>
</histogram>

<histogram name="Bookmarks.UserFolderDepth.UrlOpened" units="folders"
    expires_after="2026-12-27">
  <owner>yzshen@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Records the depth within the bookmark folder hierarchy where a URL bookmark
    is opened.

    This number is the count of user-generated folders which are ancestors of
    the opened bookmark.
  </summary>
</histogram>

<histogram name="Bookmarks.Utilization.OnProfileLoad.PercentageUsed"
    units="Percentage (0-100)" expires_after="2027-01-24">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    The percentage of bookmarks which have been used expressed as 0-100.
    Recorded on profile load.
  </summary>
</histogram>

<histogram name="Bookmarks.Utilization.OnProfileLoad.TotalUnused"
    units="Bookmarks" expires_after="2027-02-07">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    The total number of bookmarks that haven't been opened. Recorded on profile
    load.

    Warning: this histogram was expired from 2025-03-02 to 2025-07-08; data may
    be missing.
  </summary>
</histogram>

<histogram name="Bookmarks.Utilization.OnProfileLoad.TotalUsed"
    units="Bookmarks" expires_after="2027-01-24">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    The total number of bookmarks that have been opened. Recorded on profile
    load.
  </summary>
</histogram>

<histogram name="Bookmarks.UtilizationPerBookmark.OnProfileLoad.DaysSinceUsed"
    units="Days" expires_after="2026-12-16">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    For each bookmark, the number of days since the bookmark was last used.
    Recorded on profile load.
  </summary>
</histogram>

<histogram name="PowerBookmarks.BookmarkManager.PriceTrackingEnabled"
    enum="PriceTrackingState" expires_after="2025-03-02">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Tracks the interactions with the price-tracking toggle present when viewing
    previously saved products.
  </summary>
</histogram>

<histogram name="PowerBookmarks.BookmarkSaveFlow.PriceTrackingEnabled"
    enum="PriceTrackingState" expires_after="2025-03-02">
  <owner>wylieb@google.com</owner>
  <owner>chrome-collections@google.com</owner>
  <summary>
    Tracks the interactions with the price-tracking toggle present when
    initially saving products.
  </summary>
</histogram>

<histogram name="PowerBookmarks.SidePanel.BookmarksShown" units="Bookmarks"
    expires_after="2027-02-14">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-desktop-sea@google.com</owner>
  <component>1457140</component>
  <summary>
    Records the number of bookmarks shown in the side panel. Logged once when
    the side panel is opened and then again every time a folder is navigated to
    (either up or down the tree).
  </summary>
</histogram>

<histogram name="PowerBookmarks.SidePanel.Search.CTR"
    enum="BookmarksSidePanelSearchCTREvent" expires_after="2026-12-16">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-desktop-sea@google.com</owner>
  <component>1457140</component>
  <summary>
    Logs when the power bookmarks side panel is shown, as well as when the
    search bar is defocused as a proxy for performing a search. The CTR can be
    calculated by computing &quot;Searched&quot; / &quot;Shown&quot;.
  </summary>
</histogram>

<histogram name="PowerBookmarks.SidePanel.SearchOrFilter.BookmarksShown"
    units="Bookmarks" expires_after="2026-12-16">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-desktop-sea@google.com</owner>
  <component>1457140</component>
  <summary>
    Records the number of bookmark search or filter results are shown in the
    side panel. Logged once for each time a search is performed or edited or a
    filter is applied or removed.
  </summary>
</histogram>

<histogram name="PowerBookmarks.SidePanel.SortTypeShown"
    enum="BookmarksSidePanelSortType" expires_after="2026-12-16">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-desktop-sea@google.com</owner>
  <component>1457140</component>
  <summary>
    Records the sort type when the side panel is shown or when the sort type
    changes.
  </summary>
</histogram>

<histogram name="PowerBookmarks.SidePanel.ViewTypeShown"
    enum="BookmarksSidePanelViewType" expires_after="2026-12-16">
  <owner>emshack@chromium.org</owner>
  <owner>chrome-desktop-sea@google.com</owner>
  <component>1457140</component>
  <summary>
    Records the view type when the side panel is shown or when the view type
    changes.
  </summary>
</histogram>

<histogram name="PowerBookmarks.SuggestedSaveLocation.{FeatureName}"
    enum="SuggestedSaveLocationState" expires_after="2026-12-08">
  <owner>ayman@chromium.org</owner>
  <owner>mdjones@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Records how a suggested save location provider was used when creating a new
    bookmark. This will give us an idea of the overlap of different suggestion
    providers and whether they are being blocked from previous rejections from
    the user.
  </summary>
  <token key="FeatureName">
    <variant name="ShoppingCollection"/>
  </token>
</histogram>

</histograms>

</histogram-configuration>
