chromium/tools/metrics/histograms/metadata/session/histograms.xml

<!--
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 Session 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="Session.Android.TabbedSessionContainedGoogleSearch"
    enum="Boolean" expires_after="2025-02-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records true if the Google Search Results Page is ever visited during a
    session for a given ChromeTabbedActivity, false otherwise.

    Recorded when an UMA Session ends.
  </summary>
</histogram>

<histogram name="Session.Background.TotalDuration" units="ms"
    expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>src/base/metrics/OWNERS</owner>
  <summary>
    Sum of this metric yields the total time Chrome was running in the
    background. A single session may be represented by multiple values, so that
    this histogram is always present in an uploaded log that represents
    background activity.

    Android-only.
  </summary>
</histogram>

<histogram name="Session.BrowserFullscreen.DurationUpTo24H" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total time a Chrome browser window spends in fullscreen. Content
    fullscreen is not represented. Records are capped at 24 hours.

    The metric is recorded when a browser window exits fullscreen or after 24
    hours has elapsed, whichever comes first. This includes quitting the browser
    while in fullscreen.

    Mac-only.
  </summary>
</histogram>

<histogram name="Session.ID.RestoredDifference" units="Session IDs"
    expires_after="2025-02-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the difference between the highest restored SessionID and the value
    of the pref used for the next SessionID. If the difference is negative, 0 is
    recorded (0 means there is no problem, the session ID's pref was correctly
    restored). Having a value &gt; 0 means that there has been an issue and the
    SessionID was probably not recorded properly. This is recorded after each
    session restoration (so it can be recorded multiple times per run).
  </summary>
</histogram>

<histogram name="Session.IsActive" enum="BooleanActive"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/base/metrics/OWNERS</owner>
  <summary>
    Was a browsing session active when the UMA record was captured? This metric
    is recorded with every UMA log upload when the session tracker is running
    (which, in principle, should always be the case). This metric is NOT
    recorded in logs that reflect information from a previous session (i.e.,
    &quot;stability logs&quot; or &quot;persistent UMA&quot; data related to the
    previous session but not uploaded during the previous session).

    Recorded on Android, iOS, Windows, Mac, and Linux.

    For information on what's considered &quot;active&quot;, see the histogram
    description for Session.TotalDuration.
  </summary>
</histogram>

<histogram name="Session.OpenedTabCounts" units="operations"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the user changed the active tab (this can happen when
    manually selecting a new tab, when a pre-rendered tab is made active, when
    closing the current tab and the next one is selected) during the current
    session (launch/foregrounding to backgrounding).

    This histogram is only logged on iOS when the application is backgrounded.
  </summary>
</histogram>

<histogram name="Session.TimeSpentInFocusMode" units="s" expires_after="M80">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time spent in focus mode browser. This is recorded when the focus mode
    window closes. This metric is only recorded on Win/Mac/Linux/ChromeOS.
  </summary>
</histogram>

