# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Adding a new metric? We have docs for that!
# https://firefox-source-docs.mozilla.org/toolkit/components/glean/user/new_definitions_file.html

---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
  - 'Firefox :: General'

browser.engagement:
  active_ticks:
    type: counter
    description: |
      The number of five-second intervals ('ticks') the user was considered
      'active'.

      'active' means keyboard or mouse interaction with the application.
      It doesn't take into account whether or not the window has focus or is in
      the foreground, only if it is receiving these interaction events.

      Migrated from Telemetry's `browser.engagement.active_ticks`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1376942  # Telemetry
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1545172  # Telemetry
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1741674
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1755050
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1781578
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1545172#c8
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1781578
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811152#c5
    data_sensitivity:
      - interaction
    notification_emails:
      - loines@mozilla.com
    expires: never
    send_in_pings:
      - baseline
      - metrics
    no_lint:
      - BASELINE_PING

  uri_count:
    type: counter
    description: |
      The number of total non-unique http(s) URIs visited, including page
      reloads, after the session has been restored. URIs on minimized or
      background tabs may also be counted. Private browsing uris are included.

      Migrated from Telemetry's
      `browser.engagement.total_uri_count_normal_and_private_mode`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1535169  # Telemetry
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1741674
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1755050
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1781578
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1535169#c14
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1781578
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811152#c5
    data_sensitivity:
      - interaction
    notification_emails:
      - loines@mozilla.com
    expires: never
    send_in_pings:
      - baseline
      - metrics
    no_lint:
      - BASELINE_PING

  profile_count:
    type: quantity
    unit: profiles
    description: |
      Windows only count of the browser profiles on the current system. This
      counts profiles that have been used across all Windows user accounts on
      machine since this probe was added. The value persists across installs.
      A value of 0 is reported if there is an error determining the correct
      count. Unset on other platforms.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1813195
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1647422#c8
    data_sensitivity:
      - technical
    notification_emails:
      - pmcmanis@mozilla.com
      - rtestard@mozilla.com
    send_in_pings:
      - metrics
    expires: never

installation.first_seen:
  failure_reason:
    type: string
    description: >
      Only sent if unable to collect firstSeen data. Can have
      value "NotFoundError" if file not found or other values
      depending on the failure reason.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_FAILURE_REASON

  installer_type:
    type: string
    description: >
      The type of installer used to install Firefox.
      The value is one of "stub", "full", or "msix"
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_INSTALLER_TYPE

  version:
    type: string
    description: >
      The application version installed by the installer
      (not necessarily the current version)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_VERSION

  admin_user:
    type: boolean
    description: >
      Whether the installer is running from an elevated admin user
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_ADMIN_USER

  install_existed:
    type: boolean
    description: >
      Whether there was already an install in this location
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_INSTALL_EXISTED

  profdir_existed:
    type: boolean
    description: >
      Whether the top-level profile directory existed
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_PROFDIR_EXISTED

  other_inst:
    type: boolean
    description: >
      Whether there was already any non-MSIX install on this system
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_OTHER_INST

  other_msix_inst:
    type: boolean
    description: >
      Whether there was already any MSIX install on this system
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_OTHER_MSIX_INST

  silent:
    type: boolean
    description: >
      (optional, present if installer_type is "full")
      Whether this was a silent install
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_SILENT

  from_msi:
    type: boolean
    description: >
      (optional, present if installer_type is "full")
      Whether this was an MSI install
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_FROM_MSI

  default_path:
    type: boolean
    description: >
      (optional, present if installer_type is "full")
      Whether the default path was used
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1811374
    data_sensitivity:
      - technical
    notification_emails:
      - rtestard@mozilla.com
      - application-update-telemetry-alerts@mozilla.com
    expires: never
    telemetry_mirror: INSTALLATION_FIRSTSEEN_DEFAULT_PATH

performance.interaction:
  tab_switch_composite:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: FX_TAB_SWITCH_COMPOSITE_E10S_MS
    description: >
      Time between tab selection and first composite of the tab content onto the
      screen.
      (Migrated from the geckoview metric of the same name.)
    metadata:
      tags:
        - 'Firefox :: Tabbed Browser'
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1481704
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1529352
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - mconley@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

browser.usage:
  interaction:
    type: event
    description: >
      The user interacted with something in the Firefox Desktop frontend.
      Could be via mouse or keyboard, could be a command or a UI element.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1889111
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1889111
    expires: 132
    data_sensitivity: [interaction]
    notification_emails:
      - chutten@mozilla.com
    extra_keys:
      flow_id:
        type: string
        description: >
          An UUIDv4 used to group interaction events together under the
          assumption that they're part of the same user activity.
          See BrowserUsageTelemetry's FLOW_IDLE_TIME for details.
      source:
        type: string
        description: >
          The source of the interaction. Usually a UI section
          (like `bookmarks_bar` or `content_context`), but can also be an input
          method (like `keyboard`).
          The full list of supported `source`s can be found in
          `BrowserUsageTelemetry`'s `BROWSER_UI_CONTAINER_IDS. Plus `keyboard`
          and panes from `about:preferences` listed in `PREFERENCES_PANES`.
          See `_getWidgetContainer` for details.
      widget_id:
        type: string
        description: >
          The item interacted with.
          Usually the `id` of the DOM Node that the user used,
          sometimes the `id` of the parent or ancestor Node instead.
          This node is then conjugated by obscuring any addon id in it
          (turning it to the string `addonX` where `X` is a number stable
          within a browsing session) and then replacing any underscore with a
          hyphen.
          See `BrowserUsageTelemetry#_getWidgetID` and `telemetryId`.
          e.g. "Browser:Reload", "key-newNavigatorTab", "PanelUI-Bookmarks".
    send_in_pings:
      - prototype-no-code-events