<histogram name="Session.TotalDuration" units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The length of a session (launch/foregrounding to quitting/backgrounding) in
    milliseconds, recorded at the end of the session. See
    Session.TotalDurationMax1Day for the same histogram with a higher maximum
    value. (The one's maximum is 1 hour.)

    Windows/Mac/Linux: Sessions only include time a browser window is visible.
    Time when Chrome is visible but not with a regular browsing window will not
    count. For example, neither the &quot;profile picker&quot;, which is
    sometimes shown at startup, nor the first-run experience flow will count as
    active time in Chrome when calculating Session.TotalDuration.

    Windows/Mac/Linux: An active session ends (i) when the user puts another app
    in the foreground, unless audio is playing. (The Chrome windows can still be
    shown. What matters is that a different app has focus.) (ii) when Chrome
    quits. (iii) when the screensaver turns on (again, unless audio is playing).
    (iv) when the user is inactive for five minutes (again, unless audio is
    playing). In this case (starting in M-55), that five minutes is not included
    in the sesson length. (v) when audio stops playing, if the user has been
    inactive for five minutes or Chrome is not in the foreground. Also, until
    M69, there was a bug that caused double-counting of some sessions.

    ChromeOS: not implemented. The ChromeOS histogram Platform.DailyUseTime is
    somewhat similar.

    Android: Session boundaries are wonky. Thus, only look at total duration for
    a client over a day; don't look at individual durations. A session ends (i)
    when the Chrome app leaves the foreground. This sounds obvious yet there are
    many subtle though common edge cases here. Going to the Android Home screen
    via the Home button is an obvious case. Yet, merely pressing the Recents
    button, even if the user reselects the Chrome app (i.e., doesn't leave the
    app) also ends a session. Another set of cases is the screen time-out
    (blanking the screen) or the lock screen. Either will cause Chrome to be
    considered to leave the foreground, ending the session. (ii) some in-app
    actions. Yes, some in-app events trigger the end of a session.

    Android continued: These in-app actions that trigger the end of a session
    can mostly be considered bugs. Cases: (a) switching to viewing Bookmarks,
    History, Downloads, or Settings causes the session to end. Note that
    switching out of those modes does not cause the end of a session, only
    switching in. Oddly, though the interface looks similar, switching to Recent
    Tabs does not trigger the end of a session. Nor does going into the tab
    switcher view. (b) modal pop-ups. JavaScript dialogs and other things that
    take focus away from the Chrome activity can cause this metric to record a
    session end prematurely. See: crbug.com/678276. (c) switching Chrome from as
    a single app in the foreground into multi-window mode. (d) switching Chrome
    from being one of a set of multi-window apps that are displayed to be the
    only app displayed.

    iOS: A session starts when Chrome is launched to the foreground and ends
    when Chrome leaves the screen. This is generally straightforward. Chrome
    leaves the screen when the screen goes blank or shows the lock screen, when
    Chrome clicks a link that opens in another app, or when the user switches to
    another app in the app switcher. Note that, unlike on desktop, even if
    Chrome is playing media in the background or in picture-in-picture mode, the
    session is still terminated when Chrome leaves the screen. Also note that if
    Chrome starts in Safe Mode, the session will only start when the user quits
    Safe Mode. When multiple windows are used, the session is considered ongoing
    as long as there is at least one foreground Chrome window. This was revised
    in M-89 to support multiple windows. In M-87 and M-88, nothing was logged
    due to a bug. Before M-86, a similar metric was recorded, with some
    differences in edge cases. See the old histogram description for more
    details.

    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="Session.TotalDuration.NotOptedInToSyncWithAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.NotOptedInToSyncWithAccount; the only
    difference is the histogram bucket ranges.

    The amount of active browsing time that was spent with sync disabled while
    having a valid refresh token for the primary account. This corresponds to
    the case when the user did not opt in to sync, or sync is disabled due to
    another reason, e.g. enterprise policy. Note that auth errors are not
    counted here, but rather in
    Session.TotalDuration.NotOptedInToSyncWithAccountInAuthError.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDuration.NotOptedInToSyncWithAccountInAuthError"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram
    Session.TotalDurationMax1Day.NotOptedInToSyncWithAccountInAuthError; the
    only difference is the histogram bucket ranges.

    The amount of active browsing time that was spent with sync disabled while
    having a primary account with an invalid refresh token. This corresponds to
    the case when the user did not opt in to sync, or sync is disabled due to
    another reason, e.g. enterprise policy.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDuration.NotOptedInToSyncWithoutAccount"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.NotOptedInToSyncWithoutAccount; the
    only difference is the histogram bucket ranges.

    The amount of active browsing time that was spent with sync disabled and
    signed out of Chrome (no primary account or invalid token for the primary
    account).

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    Note: As part of crbug/1223007, we discovered this histogram was recorded
    for Guest and System profiles which wasn't intentional. This was fixed in
    M93.

    After launching background logging in the late February 2021 on Android,
    this metric started recording for instances that were running in the
    background, even if Chrome had never come to foreground. The bug was fixed
    in M92, and after that the metric is recorded only after an instance becomes
    foregrounded at least once. Hence a glitch is visible in the Feb-Aug 2021
    data for Android.

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

<histogram name="Session.TotalDuration.OptedInToSyncWithAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.OptedInToSyncWithAccount; the only
    difference is the histogram bucket ranges.

    The total session duration (see Session.TotalDuration) that was spent with
    sync enabled and signed in to Chrome (valid token for the primary account).

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDuration.OptedInToSyncWithoutAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.OptedInToSyncWithoutAccount; the only
    difference is the histogram bucket ranges.

    The total session duration (see Session.TotalDuration) that was being spent
    with sync inactive due to an invalid refresh token for the primary account
    (a.k.a. sync in an auth error state). Note that in this state, the user has
    already opted in to sync previously. This corresponds to the so-called
    &quot;Sync paused&quot; state.

    This can for example be the case when a user, that previously opted in to
    sync, signed out of the web on desktop, changed their password, or otherwise
    invalidated their signin.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    After launching background logging in the late February 2021 on Android,
    this metric started recording for instances that were running in the
    background, even if Chrome had never come to foreground. The bug was fixed
    in M92, and after that the metric is recorded only after an instance becomes
    foregrounded at least once. Hence a glitch is visible in the Feb-Aug 2021
    data for Android.

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

<histogram name="Session.TotalDuration.TouchMode" units="times"
    expires_after="2024-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time spent in touch mode in each session (as defined by
    DesktopSessionDurationTracker). Samples correspond one-to-one with
    Session.TotalDuration samples.

    This histogram should be analyzed with Session.TotalDuration. For example,
    the sum of this histogram divided by the sum of Session.TotalDuration is the
    total proportion of active browsing time spent in touch mode.
  </summary>
</histogram>

<histogram name="Session.TotalDuration.WithAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.WithAccount; the only difference is
    the histogram bucket ranges.

    The total session duration (see Session.TotalDuration) that was spent with a
    Google account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDuration.WithoutAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is in the process of being replaced with the equivalent
    histogram Session.TotalDurationMax1Day.WithoutAccount; the only difference
    is the histogram bucket ranges.

    The total session duration (see Session.TotalDuration) that was spent
    without a Google account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    Note: As part of crbug/1223007, we discovered this histogram was recorded
    for Guest and System profiles which wasn't intentional. This was fixed in
    M93.

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

<histogram name="Session.TotalDurationMax1Day" units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The length of a session (launch/foregrounding to quitting/backgrounding) in
    milliseconds, recorded at the end of the session. See Session.TotalDuration
    for details on how the end of a session is decided. The histogram
    Session.TotalDuration records exactly the same values as this histogram,
    just with a smaller maximum value. (That one's maximum is 1 hour.)

    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="Session.TotalDurationMax1Day.NotOptedInToSyncWithAccount"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of active browsing time that was spent with sync disabled while
    having a valid refresh token for the primary account. This corresponds to
    the case when the user did not opt in to sync, or sync is disabled due to
    another reason, e.g. enterprise policy. Note that auth errors are not
    counted here, but rather in
    Session.TotalDurationMax1Day.NotOptedInToSyncWithAccountInAuthError.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram
    name="Session.TotalDurationMax1Day.NotOptedInToSyncWithAccountInAuthError"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of active browsing time that was spent with sync disabled while
    having a primary account with an invalid refresh token. This corresponds to
    the case when the user did not opt in to sync, or sync is disabled due to
    another reason, e.g. enterprise policy.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDurationMax1Day.NotOptedInToSyncWithoutAccount"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of active browsing time that was spent with sync disabled and
    signed out of Chrome (no primary account or invalid token for the primary
    account).

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    Note: As part of crbug/1223007, we discovered this histogram was recorded
    for Guest and System profiles which wasn't intentional. This was fixed in
    M93.

    After launching background logging in the late February 2021 on Android,
    this metric started recording for instances that were running in the
    background, even if Chrome had never come to foreground. The bug was fixed
    in M92, and after that the metric is recorded only after an instance becomes
    foregrounded at least once. Hence a glitch is visible in the Feb-Aug 2021
    data for Android.

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

<histogram name="Session.TotalDurationMax1Day.OptedInToSyncWithAccount"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent with
    sync enabled and signed in to Chrome (valid token for the primary account).

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDurationMax1Day.OptedInToSyncWithoutAccount"
    units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was being spent
    with sync inactive due to an invalid refresh token for the primary account
    (a.k.a. sync in an auth error state). Note that in this state, the user has
    already opted in to sync previously. This corresponds to the so-called
    &quot;Sync paused&quot; state.

    This can for example be the case when a user, that previously opted in to
    sync, signed out of the web on desktop, changed their password, or otherwise
    invalidated their signin.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin or
    sync status changes. These end-points are when the metric is emitted. For
    details on how &quot;stopped interacting with the browser&quot; is decided,
    see the description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    After launching background logging in the late February 2021 on Android,
    this metric started recording for instances that were running in the
    background, even if Chrome had never come to foreground. The bug was fixed
    in M92, and after that the metric is recorded only after an instance becomes
    foregrounded at least once. Hence a glitch is visible in the Feb-Aug 2021
    data for Android.

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

<histogram name="Session.TotalDurationMax1Day.WithAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent with a
    Google account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

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

<histogram name="Session.TotalDurationMax1Day.WithoutAccount" units="ms"
    expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total session duration (see Session.TotalDuration) that was spent
    without a Google account signed into the content area.

    The difference between the With(out)Account measurements and the
    Opted(In/Out)ToSyncWith(out)Account measurements is that these metrics are
    derived from the user's cookies, not their refresh tokens.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their signin
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.

    Note: As part of crbug/1223007, we discovered this histogram was recorded
    for Guest and System profiles which wasn't intentional. This was fixed in
    M93.

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

<histogram name="Session.TotalDurationMax1Day.{HistorySyncState}" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of active browsing time that was spent with history sync
    {HistorySyncState}.

    History sync counts as enabled if EITHER the user opted in to sync and did
    not disable history, OR (on supported platforms) the user is signed-in (but
    not syncing) and specifically opted in to history. Either way, if history is
    disabled by enterprise policy, that counts as NOT enabled.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their history sync
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
  <token key="HistorySyncState">
    <variant name="WithHistorySync" summary="enabled"/>
    <variant name="WithoutHistorySync" summary="NOT enabled"/>
  </token>
</histogram>

<histogram name="Session.TotalDurationMax1Day.{MsbbState}" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of active browsing time that was spent with &quot;Make Searches
    and Browsing Better&quot; {MsbbState}.

    This time is measured from when the user starts interacting with the browser
    until either they stopped interacting with the browser or their history sync
    status changes. These end-points are when the metric is emitted. For details
    on how &quot;stopped interacting with the browser&quot; is decided, see the
    description of Session.TotalDuration.

    Because a duration can end either because the user became inactive or
    because their status changed, the distribution of individual durations
    measured are unlikely to be helpful. Instead, please compare total
    durations.

    This metric is recorded on Win/Mac/Linux/iOS/Android.

    One caveat with this metric is that if the user has multiple profiles open
    at the same time, their session activity will be logged from all the
    profiles, instead of only from the profile that the user is using at that
    moment.
  </summary>
  <token key="MsbbState">
    <variant name="WithMsbb" summary="enabled"/>
    <variant name="WithoutMsbb" summary="NOT enabled"/>
  </token>
</histogram>

<histogram name="Session.TotalNewDefaultSearchEngineCount" units="count"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times a user navigates to their default search engine per
    session, resulting in the creation of a new renderer process.

    This count measures instances where a user's navigation to their default
    search engine triggers the browser to spawn a new renderer process. It
    specifically excludes cases where continuous searches occur within the same
    renderer, as these do not necessitate new renderer creation. The metric is
    emitted at the end of each session.

    The primary goal of this metric is to quantify how frequently, within a
    given session, the browser needs to create a new renderer process
    specifically for handling default search engine interactions.

    This metric is recorded on Desktop.

    One potential issue to consider is that if the user has multiple profiles
    open at once, each profile will report its navigations to its own default
    search engine, potentially inflating the overall count.
  </summary>
</histogram>

<histogram name="Session.WebState.CustomWebViewSerializedSize" units="KB"
    expires_after="2024-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The size of the data used to persist each WKWebView's serialized session
    history. It's recorded every time the WKWebView is serialized, which happens
    on page loads, tab changes and app backgrounding.
  </summary>
</histogram>

<histogram name="Session.WebStates.AllSerializedCertPolicyCachesSize"
    units="KB" expires_after="2024-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The size of all cert policy caches for all open tabs. Recorded when
    SessionServiceIOS encodes the data, which happens on page loads, tab changes
    and app backgrounding.
  </summary>
</histogram>

<histogram name="Session.WebStates.ArchivedDataWithRootObjectTime" units="ms"
    expires_after="2024-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time needed to convert iOS session webState data into something that can
    be written to a file. It's recorded every time the file is written to
    storage, which happens on page loads, tab changes and app backgrounding. The
    time does not include the file writing.
  </summary>
</histogram>

<histogram name="Session.WebStates.LoadingTimeOnMainThread" units="ms"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time spent on the main thread to restore a session as a continuous task.
    It's recorded every time a session is loaded (which happens on application
    startup or when the user re-open a recently closed windows on iPad). This
    includes loading the data from disk as this happens on the main thread.

    Large values for this histogram is indicative of jank for the user as the
    main thread is blocked for the duration reported in the histogram in one
    giant operation.
  </summary>
</histogram>

<histogram name="Session.WebStates.NativeRestoreHasFetchers"
    enum="BooleanHasFetchers" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the WKWebView native session restore has any fetchers or
    not. Recorded each time a native session restore is attempted.
  </summary>
</histogram>

<histogram name="Session.WebStates.NativeRestoreSession" enum="BooleanSuccess"
    expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether generic WKWebView native session restore succeeded in
    creating navigation items. Recorded each time a generic native session
    restore is attempted (if data exists).
  </summary>
</histogram>

<histogram name="Session.WebStates.NativeRestoreSessionFromCache"
    enum="BooleanSuccess" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether WKWebView native session restore from cached data succeeded
    in creating navigation items. Recorded each time a cached native session
    restore is attempted (if data exists).
  </summary>
</histogram>

<histogram name="Session.WebStates.NativeRestoreSessionFromCacheHasData"
    enum="BooleanHasData" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the WKWebView native session restore from cached data
    fetcher has data or not. Recorded each time a cached native session restore
    is attempted.
  </summary>
</histogram>

<histogram name="Session.WebStates.NativeRestoreSessionHasData"
    enum="BooleanHasData" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the generic WKWebView native session restore fetcher has
    data or not. Recorded each time a generic native session restore is
    attempted.
  </summary>
</histogram>

<histogram name="Session.WebStates.ReadFromFileTime" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time needed to read iOS session webState data from a file. It's recorded
    every time a webState is restored, typically on app startup.
  </summary>
</histogram>

<histogram name="Session.WebStates.SavingTimeOnMainThread" units="ms"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time spend on the main thread to save a session as a continuous task.
    It's recorded every time a session is saved (which is scheduled on page
    loads, tab changes and app backgrounding, but repeating events may be
    collapsed). This does not include the time spent writing the file on disk
    (since it is done on a background sequence).

    Large values for this histogram is indicative of jank for the user as the
    main thread is blocked for the duration reported in the histogram in one
    giant operation.
  </summary>
</histogram>

<histogram name="Session.WebStates.SerializedCertPolicyCacheSize" units="KB"
    expires_after="2024-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The size of a single cert policy cache for one tab. Recorded when
    CRWNavigationItemStorage encodes the data, which happens on page loads, tab
    changes and app backgrounding.
  </summary>
</histogram>

<histogram name="Session.WebStates.SerializedSize" units="KB"
    expires_after="2024-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The size of the file used to persist iOS session history. It's recorded
    every time the file is written to storage, which happens on page loads, tab
    changes and app backgrounding.
  </summary>
</histogram>

<histogram name="Session.WebStates.StorageFormat" enum="SessionStorageFormat"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The format used for the session storage. Recorded during every startup of
    the application (after the migration if one is needed). Corresponds to the
    actual format of the storage.
  </summary>
</histogram>

<histogram name="Session.WebStates.StorageMigrationDuration" units="ms"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time spent to migrate the session storage. This corresponds to the time
    the user has to wait during the application startup (and includes the time
    spent to wait for the background processing to complete).

    This is recorded only when the storage may require migration (either because
    the storage needs to be converted or the format is unknown).

    The application is unresponsive (but won't be killed by the watchdog) during
    the migration, so large value for this histogram are bad.
  </summary>
</histogram>

<histogram name="Session.WebStates.StorageMigrationStatus"
    enum="SessionStorageMigrationStatus" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of the session storage format migration (from legacy to optimized
    or from optimized to legacy). Recorded during every startup of the
    application (except if the storage format is undetermined), even if no
    migration is attempted (in that case, the status of the previous migration
    attempt will be reported).

    See go/bling-session-restoration for information about the session storage
    refactoring. This details the different storage format.
  </summary>
</histogram>

<histogram name="Session.WebStates.WriteToFileTime" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time needed to write iOS session webState data to a file. It's recorded
    every time the file is written to storage, which happens on page loads, tab
    changes and app backgrounding.
  </summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstPaint4" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <improvement direction="LOWER_IS_BETTER"/>
  <summary>
    The time from SessionRestore start until a restored tab's first paint.
    Recorded when a restored tab stays visible from the beginning of session
    restore until its first paint, and no non-restored tab is painted during
    that time. See SessionRestore.ForegroundTabFirstPaint4.FinishReason for when
    this is not recorded.

    Warning: this histogram was expired from 2022-10-23 to 2023-02-22; data may
    be missing.
  </summary>
</histogram>

<histogram name="SessionRestore.ForegroundTabFirstPaint4.FinishReason"
    enum="SessionRestoreFinishReason" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason for which attempt to record
    SessionRestore.ForegroundTabFirstPaint4 was deemed complete. Logged once per
    session restore.

    Warning: this histogram was expired from 2022-10-23 to 2024-02-15; data may
    be missing.
  </summary>
</histogram>

<histogram name="SessionRestore.UnrecoverableWriteErrorCount"
    units="operations" expires_after="2022-08-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when SessionService is shutdown (which generally corresponds to
    when chrome is shutdown). The count is the number of times a write error
    happened at a time when it could not immediately be handled.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CachePurgedInKB" units="KB"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total size of the HTML5 SessionStorage browser-side cache purged in KB,
    recorded when memory pressure signal is triggered or cache size hit the
    limits.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CacheSizeInKB" units="KB"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total size of the HTML5 SessionStorage databases in KB in the browser-side
    cache. Recorded each time a new database is opened in memory.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.CommitResult" enum="LevelDBStatus"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of an attempt to commit SessionStorage data to the database.
    Recorded after the commit operation has completed.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError" enum="LevelDBStatus"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of a failed attempt to open a LevelDB database for
    SessionStorage.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError.Disk"
    enum="LevelDBStatus" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of a failed attempt to open a LevelDB database for SessionStorage
    on disk. Recorded when the operation returns and error.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DatabaseOpenError.Memory"
    enum="LevelDBStatus" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of a failed attempt to open a LevelDB database for SessionStorage
    in memory. Recorded when the operation returns an error.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.DestroyDBResult" enum="LevelDBStatus"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of attempting to delete the SessionStorage database. Recorded
    when the operation completes and returns a status.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.OpenError" enum="LocalStorageOpenError"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason opening the LevelDB database that backs SessionStorage failed.
    Recorded after an error is encountered after an open operation.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram base="true" name="SessionStorageContext.OpenResultAfter"
    enum="LocalStorageOpenError" expires_after="2024-12-01">
<!-- Name completed by histogram_suffixes name="SessionStorageContextOpenReasons" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of opening the LevelDB database that backs SessionStorage.
    Recorded after an open operation attempt returns an error.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadNamespacesError"
    enum="LevelDBStatus" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason reading the namespaces metadata of the SessionStorage database
    failed. Recorded after the operation returns an error.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadNextMapIdError" enum="LevelDBStatus"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason reading the next data map id metadata of the SessionStorage
    database failed. Recorded after the operation returns an error.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageContext.ReadVersionError" enum="LevelDBStatus"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason reading the schema version of the SessionStorage database failed.

    Warning: Histogram expired between M95-M110. Data may be missing.
  </summary>
</histogram>

<histogram name="SessionStorageDatabase.Open" enum="SessionStorageDatabaseOpen"
    expires_after="never">
<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success, failure, or database recreated) of trying to open the
    LevelDB database for sessionStorage.
  </summary>
</histogram>

</histograms>

</histogram-configuration>