# 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/.

partner_link:
  click:
    objects: ["newtab", "urlbar"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when clicking a partner link. The value is the partner.
    bug_numbers: [1637217, 1644442, 1643426]
    notification_emails:
      - "dao@mozilla.com"
    expiry_version: never
  attribution:
    objects: ["success", "failure", "abort"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when sending an attribution request for a partner link. The value is the partner.
    bug_numbers: [1637217, 1644442, 1643426]
    notification_emails:
      - "dao@mozilla.com"
    expiry_version: never

activity_stream:
  event:
    objects: [
      "ARCHIVE_FROM_POCKET",
      "BLOCK",
      "BOOKMARK_ADD",
      "BOOKMARK_DELETE",
      "CLICK",
      "CLICK_PRIVACY_INFO",
      "CLOSE_NEWTAB_PREFS",
      "SHOW_PERSONALIZE",
      "HIDE_PERSONALIZE",
      "DELETE",
      "DELETE_FROM_POCKET",
      "DELETE_CONFIRM",
      "DIALOG_CANCEL",
      "DIALOG_OPEN",
      "DRAG",
      "DROP",
      "IMPRESSION",
      "MIGRATION_CANCEL",
      "MIGRATION_START",
      "OPEN_NEWTAB_PREFS",
      "OPEN_NEW_WINDOW",
      "OPEN_PRIVATE_WINDOW",
      "PIN",
      "PREF_CHANGED",
      "PREVIEW_REQUEST",
      "SAVE_TO_POCKET",
      "SEARCH",
      "SEARCH_EDIT_ADD",
      "SEARCH_EDIT_CLOSE",
      "SEARCH_EDIT_DELETE",
      "SEARCH_HANDOFF",
      "SHOW_PRIVACY_INFO",
      "SKIPPED_SIGNIN",
      "SUBMIT_EMAIL",
      "DISCLAIMER_ACKED",
      "MENU_ADD_SEARCH",
      "MENU_ADD_TOPSITE",
      "MENU_COLLAPSE",
      "MENU_EXPAND",
      "MENU_MANAGE",
      "MENU_MOVE_DOWN",
      "MENU_MOVE_UP",
      "MENU_PRIVACY_NOTICE",
      "MENU_REMOVE",
      "TOP_SITES_EDIT",
      "TOP_SITES_EDIT_CLOSE",
      "TOPSITE_SPONSOR_INFO",
      "UNPIN"]
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: >
      This is recorded with every user interaction on Activity Stream elements.
    bug_numbers: [1429497, 1429489, 1514732]
    notification_emails:
      - "najiang@mozilla.com"
      - "msamuel@mozilla.com"
      - "rrosario@mozilla.com"
    expiry_version: never
    extra_keys:
      addon_version: The Activity Stream addon version.
      session_id: The ID of the Activity Stream session in which the event occurred
      page: about:home or about_newtab - the page where the event occurred
      user_prefs: An integer representaing a user's A-S settings.
      action_position: The index of card receiving interactions.
  end:
    objects: ["session"]
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: >
      This is recorded with every session ended in Activity Stream.
    bug_numbers: [1429497, 1429489]
    notification_emails:
      - "najiang@mozilla.com"
      - "msamuel@mozilla.com"
    expiry_version: never
    extra_keys:
      addon_version: The Activity Stream addon version.
      session_id: The ID of the Activity Stream session in which the event occurred
      page: about:home or about_newtab - the page where the event occurred
      user_prefs: An integer representaing a user's A-S settings.

aboutprivatebrowsing:
  click:
    objects: ["info_link", "promo_link", "dismiss_button"]
    release_channel_collection: opt-out
    record_in_processes: ["content"]
    description: >
      This is recorded when a user clicks a link on the private browsing newtab.
    bug_numbers: [1709344, 1754635, 1781973, 1811146, 1841925, 1871197]
    notification_emails:
      - "pbz@mozilla.com"
      - "tihuang@mozilla.com"
    expiry_version: "134"
    products:
      - "firefox"

readermode:
  view:
    objects: ["on", "off"]
    release_channel_collection: opt-out
    record_in_processes: ["content"]
    description: >
      This is recorded any time Reader Mode is turned on or off.
    bug_numbers: [1689201]
    notification_emails:
      - "kirill@getpocket.com"
      - "sdowne@getpocket.com"
    expiry_version: never
    extra_keys:
      subcategory: The broad event category for this probe. E.g. navigation
      reader_time: Time spent in Reader Mode session in seconds (whole number)
      scroll_position: Percentage of window scrolled in Reader Mode (whole number)
    products:
      - "firefox"
  button:
    objects: ["click"]
    release_channel_collection: opt-out
    record_in_processes: ["content"]
    description: >
      This is recorded any time a Reader Mode button is clicked.
    bug_numbers: [1693362]
    notification_emails:
      - "kirill@getpocket.com"
      - "sdowne@getpocket.com"
    expiry_version: never
    extra_keys:
      label: The type of button clicked.
    products:
      - "firefox"

addonsManager:
  install:
    description: >
      These events are recorded during the install and update flow for extensions and themes,
      the value of the event is an install_id shared by the events related to the same install
      or update flow.
    objects:
      - "extension"
      - "theme"
      - "locale"
      - "dictionary"
      - "sitepermission"
      - "siteperm_deprecated"
      - "other"
      - "unknown"
    methods: ["install", "update"]
    extra_keys:
      addon_id: A string which identify the extension (when available)
      download_time: The number of ms needed to complete the download
      error: The AddonManager error related to an install or update failure.
      source: >
        The source that originally triggered the add-on installation, one of "about:addons",
        "about:debugging", "about:preferences", "amo", "browser-import", "disco", "distribution",
        "extension", "enterprise-policy", "file-url", "geckoview-app", "gmp-plugin",
        "internal", "plugin", "rtamo", "siteperm-addon-provider" "sync", "system-addon",
        "temporary-addon", "unknown".
        For events with method set to "sideload", the source value is derived from the XPIProvider
        location name (e.g. possible values are "app-builtin", "app-global", "app-profile",
        "app-system-addons", "app-system-defaults", "app-system-local", "app-system-profile",
        "app-system-share", "app-system-user", "winreg-app-user", "winreg-app-gobal")
      method: >
        The method used by the source to install the add-on (included when the source can use more than one,
        e.g. install events with source "about:addons" may have "install-from-file" or "url" as method),
        one of "amWebAPI", "drag-and-drop", "installTrigger", "install-from-file", "link",
        "management-webext-api", "sideload", "synthetic-install", "url", "product-updates".
        e.g. install events with source "about:addons" may have "install-from-file" or "drag-and-drop" as method),
        one of "amWebAPI", "drag-and-drop", "installTrigger", "install-from-file", "link", "management-webext-api",
        "sideload", "synthetic-install", "url", "product-updates", "manager".
      num_strings: The number of permission description strings in the extension permission doorhanger
      updated_from: Determine if an update has been requested by the user or the application ("app" / "user")
      install_origins: This flag indicates whether install_origins is defined in the addon manifest. ("1" / "0")
      step: >
        The current step in the install or update flow:
          - started, postponed, cancelled, failed, permissions_prompt, completed
          - site_warning, site_blocked, install_disabled_warning
          - download_started, download_completed, download_failed
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    bug_numbers: [1433335, 1515697, 1523641, 1549770, 1590736, 1630596, 1672570, 1714251, 1749878, 1781974, 1817100, 1861295]
    release_channel_collection: opt-out
  install_stats:
    description: >
      These events are recorded at the end of the install flow, but only when
      the source that originally triggered the add-on installation is "amo",
      "rtamo" or "disco". The value of an event is the SHA256 hash of the
      addon_id.
    objects:
      - "extension"
      - "theme"
      - "locale"
      - "dictionary"
      - "sitepermission"
      - "siteperm_deprecated"
      - "other"
      - "unknown"
    extra_keys:
      addon_id: >
        A string which identifies the add-on. This value might be trimmed.
      taar_based: >
        This extra key is only set for install flows related to the discovery
        addon. When available it is going to be a string set to "1" for
        TAAR based recommendations, "0" for manually curated and unset if
        not relevant for the particular install flow.
      utm_campaign: >
        The specific product promotion or strategic campaign that drives
        traffic to the install page.
      utm_content: >
        The specific item that a person clicks on to access the install page
        (such as an A/B test, a website banner, or a specific ad).
      utm_medium: The channel used to share the install page.
      utm_source: >
        The name of the product, domain of the website that drives traffic to
        the install page.
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["main"]
    bug_numbers: [1653020, 1699225]
    release_channel_collection: opt-out
  manage:
    description: >
      This events are recorded when an installed add-ons is being disable/enabled/uninstalled,
      the value of the event is the addon_id (which also allow to correlate multiple events
      related to each other).
    objects:
      - "extension"
      - "theme"
      - "locale"
      - "dictionary"
      - "sitepermission"
      - "siteperm_deprecated"
      - "other"
      - "unknown"
    methods: ["disable", "enable", "sideload_prompt", "uninstall"]
    extra_keys:
      source: >
        The source from which the addon has been installed (See extra_keys.source description from
        addonsManager.install telemetry event definition).
      method: >
        The method used by the source to install the add-on (included when the source can use more than one,
        e.g. install events with source "about:addons" may have "install-from-file" or "url" as method).
      num_strings: The number of permission description strings in the extension permission doorhanger
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    bug_numbers: [1433335, 1515697, 1523641, 1549770, 1590736, 1630596, 1672570, 1714251, 1749878, 1781974, 1817100, 1861295]
    release_channel_collection: opt-out
  reportSuspiciousSite:
    description: >
      Sent when a user clicks "Report Suspicious Site" on the dropdown menu of the third-
      party xpinstall doorhanger. The object is always suspiciousSite. The value is the
      site domain, or "(unknown)" if there is no site associated with the prompt.
    objects:
      - suspiciousSite
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
    record_in_processes: ["main"]
    bug_numbers: [1806056, 1817100, 1861295]
    release_channel_collection: opt-out

blocklist:
  addonBlockChange:
    description: >
      An add-on is blocked, or an installed add-on is unblocked.
      When an add-on install/update is blocked, its installation is aborted and the
      add-on is no longer listed in the activeAddons field of TelemetryEnvironment.
      The value is the ID of the add-on.
      The object represents the reason for triggering the blocklistState check:
      "addon_install" is when an add-on is installed.
      "addon_update" is when an add-on is updated after an update check.
      "addon_update_check" is when an add-on is blocked during the update check.
      "addon_db_modified" is when an add-on's blocklistState was altered between application restarts.
      "blocklist_update" is when an add-on's blocklistState changed due to a blocklist update. This
      may be due to the blocklist being disabled by preferences or enterprise policies, but it is
      more commonly the result of updating entries in the blocklist.
    objects: ["addon_install", "addon_update", "addon_update_check", "addon_db_modified", "blocklist_update"]
    extra_keys:
      blocklistState: >
        The blocklistState of the add-on. 0 is unblocked, 2 is blocked.
        1 is soft blocked (this state does not exist in blocklist v3).
      addon_version: >
        Version of the add-on. Used together with an add-on's ID (value) to identify
        add-ons to block.
      signed_date: >
        Timestamp of the add-on (when it was signed via AMO).
        This field is missing (0) for "addon_update_check".
      hours_since: >
        The number of hours that have passed since this version of the add-on was installed or updated.
        At least zero when the blocklist is updated, -1 otherwise.
      mlbf_last_time: >
        The generation time of the most recent entry in the blocklist.
        Time generated by AMO when the blocklist entry was created.
        May be 0 when the blocklist is disabled.
      mlbf_generation: >
        The generation time to identify the bloomfilter that was used for this blocklist decision.
        The bloomfilter is updated less frequently than the so-called stashes in the RemoteSettings
        collection that holds the blocklist data. The stashes take precedence over the bloomfilter
        in blocklist decisions.
        Time generated by AMO when the blocklist entry was created.
        May be 0 when the blocklist is disabled.
      mlbf_source: >
        The source of the RemoteSettings attachment that holds the bloom filter.
        This field is documented in more detail in the definition of the blocklist.mlbf_source scalar.
        Possible values are "dump_match", "cache_match", "remote_match", "dump_fallback", "cache_fallback", "unknown".
    notification_emails: ["addons-dev-internal@mozilla.com", "rwu@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
    record_in_processes: ["main"]
    bug_numbers: [1662857, 1730037, 1763529, 1811159, 1861296]
    release_channel_collection: opt-out

downloads:
  added:
    description: >
      Sent when downloading a new file. Possible values are in contained in DownloadList::kFileExtensions.
      All other downloads not in the listare marked as other.
    objects: ["fileExtension"]
    bug_numbers: [1627676, 1706355]
    notification_emails: ["rtestard@mozilla.com", "emalysz@mozilla.com"]
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: never

form_autocomplete:
  show:
    objects: ["logins"]
    bug_numbers: [1619498, 1628849]
    description: >-
      An content form autocomplete popup was shown. Details on the timing and context are provided.
      The `value` is the number of milliseconds since the autocomplete search started.
    expiry_version: never
    extra_keys:
      acFieldName: The "field name" token (last one) of the field's autocomplete attribute.
      fieldType: The `type` property value of the field.
      generatedPasswo: The number of generated password rows shown.
      hadPrevious: Whether the autocomplete results had cached previous results it could use.
      typeWasPassword: Whether the input `type` was ever "password".
      insecureWarning: The number of insecure login field warning rows shown (should be 0 or 1).
      login: The number of login rows shown (with or without the domain line).
      importableLogin: The number of import suggestion rows shown.
      loginsFooter: The number of "Manage Passwords" footer row shown.
      stringLength: Length of the text in the field that triggered these results.
    notification_emails: ["passwords-dev@mozilla.org"]
    products:
      - firefox
    record_in_processes: ["main"]
    release_channel_collection: opt-out

address:
  doorhanger:
    description: >-
      User interactions for the browser address autofill doorhanger.
    objects:
      - "capture_doorhanger"
      - "update_doorhanger"
      - "edit_doorhanger"
    methods:
      - "show"
      - "save"
      - "update"
      - "cancel"
      - "disable"
      - "pref"
      - "learn_more"
    bug_numbers: [1801039]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
  manage:
    description: >-
      User interactions for address autofill preferences management UI.
    objects:
      - "manage"
    methods:
      - "show"
      - "add"
      - "delete"
      - "show_entry"
      - "edit"
    bug_numbers: [1801039]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
  address_form:
    description: >-
      User interactions for address autofill forms
        'detected': Recorded when a form is recognized as a credit card form.
                    The possible value of cc_* in extra_keys are "true", "false", or 0
                    When the value is "true", the field is identified via autocomplete attribute
                    When the value is "false", the field is not detected in the form
                    When the value is an 0, then the field is identified by regexp-based heuristic
        'popup_shown': Recorded when autofill popup is shown. Using field_name to record the field
                       that triggers this event
        'filled': Recorded when a form is autofiled. Possible values are
                  `filled`, `not_filled`, `user_filled` or `unavailable`
        'filled_modified': Recorded when a field is autofilled and then modified by the user.
                           Using field_name to record the field that triggers this event.
        'submitted': Recorded when a form is submitted. Possible values are `autofilled`, `not_filled`, `user_filled` or `unavailable`
        'cleared' Recorded when a form is cleared . Using field_name to record the field that triggers this event
    objects: ["address_form"]
    methods: ["detected", "popup_shown", "filled", "filled_modified", "submitted", "cleared"]
    bug_numbers: [1804901]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    extra_keys:
      street_address: street address result, filled when method is `detected`, `filled`, or `filled_modified`
      address_line1: address_line1 result, filled when method is `detected`, `filled`, or `filled_modified`.
      address_line2: address_line2 result, filled when method is `detected`, `filled`, or `filled_modified`.
      address_line3: address_line3 result, filled when method is `detected`, `filled`, or `filled_modified`.
      address_level1: address_level1 result, filled when method is `detected`, `filled`, or `filled_modified`.
      address_level2: address_level2 result, filled when method is `detected`, `filled`, or `filled_modified`.
      postal_code: postal_code result, filled when method is `detected`, `filled`, or `filled_modified`.
      country: country result, filled when method is `detected`, `filled`, or `filled_modified`.
      field_name: Name of the field being affected by the method, filled when method is `popup_shown` or `filled_modified`.
  address_form_ext:
    description: >-
      Address has too many fields so we cannot cover them all in the above `address_form` telemetry
      This telemetry is used to record address fields that are not listed in `address_form`
    objects: ["address_form_ext"]
    methods: ["detected", "filled", "submitted"]
    bug_numbers: [1804901]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    extra_keys:
      name: name
      given_name: give_name
      additional_name: additional_name
      family_name: family_name
      email: email
      organization: organization
      tel: telephone

creditcard:
  doorhanger:
    description: >-
      User interactions for the browser credit card autofill doorhanger.
    objects:
      - "capture_doorhanger"
      - "update_doorhanger"
    methods:
      - "show"
      - "save"
      - "update"
      - "cancel"
      - "disable"
    bug_numbers: [1653073, 1653083, 1720608, 1767907]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
  manage:
    description: >-
      User interactions for credit card autofill preferences management UI.
    objects:
      - "manage"
    methods:
      - "show"
      - "add"
      - "delete"
      - "show_entry"
      - "edit"
    bug_numbers: [1653073, 1654167, 1720608, 1767907]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
  cc_form:
    description: >-
      User interactions for credit card autofill forms
    objects:
      - "cc_form"
    methods:
      - "detected"
      - "popup_shown"
      - "filled"
      - "filled_modified"
      - "submitted"
    bug_numbers: [1653073, 1653162, 1720608, 1767907]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    extra_keys:
      cc_name_found: Whether the cardholder name field was identified
      cc_number_found: Whether the credit card number field was identified
      cc_exp_found: Whether the expiration date was identified
      cc_name: Whether the name was autofilled (autofilled / not_filled / user_filled / unavailable)
      cc_number: Whether the credit card number field was autofilled (autofilled / not_filled / user_filled / unavailable)
      cc_exp: Whether the expiration date was autofilled (autofilled / not_filled / user_filled / unavailable)
      field_name: Name of the field being affected by the method
      fields_not_auto: >-
        Number of fields in a `submitted` event that were not autofilled.
        Note that this number counts all fields in a form, even if some of those fields might have been identified as password and/or address fields.
        Additionally, it may include input elements that are not rendered as user-modifiable, such as hidden fields as well as <button> elements.
      fields_auto: Number of fields in the `submitted` event that were autofilled
      fields_modified: Number of fields in a `submitted` event that were autofilled and later modified
  cc_form_v2:
    description: >-
      User interactions for credit card autofill forms
      Expected values are store in extra_keys and are varies depends on the methods
        'detected': Recorded when a form is recognized as a credit card form.
                    The possible value of cc_* in extra_keys are "true", "false", or an integer between 0-100
                    When the value is "true", the field is identified via autocomplete attribute
                    When the value is "false", the field is not detected in the form
                    When the value is an integer greater than 0, the value indicates the confidence value from fathom (normalized to 0-100)
                    When the value is an 0, then the field is identified by regexp-based heuristic
        'popup_shown': Recorded when autofill popup is shown. Using field_name to record the field
                       that triggers this event
        'filled': Recorded when a form is autofiled. Possible values are
                  `filled`, `not_filled`, `user_filled` or `unavailable`
        'filled_modified': Recorded when a field is autofilled and then modified by the user.
                           Using field_name to record the field that triggers this event.
        'submitted': Recorded when a form is submitted. Possible values are `autofilled`, `user_filled` or `unavailable`
        'cleared' Recorded when a form is cleared . Using field_name to record the field that triggers this event
    objects:
      - "cc_form_v2"
    methods:
      - "detected"
      - "popup_shown"
      - "filled"
      - "filled_modified"
      - "submitted"
      - "cleared"
    bug_numbers: [1757731]
    notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"]
    expiry_version: never
    products:
      - "firefox"
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    extra_keys:
      cc_name: cardholder name field result. Used by `detected`, `filled`, and `filled_modified` methods.
      cc_number: credit card number field result
      cc_type: credit card type result
      cc_exp: credit card expiration date
      cc_exp_month: credit card expiration month
      cc_exp_year: credit card expiration year
      field_name: Name of the field being affected by the method. Used by `popup_shown` and `filled_modified` methods.

extensions.data:
  migrateResult:
    objects: ["storageLocal"]
    bug_numbers: [1470213, 1553297, 1590736, 1630596, 1672570, 1714251, 1749878, 1781974, 1817100, 1861295]
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    extra_keys:
      backend: The selected backend ("JSONFile" / "IndexedDB").
      data_migrated: The old extension data has been migrated ("y" / "n").
      error_name: >
        A DOMException error name if any ("OtherError" for unknown errors).
        The error has been fatal if the `backend` extra key is "JSONFile",
        otherwise it is a non fatal error which didn't prevented the
        extension from switching to the IndexedDB backend.
      has_jsonfile: The extension has a JSONFile ("y" / "n").
      has_olddata: The extension had some data stored in the JSONFile ("y" / "n").
    description: >
      These events are sent when an extension is migrating its data to the new IndexedDB backend,
      the value of this event is the addon id.
  storageLocalError:
    objects: ["get", "set", "remove", "clear"]
    bug_numbers: [1606903, 1649948, 1689255, 1730038, 1763523, 1811148, 1861297]
    notification_emails: ["addons-dev-internal@mozilla.com"]
    expiry_version: "132"
    products:
      - "firefox"
    record_in_processes: ["main", "content"]
    release_channel_collection: opt-out
    extra_keys:
      error_name: >
        A DOMException error name if any ("OtherError" for unknown errors).
    description: >
      These events are collected when an extension triggers an unexpected error
      while running a storage.local API call (e.g. because of some underlying
      QuotaManager and/or IndexedDB error), the value of this event is the
      addon id.

homepage:
  preference:
    objects: ["ignore"]
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: >
      This is recorded whenever the homepage preference is either reset due to
      being on the ignore list, or setting is blocked due to being on the same
      list.
      The value field records the reason for the ignore. "saved_reset" for
      when a saved preference value is reset. "set_blocked" for when the setting
      was blocked and "set_blocked_extension" for when we know a WebExtension
      attempting to set it was blocked.
    bug_numbers: [1535049]
    notification_emails:
      - "mdeboer@mozilla.com"
      - "rharter@mozilla.com"
    expiry_version: never
    extra_keys:
      webExtensionId: The identifier of the webextension, if known.

navigation:
  search:
    objects: ["about_home", "about_newtab", "contextmenu", "oneoff",
              "suggestion", "alias", "enter", "searchbar", "urlbar",
              "urlbar_handoff", "urlbar_persisted", "urlbar_searchmode",
              "webextension"]
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: >
      This is recorded on each search navigation.
      The value field records the action used to trigger the search:
        "enter", "oneoff", "suggestion", "alias", null (for contextmenu and webextension)
    bug_numbers: [1316281, 1496764]
    notification_emails:
      - "mdeboer@mozilla.com"
      - "rharter@mozilla.com"
    expiry_version: never
    extra_keys:
      engine: The id of the search engine used.

upgrade_dialog:
  trigger:
    objects: ["reason"]
    bug_numbers: [1697222]
    description: >
      Triggering behaviors of the upgrade dialog. Value indicates which condition failed or all satisfied.
    expiry_version: never
    notification_emails: ["edilee@mozilla.com"]
    products: ["firefox"]
    record_in_processes: ["main"]
    release_channel_collection: opt-out

aboutpreferences:
  show:
    objects: ["initial", "click", "hash"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded whenever a pane is shown inside about:preferences.
      The object field records the type of action that resulted in showing a pane. Possible values are as follows,
        "initial" is used when a pane is shown direclty. This happens with or without a hash in the URL. The "general" pane
        loads without such a hash, when the pane is loaded via the "main" entrypoints in the menu system or with shortcuts.
        "click" is used when a pane is shown when user clicks category name inside about:preferences.
        "hash" is used when a pane is shown via a hash change in url.
      The value field records identifier of pane shown
    bug_numbers: [1738187]
    notification_emails:
      - "pdahiya@mozilla.com"
      - "gijs@mozilla.com"
    expiry_version: never

normandy:
  enroll:
    objects: ["preference_study", "addon_study", "preference_rollout", "addon_rollout", "nimbus_experiment"]
    description: >
      Sent when applying a Normandy recipe of the above types has succeeded.
    extra_keys:
      experimentType: >
        For preference_study and nimbus_experiment recipes, the type of experiment this is ("exp" or "exp-highpop").
      branch: >
        The slug of the branch that was chosen for this client.
      addonId: For addon_study recipes, the ID of the addon that was installed.
      addonVersion: For addon_study recipes, the version of the addon that was installed.
    bug_numbers: [1443560]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  enroll_failed:
    methods: ["enrollFailed"]
    objects: ["addon_study", "preference_rollout", "preference_study", "addon_rollout", "nimbus_experiment"]
    description: >
      Sent when applying a Normandy recipe of the above types has failed.
    extra_keys:
      reason: An error code describing the failure.
      preference: >
        For preference_rollout when reason=conflict, the name of the preference
        that was going to be modified.
      detail: >
        For addon_study and branched_addon study, extra text describing the failure.
      branch: >
        The branch that failed to enroll.
      addonId: The ID of the addon for the rollout when reason=conflict.
      conflictingSlug: The slug for the conflicting rollout.
      enrollmentId: The enrollment ID of the conflicting rollout.
      prefBranch: For preference_study when reason=invalid-branch, the branch that was invalid.
    bug_numbers: [1443560]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  update:
    objects: ["addon_study", "preference_rollout", "addon_rollout", "nimbus_experiment"]
    description: >
      This event is fired when a client detects that a recipe of the
      ahove types has changed on the server, and the new version of the
      recipe is being applied over an existing, older version previously
      fetched from the server.
    extra_keys:
      previousState: >
        For preference_rollout recipes, the state of the rollout that had been applied
        previously.
      addonId: For addon_study recipes, the ID of the addon that was updated.
      addonVersion: For addon_study recipes, the version of the addon that was installed.
      branch: The branch that was updated.
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.
    bug_numbers: [1443560, 1474413]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  update_failed:
    methods: ["updateFailed"]
    objects: ["addon_study", "addon_rollout"]
    description: >
      Sent when applying a new version of a Normandy recipe of the above types (over an
      existing, older version previously fetched from the server) has failed.
    extra_keys:
      reason: An error code describing the failure.
      detail: >
        Extra text describing the failure. Currently only provided for addon_study.
      branch: The branch that failed to update.
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.
    bug_numbers: [1474413]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  unenroll:
    objects: ["preference_study", "addon_study", "preference_rollback", "addon_rollback", "nimbus_experiment"]
    description: >
      Sent when a Normandy recipe of certain types "ends".  N.B. For
      preference_rollback, this is fired when the recipe is fired (the
      recipe that "ends" is a corresponding preference_rollout).
    extra_keys:
      reason: A code describing the reason why the recipe ended.
      didResetValue: >
        For preference_study, "true" or "false" according to whether we put the preference back the way it was.
      addonId: For addon_study, the ID of the addon that ended.
      addonVersion: For addon_study, the version of the addon for which the recipe ended.
      branch: The branch of the experiment that this client was on.
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.
      changedPref: >
        For preference_study or nimbus_experiment, the preference that was
        detected to change that caused the unenrollment.
    bug_numbers: [1443560, 1843126]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  unenroll_failed:
    methods: ["unenrollFailed"]
    description: >
      Sent when unenrolling a user fails (see the unenroll event).
    objects: ["preference_rollback", "preference_study", "addon_rollback", "nimbus_experiment"]
    extra_keys:
      reason: A code describing the reason the unenroll failed.
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.
      changedPref: For preference_study, the preference that was detected to change that caused the attempted unenrollment.
      caller: The function that caused the stop to happen, included on Nightly to aid debugging.
      originalReason: The code that would had been used for the unenrollment, had it not failed.
    bug_numbers: [1443560, 1693402]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never

  graduate:
    objects: ["preference_rollout"]
    description: >
      Sent when a preference rollout ends due to the rolled-out
      preference becoming a new default.
    bug_numbers: [1443560]
    notification_emails: ["normandy-notifications@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.
      reason: The reason the rollout graduated

  expose:
    objects: [
      "nimbus_experiment",
    ]
    methods: ["expose"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main", "content"]
    description: >
      This records an event at the moment the user is exposed to an experiment
      treatment. The event is triggered either by the code checking that a
      certain experiment feature is enabled or when that feature value is used.
      This is different from enrollment or experiment activation because it
      registers when a user actually gets exposed to the experiment feature.
    bug_numbers: [1675104]
    notification_emails: ["ujet@mozilla.com"]
    expiry_version: "never"
    extra_keys:
      branchSlug: The slug for the branch the user is enrolled in.
      featureId: The type of experiment variant the user was enrolled into.

  expPrefChanged:
    objects: ["preference_study"]
    methods: ["expPrefChanged"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: [main]
    description: >
      This records that a preference that was set by an experiment has been
      changed away from its experimental value. This can be triggered by a
      user changing a preference at runtime, by the preference being changed
      on disk when Firefox is not running, or by the preference already
      having a user-set value when a user has enrolls in a default branch
      experiment.
    bug_numbers: [1698684]
    notification_emails: ["mcooper@mozilla.com"]
    expiry_version: never
    extra_keys:
      preferenceName: The preference that changed
      reason: The way that the preference change was detected ("observer", "sideload", or "onEnroll")
      enrollmentId: A unique ID for this enrollment that will be included in all related Telemetry.

  validation_failed:
    objects: ["nimbus_experiment"]
    methods: ["validationFailed"]
    release_channel_collection: "opt-out"
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This records when validation of a recipe fails.
    bug_numbers: [1762652]
    notification_emails: ["barret@mozilla.com"]
    expiry_version: never
    extra_keys:
      reason: Why validation failed (one of "invalid-recipe", "invalid-branch", or "invalid-reason").
      branch: If reason == invalid-branch, the branch that failed validation.
      feature: If reason == invalid-feature, the invalid feature ID.
      locale: >
        If reason == missing-locale, the locale that was missing from the
        localization table.
        If reason == missing-l10n-entry, the locale that was missing the
        localization entries.
      l10n_ids: >
        If reason == missing-l10n-entry, a comma-separated list of missing
        localization entries.

browser.launched_to_handle:
  system_notification:
    objects: ["toast"]
    description: >
      Recorded when Firefox launches to complete a native notification popped by
      a system (chrome privileged) alert.  Windows-only at the time of writing.
    bug_numbers:
      - 1788960
    notification_emails:
      - nalexander@mozilla.com
      - rtestard@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      name: >
        The `name` of the system (chrome privileged) alert that Firefox was
        launched to complete.
      action: >
        The `action` of the system (chrome privileged) alert that Firefox was
        launched to complete.

browser.migration:
  opened:
    objects: ["wizard"]
    description: >
      Recorded when the migration wizard opens.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
  no_browsers_found:
    objects: ["wizard"]
    description: >
      Recorded when the migration wizard reports that there are no browsers to migrate from.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
  browser_selected:
    objects: ["wizard"]
    description: >
      Recorded when the user selects a browser to migrate from.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the browser that was selected.
  profile_selected:
    objects: ["wizard"]
    description: >
      Recorded when the user selects a profile to migrate from. If the browser doesn't
      support multiple profiles, this will not be recorded.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the browser that had a profile selected for it.
  resources_selected:
    objects: ["wizard"]
    description: >
      Recorded when the user selects resources from the browser / profile to import.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the browser that had resources selected for it.
      history: >
        "1" if history was selected. "0" otherwise.
      formdata: >
        "1" if form data was selected. "0" otherwise.
      passwords: >
        "1" if passwords was selected. "0" otherwise.
      bookmarks: >
        "1" if bookmarks were selected. "0" otherwise.
      payment_methods: >
        "1" if payment methods were selected. "0" otherwise.
      extensions: >
        "1" if extensions were selected. "0" otherwise.
      other: A count of the number of other resource types that were selected.
      configured: >
        "1" if Variant 2 of the new Migration Wizard was being used, and the list of
        resources was expanded. "0" otherwise.
  linux_perms:
    objects: ["wizard"]
    description: >
      Recorded if the user is on Linux and the browser is installed in a sandboxed
      environment that prevents it from reading other browser's data, and the user
      is presented with instructions and an option to grant the browser permission
      to read that other data.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the migrator that will perform the migration.
  safari_perms:
    objects: ["wizard"]
    description: >
      Recorded if the user is on macOS, chose to migrate from Safari, and was presented with
      the page of the wizard requesting permission to read from the Safari profile folder.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
  safari_password_file:
    objects: ["wizard"]
    description: >
      Recorded if the user is on macOS, chose to migrate from Safari, and was presented with
      the page of the wizard requesting to import passwords from a file. This only gets recorded
      in the new migration wizard.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
  migration_started:
    objects: ["wizard"]
    description: >
      Recorded when the user begins a migration.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the migrator that will perform the migration.
      history: >
        "1" if history is being migrated. "0" otherwise.
      formdata: >
        "1" if form data is being migrated. "0" otherwise.
      passwords: >
        "1" if passwords are being migrated. "0" otherwise.
      bookmarks: >
        "1" if bookmarks are being migrated. "0" otherwise.
      payment_methods: >
        "1" if payment methods are being migrated. "0" otherwise.
      extensions: >
        "1" if extensions are being migrated. "0" otherwise.
      other: A count of the number of other resource types that are being migrated.
  migration_finished:
    objects: ["wizard"]
    description: >
      Recorded when the user finishes a migration.
    bug_numbers:
      - 1824786
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: [main]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      migrator_key: The key of the migrator that will perform the migration.
      history: >
        "1" if history was migrated. "0" otherwise.
      formdata: >
        "1" if form data was migrated. "0" otherwise.
      passwords: >
        "1" if passwords were migrated. "0" otherwise.
      bookmarks: >
        "1" if bookmarks were migrated. "0" otherwise.
      payment_methods: >
        "1" if payment methods were migrated. "0" otherwise.
      extensions: >
        "1" if no extensions were matched, "2" if only some extensions
        were matched, "3" if all extensions were matched, and "0" if extensions
        weren't selected for migration.
      other: A count of the number of other resource types that were migrated.

pwmgr:
  open_management:
    objects: ["aboutprotections", "autocomplete", "capturedoorhanger", "contextmenu", "direct", "fxamenu", "mainmenu", "pageinfo", "preferences", "snippet"]
    methods: ["open_management"]
    description: >
      Sent when opening the password management UI.
    bug_numbers: [1543499, 1454733, 1545172, 1550631, 1622971]
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org", "sfoster@mozilla.com"]
    products:
      - "firefox"
    record_in_processes: [main, content]
    release_channel_collection: opt-out
    expiry_version: never
  reauthenticate:
    description: >
      Measure how often users are asked to authenticate with their Operating System or Master Password to gain access to stored passwords.
      Possible values are as follows,
        "success" should be used when the user authenticates and provides a password or other authentication factor.
        "success_no_prompt" should be used when the feature is enabled but no prompt is given to the user because they have recently authenticated.
        "success_disabled" is used when the feature is disabled.
        "success_unsupported_platform" should be set when the user attempts to authenticate on an unsupported platform.
        "success_no_password" should be used when the user doesn't have an OS password set.
        "fail" should be used when the user cancels the authentication prompt or an unexpected exception is encountered. The user may or may not have provided an incorrect password before cancelling.
    objects: [
      "master_password",
      "os_auth",
    ]
    methods: ["reauthenticate"]
    extra_keys:
      auto_admin: >
        If the AutoAdminLogon Windows feature is enabled. This feature disables password prompt when logging in to Windows.
      require_signon: >
        If the Power Settings on Windows are configured to not prompt for password upon resuming from sleep.
    bug_numbers:
      - 1628029
      - 1623745
      - 1636729
      - 1642267
    expiry_version: never
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org", "jaws@mozilla.com"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: [main, content]
  mgmt_interaction:
    description: >
      These events record interactions on the about:logins page.
    extra_keys:
      breached: >
        Whether the login is marked as breached or not. If a login is both breached and vulnerable, it will only be reported as breached.
      vulnerable: >
        Whether the login is marked as vulnerable or not. If a login is both breached and vulnerable, it will only be reported as breached.
      sort_key: The key that is used for sorting the login-list. Should only be set with the "sort" method.
    objects: [
      "existing_login",
      "list",
      "new_login",
      "password",
      "username",
    ]
    methods: [
      "cancel",
      "copy",
      "delete",
      "dismiss_breach_alert",
      "edit",
      "filter",
      "hide",
      "learn_more_breach",
      "learn_more_vuln",
      "new",
      "open_site",
      "save",
      "select",
      "show",
      "sort",
    ]
    bug_numbers:
      - 1548463
      - 1600958
      - 1549115
      - 1628165
    expiry_version: never
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org", "jaws@mozilla.com"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: [content]
  autocomplete_field:
    objects: ["generatedpassword"]
    methods: ["autocomplete_field", "autocomplete_shown"]
    description: >
      "autocomplete_field": The first time each unique generated password is used to fill a login field - i.e. the user selects it from from the autocomplete dropdown on a password input
      "autocomplete_shown": The first time the password generation option is shown in the autocomplete dropdown on a password input for a site per session
    bug_numbers: [1548878, 1616356]
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org", "sfoster@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: never
  filled_field_edited:
    objects: ["generatedpassword"]
    methods: ["filled_field_edited"]
    description: >
      The first time each generated password filled in a website form field is edited by the user in a field it was filled in
    bug_numbers: [1548880]
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org"]
    products:
      - "firefox"
      - "thunderbird"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: never
  saved_login_used:
    objects: ["form_login", "form_password", "auth_login", "prompt_login"]
    description: >
      Each time a saved login is used in a form or authentication dialog.
    bug_numbers: [1631130]
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org"]
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      filled: Whether the browser filled the login details for the user vs. typing saved values.
  mgmt_menu_item_used:
    description: >
      Record interactions with the about:logins menu.
    objects: [
      "import_from_browser",
      "import_from_csv",
      "import_csv_complete",
      "export",
      "export_complete",
      "preferences",
    ]
    bug_numbers: [1641396, 1641777, 1641393]
    expiry_version: never
    notification_emails: ["loines@mozilla.com", "passwords-dev@mozilla.org"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: [content, main]
  doorhanger_submitted:
    description: >
      A login is saved or updated via the capture doorhanger. Carries information about whether
      the username and password _that were saved/updated by the user_ were modified in the
      doorhanger, selected from the suggestion autocomplete, or neither. `did_edit_X` and
      `did_select_X` will never both be true in the same event.

      The `object` describes the type of doorhanger when it was originally created. Note that user
      updates to the doorhanger may change whether a login is actually saved or updated, but will
      not impact the sent object.
    objects: ["save", "update"]
    bug_numbers: [1650929, 1650941, 1678200, 1714252, 1754637, 1850872]
    expiry_version: "142"
    release_channel_collection: opt-out
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["passwords-dev@mozilla.org"]
    extra_keys:
      did_edit_un: >
        Whether or not the saved/updated username was modified by the user typing into the
        username field.
      did_select_un: >
        Whether or not the saved/updated username was selected by the user choosing a suggested
        value from the autocomplete popup.
      did_edit_pw: >
        Whether or not the saved/updated password was modified by the user typing into the
        password field.
      did_select_pw: >
        Whether or not the saved/updated password was selected by the user choosing a suggested
        value from the autocomplete popup.

# Record telemetry based on individual Firefox relay UI (autocomplete popup, notification panel)
relay_integration:
  popup_option:
    description: >
      Firefox relay integration autocomplete popup
    objects: ["offer_relay", "fill_username"]
    methods: ["shown", "clicked"]
    bug_numbers: [1804502]
    expiry_version: "never"
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["passwords-dev@mozilla.org"]
    extra_keys:
      scenario: Describes the auth context for now only SignupForm is supported
      error_code: >
        The error code after users click the fill username autocomplete entry.
        Only present if the object is "fill_username".
        When the event is successful, the error_code  is 0.
      is_relay_user: >
        Whether the user is a relay user or not.
        Only present if the object is "offer_relay"
    release_channel_collection: opt-out
  mask_panel:
    description: >
      Panels to show the state of the email alias generation
    objects: ["reuse_panel"]
    methods: ["shown", "get_unlimited_masks", "reuse_mask"]
    bug_numbers: [1804502]
    expiry_version: "never"
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["passwords-dev@mozilla.org"]
    extra_keys:
      error_code: >
        The error code after users click the email alias generation panel.
        When the event is successful, the error_code  is 0.
    release_channel_collection: opt-out
  opt_in_panel:
    description: >
      Panel to opt-in Firefox Relay Integration
    objects: ["opt_in_panel"]
    methods: ["shown", "enabled", "postponed", "disabled"]
    bug_numbers: [1804502]
    expiry_version: "never"
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["passwords-dev@mozilla.org"]
    release_channel_collection: opt-out
  pref_change:
    description: >
      Checkbox in the settings page to enable/disable relay
    objects: ["pref_change"]
    methods: ["enabled", "disabled"]
    bug_numbers: [1804502]
    expiry_version: "never"
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["passwords-dev@mozilla.org"]
    release_channel_collection: opt-out

jsonfile:
  load:
    description: >
      Records when JSONFile.sys.mjs consumers are trying to access a missing or corrupt json file.
      For example, Login Store trying to access logins.json when it has gone missing or corrupt.
    # Keep synchronized with TELEMETRY_BASENAMES from JSONFile.sys.mjs.
    objects: ["logins", "autofillprofiles"]
    bug_numbers: [1599567]
    expiry_version: never
    products: ["firefox"]
    record_in_processes: [main]
    notification_emails: ["prathiksha@mozilla.com", "passwords-dev@mozilla.org"]

fxa:
  connect:
    objects: ["account"]
    methods: ["connect", "disconnect"]
    description: >
      Records when a Firefox Account, or a Firefox Account service, is explicitly
      connected or disconnected from the browser via an intentional user action.
    extra_keys:
      fxa: Whether the account itself was connected or disconnected.
      sync: Whether sync was connected or disconnected.
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    bug_numbers: [1595954]
    notification_emails: ["sync-dev@mozilla.org"]
    release_channel_collection: opt-out
    expiry_version: never

fxa_avatar_menu:
  click:
    objects: [
      "account_settings",
      "cad",
      "login",
      "send_tab",
      "sync_now",
      "sync_settings",
      "sync_tabs",
      "sync_tabs_sidebar",
      "toolbar_icon",
      "unver_sync_settings",
      "open_monitor",
      "open_send",
      "monitor_cta",
      "relay_cta",
      "vpn_cta",
      "sync_cta"
      ]
    methods: ["click"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: This is recorded on interactions with the FxA avatar menu on the toolbar
    bug_numbers: [1524665, 1585459, 1606203]
    notification_emails: ["vbudhram@mozilla.com", "loines@mozilla.com"]
    expiry_version: "never"
    extra_keys:
      fxa_status: >
        The current state of the user. Possible states are "not_configured", "unverified",
        "signedin" and "login_failed".
      fxa_avatar: Boolean for whether or not account has set an avatar

fxa_app_menu:
  click:
    objects: [
      "account_settings",
      "cad",
      "login",
      "send_tab",
      "sync_now",
      "sync_settings",
      "sync_tabs",
      "sync_tabs_sidebar",
      "toolbar_icon",
      "unver_sync_settings",
      "open_monitor",
      "open_send",
      "monitor_cta",
      "relay_cta",
      "vpn_cta",
      "sync_cta"
      ]
    methods: ["click"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: This is recorded on interactions with the FxA menu in the app (hamburger) menu
    bug_numbers: [1542334, 1606203]
    notification_emails: ["vbudhram@mozilla.com", "loines@mozilla.com"]
    expiry_version: "never"
    extra_keys:
      fxa_status: >
        The current state of the user. Possible states are "not_configured", "unverified",
        "signedin" and "login_failed".
      fxa_avatar: Boolean for whether or not account has set an avatar

messaging_experiments:
  reach:
    objects: [
      "cfr",
      "moments_page",
      "infobar",
      "spotlight",
      "featureCallout",
      "fxms_message_1",
      "fxms_message_2",
      "fxms_message_3",
      "fxms_message_4",
      "fxms_message_5",
      "fxms_message_6",
      "fxms_message_7",
      "fxms_message_8",
      "fxms_message_9",
      "fxms_message_10",
      "fxms_message_11"
    ]
    methods: ["reach"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This records whether a branch's targeting is satisfied for Messaging System
      experiments. All qualified branch ID(s) will be recorded in the 'extra_keys'
      for each active experiment, and the event 'value' will be the experiment ID
    bug_numbers: [1471318]
    notification_emails: ["ujet@mozilla.com"]
    expiry_version: "never"
    extra_keys:
      branches: >
        A semicolon separated string for all the qualified branch ID(s).
        e.g. "control;variant_01;treatment_02".
  targeting:
    objects:
      - attribute_error
      - attribute_timeout
    methods:
      - targeting
    extra_keys:
      source: "Source of targeting expression: experiment slug or message id"
    release_channel_collection: opt-out
    products:
      - firefox
    record_in_processes:
      - main
    description: >
      Record generic JEXL errors that result from issues with experiment or
      message targeting expressions. The value field contains the namespace and
      attribute name that caused the error.
    bug_numbers:
      - 1644743
    notification_emails:
      - ujet@mozilla.com
    expiry_version: never

# This category contains event entries used for Telemetry tests.
# They will not be sent out with any pings.
telemetry.test:
  test:
    methods: ["test1", "test2"]
    objects: ["object1", "object2"]
    bug_numbers: [1286606]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This is a test entry for Telemetry.
    expiry_version: never
    extra_keys:
      key1: This is just a test description.
      key2: This is another test description.
  optout:
    objects: ["object1", "object2"]
    bug_numbers: [1286606]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This is an opt-out test entry.
    expiry_version: never
    extra_keys:
      key1: This is just a test description.
  expired_version:
    objects: ["object1", "object2"]
    bug_numbers: [1286606]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This is a test entry with an expired version.
    expiry_version: "3"
  not_expired_optout:
    objects: ["object1"]
    bug_numbers: [1286606, 1685406]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    description: This is an opt-out test entry with unexpired date and version.
    release_channel_collection: opt-out
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main", "content"]
    expiry_version: "999"
  main_only:
    objects: ["object1"]
    bug_numbers: [1313326]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This event is used to test main-process only recording.
    expiry_version: never
  content_only:
    objects: ["object1"]
    bug_numbers: [1313326]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["content"]
    description: This event is used to test content-process only recording.
    expiry_version: never
    extra_keys:
      foo: This is just a test description.
      bar: And this is another test description.
  main_and_content:
    objects: ["object1"]
    bug_numbers: [1313326]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main", "content"]
    description: This event is used to test main and content process recording.
    expiry_version: never
  default_products:
    objects: ["object1"]
    bug_numbers: [1452552]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This event is used to test default products main recording.
    expiry_version: never
  desktop_only:
    objects: ["object1"]
    bug_numbers: [1452552]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    record_in_processes: ["main"]
    description: This event is used to test desktop-only main recording.
    expiry_version: never
    products: ["firefox","thunderbird"]
  multiproduct:
    objects: ["object1"]
    bug_numbers: [1452552]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    record_in_processes: ["main"]
    description: This event is used to test multiproduct main recording.
    expiry_version: never
    products: ["firefox", "fennec", "thunderbird"]
  mobile_only:
    objects: ["object1"]
    bug_numbers: [1452552]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    record_in_processes: ["main"]
    description: This event is used to test mobile-only main recording.
    expiry_version: never
    products: ["fennec"]
  mirror_with_extra:
    objects: ["object1"]
    bug_numbers: [1685406]
    notification_emails: ["glean-team@mozilla.com"]
    record_in_processes: ["all"]
    description: Test-only. This event is mirrored to from Glean.
    expiry_version: never
    extra_keys:
      extra1: "This must be kept in-sync"
      extra2: "With the extra_keys in the Glean metric"
    products: ["firefox", "thunderbird"]
    release_channel_collection: opt-out

# This is a secondary category used for Telemetry tests.
# The events here will not be sent out with any pings.
telemetry.test.second:
  test:
    objects: ["object1", "object2", "object3"]
    bug_numbers: [1286606]
    notification_emails: ["telemetry-client-dev@mozilla.com"]
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    description: This is a test entry for Telemetry.
    expiry_version: never
    extra_keys:
      key1: This is just a test description.

devtools.main:
  activate:
    objects: ["responsive_design", "split_console"]
    bug_numbers: [1455273]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User activates the responsive_design or split_console in the devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      host: "Toolbox host (positioning): bottom, left, right, window, page or other."
      width: Toolbox width rounded up to the nearest 50px.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  add_breakpoint:
    objects: ["debugger"]
    bug_numbers: [1463123]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has added a breakpoint to a script.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  blackbox:
    objects: ["debugger"]
    bug_numbers: [1463126]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User clicked the blackbox button to blackbox a script.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  close:
    objects: ["tools"]
    bug_numbers: [1453312]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User closes devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      host: "Toolbox host (positioning): bottom, side, window or other."
      width: Toolbox width rounded up to the nearest 50px.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  close_adbg:
    objects: ["aboutdebugging"]
    bug_numbers: [1504173]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User closes about:debugging.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      width: Toolbox width rounded up to the nearest 50px.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  connection_attempt:
    objects: ["aboutdebugging"]
    bug_numbers: [1549970]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User is trying to connect to a remote runtime.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_id: Randomly generated id to keep to group various events related to the same connection attempt.
      connection_type: Connection type
      runtime_id: Random id generated to track events related to a single runtime
      status: One of (cancelled, failed, not responding, start, success).
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  continue:
    objects: ["debugger"]
    bug_numbers: [1463122]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has pressed the continue button on a paused script.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  deactivate:
    objects: ["responsive_design", "split_console"]
    bug_numbers: [1455275]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User deactivates the responsive_design or split_console in the devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      host: "Toolbox host (positioning): bottom, side, window or other."
      width: Toolbox width rounded up to the nearest 50px.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  device_added:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: A new device was detected in about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Device name
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  device_removed:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: A previously listed device was removed in about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Device name
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  edit_html:
    objects: ["inspector"]
    bug_numbers: [1463080]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User is editing HTML via the context menu item in the markup view.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      made_changes: Indicates whether changes were made.
      time_open: The amount of time in ms that the HTML editor was open.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  edit_resend:
    objects: ["netmonitor"]
    bug_numbers: [1463171]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has executed edit / resend in the netmonitor.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The toolbox session start time e.g. 13963.
  edit_rule:
    objects: ["ruleview"]
    bug_numbers: [1463081]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User is editing a CSS rule by clicking on or next to a CSS property, enabling / disabling a rule or creating a new property.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  enter:
    objects: ["accessibility", "application", "dom", "inspector", "jsdebugger", "memory", "netmonitor", "options", "performance", "storage", "styleeditor", "webconsole", "whatsnew","other", "fakeTool4242", "testBlankPanel", "testTool", "testtool1", "testTool1072208", "testtool2"]
    bug_numbers: [1441070]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User opens a tool in the devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      host: "Toolbox host (positioning): bottom, side, window or other."
      width: Toolbox width rounded up to the nearest 50px.
      message_count: The number of cached console messages.
      start_state: debuggerStatement, breakpoint, exception, tab_switch, toolbox_show, initial_panel, toggle_settings_off, toggle_settings_on, key_shortcut, select_next_key, select_prev_key, tool_unloaded, inspect_dom, unknown etc.
      panel_name: The name of the panel opened or other
      cold: Is this the first time the current panel has been opened in this toolbox?
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  execute_js:
    objects: ["webconsole"]
    bug_numbers: [1463083]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has executed some JS in the Web Console.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      input: Indicates from which input the command was evaluated ("inline" for regular input, "multiline" for editor mode).
      lines: The number of lines contained in the command.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  reverse_search:
    objects: ["webconsole"]
    bug_numbers: [1489489]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has toggled, navigated or evaluated expressions from reverse search .
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      functionality: Indicates functionality of reverse search being accessed.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  exit:
    objects: ["accessibility", "application", "dom", "inspector", "jsdebugger", "memory", "netmonitor", "options", "performance", "storage", "styleeditor", "webconsole", "whatsnew", "other", "fakeTool4242", "testBlankPanel", "testTool", "testtool1", "testTool1072208", "testtool2"]
    bug_numbers: [1455270]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User closes a tool in the devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      host: "Toolbox host (positioning): bottom, side, window or other."
      width: Toolbox width rounded up to the nearest 50px.
      next_panel: The name of the panel closed or other.
      panel_name: The name of the panel opened or other
      reason: debuggerStatement, breakpoint, exception, tab_switch, toolbox_show, initial_panel, toggle_settings_off, toggle_settings_on, key_shortcut, select_next_key, select_prev_key, tool_unloaded, inspect_dom, toolbox_closed, unknown etc.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  filters_changed:
    objects: ["netmonitor", "webconsole"]
    bug_numbers: [1463144, 1463095]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has changed filters in the web console.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      trigger: "The cause of the filter change: error, warn, log, info, debug, css, netxhr, net, text or reset and all, html, css, js, xhr, fonts, images, media, ws or other for netmonitor"
      active: Comma separated list of active filters.
      inactive: Comma separated list of inactive filters.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  inspect:
    objects: ["aboutdebugging"]
    bug_numbers: [1504173]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has clicked on the inspect button of one of the debug targets of aboutdebugging.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      runtime_type: The runtime type
      target_type: The target type
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  jump_to_definition:
    objects: ["webconsole"]
    bug_numbers: [1463101]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has clicked "Jump to definition" icon (next to logged functions) in the web console.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  jump_to_source:
    objects: ["webconsole"]
    bug_numbers: [1463092]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has clicked a link to a source file in the web console.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  object_expanded:
    objects: ["webconsole"]
    bug_numbers: [1463104]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has expanded an object in the web console.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  open:
    objects: ["tools"]
    bug_numbers: [1416024, 1456984]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User opens devtools toolbox.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      entrypoint: How was the toolbox opened? CommandLine, ContextMenu, HamburgerMenu, KeyShortcut, SessionRestore, SystemMenu or SlowScript
      first_panel: The name of the first panel opened.
      host: "Toolbox host (positioning): bottom, side, window or other."
      splitconsole: Indicates whether the split console was open.
      width: Toolbox width rounded up to the nearest 50px.
      shortcut: The key combination pressed. Used only in the case that entrypoint === KeyShortcut.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  open_adbg:
    objects: ["aboutdebugging"]
    bug_numbers: [1504173]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User opens about:debugging.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      width: Toolbox width rounded up to the nearest 50px.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  pause_on_exceptions:
    objects: ["debugger"]
    bug_numbers: [1463117]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has changed pausing behaviour in the debugger.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      exceptions: Pause on exceptions is checked.
      caught_exceptio: Pause on caught exceptions is checked.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  pause:
    objects: ["debugger"]
    bug_numbers: [1463118]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: Debugger has paused in a script due to a breakpoint or exception.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      reason: caught-exception, uncaught-exception, pausing, debugger-statement or breakpoint.
      lib_stacks: Number of collapsed callstacks in the call tree. These are call stacks that are part of external libraries e.g. react, which are collapsed  by default.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  persist_changed:
    objects: ["netmonitor", "webconsole"]
    bug_numbers: [1531395, 1542312]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has changed log persist status.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  pretty_print:
    objects: ["debugger"]
    bug_numbers: [1463125]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User clicked the pretty print button to pretty print a script.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  remove_breakpoint:
    objects: ["debugger"]
    bug_numbers: [1463124]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has removed a breakpoint from a script.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  runtime_added:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: A new remote runtime has been detected in about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Name of the device on which the runtime is running (optional)
      runtime_id: Random id generated to track events related to a single runtime
      runtime_name: Name of the runtime
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  runtime_connected:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507, 1530997]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: Connection was established with a remote runtime in about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Name of the device on which the runtime is running (optional)
      runtime_id: Random id generated to track events related to a single runtime
      runtime_name: Name of the runtime
      runtime_os: Operating system on which the runtime is running (eg Android or Linux)
      runtime_version: Version of the runtime (eg 67.0a1)
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  runtime_disconnected:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: Connection was lost with a remote runtime in about debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Name of the device on which the runtime is running (optional)
      runtime_id: Random id generated to track events related to a single runtime
      runtime_name: Name of the runtime
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  runtime_removed:
    objects: ["aboutdebugging"]
    bug_numbers: [1521507]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: A previously listed runtime was removed in about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      connection_type: Connection type
      device_name: Name of the device on which the runtime is running (optional)
      runtime_id: Random id generated to track events related to a single runtime
      runtime_name: Name of the runtime
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  select_page:
    objects: ["aboutdebugging", "application"]
    bug_numbers: [1504173, 1643253]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User navigates to a new page of an application such as about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      page_type: Type of page the user navigates to (this-firefox, connect, runtime)
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  show_profiler:
    objects: ["aboutdebugging"]
    bug_numbers: [1521511]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has clicked on the "Open Profiler" button in a runtime page of about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      runtime_id: Random id generated to track events related to a single runtime
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  select_ws_frame:
    objects: ["netmonitor"]
    bug_numbers: [1555638]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has selected a WebSocket frame.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  sidepanel_changed:
    objects: ["inspector", "netmonitor"]
    bug_numbers: [1463083, 1463169]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has switched sidepanel tabs.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      oldpanel: The panel the user is switching from
      newpanel: The panel the user is switching to
      os: The OS name and version e.g. "Linux 4.4.0-1014-aws", "Darwin 14.5.0", "Windows_NT 6.1.7601" or "Windows_NT 10.0.15063." This can be used to make sense of data when a feature is only available from a particular operating system build number.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  start_worker:
    objects: ["application"]
    bug_numbers: [1643253]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: User manually starts a service worker
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  throttle_changed:
    objects: ["netmonitor"]
    bug_numbers: [1463147]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has changed the throttle setting in the netmonitor.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      mode: No throttling, GPRS, Regular 2G, Good 2G, Regular 3G, Good 3G, Regular 4G / LTE, DSL, WI-FI, or Offline.
      session_id: The toolbox session start time e.g. 13963.
  tool_timer:
    objects: ["animationinspector", "compatibilityview", "computedview", "changesview", "fontinspector", "layoutview", "ruleview"]
    bug_numbers: [1483817, 1639454]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: The amount of time a tool was opened for.
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      time_open: Time open.
      os: The OS name and version e.g. "Linux 4.4.0-1014-aws", "Darwin 14.5.0", "Windows_NT 6.1.7601" or "Windows_NT 10.0.15063." This can be used to make sense of data when a feature is only available from a particular operating system build number.
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  unregister_worker:
    objects: ["application"]
    bug_numbers: [1643253]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: User manually unregisters a service worker registration
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.
  update_conn_prompt:
    objects: ["aboutdebugging"]
    bug_numbers: [1521511]
    notification_emails: ["dev-developer-tools@lists.mozilla.org"]
    products:
      - "firefox"
      - "fennec"
    record_in_processes: ["main"]
    description: User has clicked on the "Enable/Disable connection prompt" button in a runtime page of about:debugging
    release_channel_collection: opt-out
    expiry_version: never
    extra_keys:
      prompt_enabled: True if the user enables the prompt, false otherwise.
      runtime_id: Random id generated to track events related to a single runtime
      session_id: The start time of the session in milliseconds since epoch (Unix Timestamp) e.g. 1396381378123.

security.ui.protections:
  show:
    objects: [
      "protection_report",
      "vpn_banner",
    ]
    bug_numbers:
      - 1557050
      - 1610897
      - 1643428
      - 1650468
      - 1661756
      - 1678201
      - 1739287
      - 1787249
    description: >
      User arrived on the protection report. This also includes a 'value' attribute which defaults to 'direct' or will be the value that a referring website addds to the url. This also indicates if the vpn banner has been seen.
    expiry_version: never
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    notification_emails:
      - pbz@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox
    extra_keys:
      category: The category of protections the user is in, standard, strict or custom.
  close:
    objects: [
      "protection_report",
    ]
    bug_numbers:
      - 1557050
      - 1610897
      - 1612091
      - 1643428
      - 1678201
      - 1739287
      - 1787249
    description: >
      User closed on the protection report.
    expiry_version: never
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    notification_emails:
      - pbz@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox
    extra_keys:
      category: The category of protections the user is in, standard, strict or custom.
  click:
    bug_numbers:
      - 1557050
      - 1572825
      - 1610897
      - 1612088
      - 1612091
      - 1637615
      - 1643428
      - 1661756
      - 1678201
      - 1739287
      - 1787249
    description: >
      User interaction by click events on the protection report.
    objects: [
      "lw_open_button",
      "lw_sync_link",
      "lw_about_link",
      "mtr_about_link",
      "mtr_report_link",
      "mtr_signup_button",
      "trackers_about_link",
      "mobile_app_link",
      "settings_link",
      "vpn_banner_link",
      "vpn_banner_close",
      "vpn_card_link",
      "vpn_app_link_android",
      "vpn_app_link_ios",
    ]
    expiry_version: never
    record_in_processes: ["content"]
    release_channel_collection: opt-out
    notification_emails:
      - pbz@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox
    extra_keys:
      category: The category of protections the user is in, standard, strict or custom.

security.ui.app_menu:
  click:
    bug_numbers:
      - 1603545
      - 1616229
      - 1643428
      - 1678201
      - 1739287
      - 1787249
    description: >
      Privacy and Security click events on app menu.
    objects: [
      "open_full_report",
    ]
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - pbz@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox

security.ui.protectionspopup:
  open:
    objects: ["protections_popup", "protectionspopup_cfr",]
    extra_keys:
      message: >
        For protectionspopup_cfr, the message ID.
    bug_numbers:
      - 1560327
      - 1607488
      - 1643428
      - 1678201
      - 1739287
      - 1787249
    description: >
      How many times the protections panel was opened.
    expiry_version: never
    notification_emails:
      - pbz@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    record_in_processes:
      - main
    products:
      - firefox
  click:
    objects: [
      "etp_toggle_on",
      "etp_toggle_off",
      "social",
      "cookies",
      "trackers",
      "fingerprinters",
      "cryptominers",
      "subview_settings",
      "settings",
      "full_report",
      "milestone_message",
      "cookieb_toggle_on",
      "cookieb_toggle_off",
      "protectionspopup_cfr",
    ]
    extra_keys:
      message: >
        For protectionspopup_cfr, the message ID.
    bug_numbers:
      - 1560327
      - 1602015
      - 1607488
      - 1643428
      - 1678201
      - 1739287
      - 1787249
      - 1798669
    description: >
      User interaction by click events in the protections panel.
    expiry_version: never
    notification_emails:
      - pbz@mozilla.com
      - tihuang@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    record_in_processes:
      - main
    products:
      - firefox

privacy.ui.fpp:
  click:
    objects: [
      "checkbox",
      "menu",
    ]
    bug_numbers:
      - 1841097
    description: >
      User interaction by click events on fingerprinting protection checkbox in
      the ETP Custom subpanel.
    expiry_version: never
    notification_emails:
      - tom@mozilla.com
      - tschuster@mozilla.com
      - tihuang@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    record_in_processes:
      - all
    products:
      - firefox

uptake.remotecontent.result:
  uptake:
    description: >
      Was the remote content successfully pulled?
      This uptake telemetry allows to monitor the behaviour of our clients when it comes
      to fetching data from remote servers. This helps defect-detection and allow observation of
      the proportion of success among clients and sources, the distribution of error causes, and
      its evolution over time.
    methods:
      - uptake
    objects:
      - remotesettings
      - normandy
    extra_keys:
      source: >
        A label to distinguish what is being pulled or updated in the component (eg. recipe id,
        settings collection name, ...).
      trigger: >
        A label to distinguish what triggered the polling/fetching of remote content (eg. "broadcast",
        "timer", "forced", "manual")
      age: >
        The age of pulled data in seconds (ie. difference between publication time and fetch time).
      duration: >
        The duration of the synchronization process in milliseconds.
      timestamp: >
        The current timestamp, received during synchronization.
      errorName: >
        An optional string with the error name attribute in case of failure.
    bug_numbers:
      - 1517469
      - 1617133
    products:
      - "firefox"
      - "fennec"
      - "thunderbird"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: never
    notification_emails:
      - mleplatre@mozilla.com
      - bens-directs@mozilla.com

intl.ui.browserLanguage:
  action:
    description: >
      User interactions for the browser language within about-preferences in the main pane and in
      the browser language dialog. Each dialog event (on the dialog object, and the manage and
      search methods of the main object) has a value which is a monotonically increasing number
      that links it with other events related to the same dialog instance.
    objects:
      - dialog
      - main
    methods:
      - manage
      - search
      - add
      - remove
      - reorder
      - apply
      - accept
      - cancel
    extra_keys:
      installId: The id for an install.
    products:
      - firefox
    expiry_version: "135"
    notification_emails:
      - flod@mozilla.com
      - mstriemer@mozilla.com
    release_channel_collection: opt-out
    record_in_processes: ["main"]
    bug_numbers:
      - 1486507
      - 1553311
      - 1607501
      - 1672571
      - 1739288
      - 1796396
      - 1861299

network.dns:
  trrConfirmation:
    objects: ["context"]
    bug_numbers:
      - 1691408
      - 1694949
    description: >
      This telemetry records the status of the TRR confirmation across.
      The value of the event is one of:
        "ok"
        "trying"
    notification_emails:
      - vgosu@mozilla.com
      - necko@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes: ["main", "socket"]
    extra_keys:
      trigger: >
        The reason why this confirmation was triggered.
        Values: [cp-connectivity, pref-change, context-init, retry, failed-lookups]
      contextReason: >
        The cause of the current confirmation context.
        Values: [success, pref-change, network-change, shutdown]
      attemptCount: >
        The number of NS requests that were issued for this confirmation.
      results: >
        String representation of the last 32 confirmation results.
        Example: nnnnnnttttttttt indicates a number of network (n) failures
        followed by timeouts (t).
      failedLookups: >
        When the trigger is failed-lookups, this contains the string
        representation of the failures that triggered the confirmation.
      networkID: >
        The network ID for the recorded confirmation attempts
      captivePortal: >
        One of [unknown, not_captive, unlocked, locked]
      time: >
        Time from first confirmation attempt to event being recorded

security:
  prefUsage:
    objects: ["contentProcess"]
    bug_numbers:
      - 1782544
      - 1708798
    description: >
      We block certain preferences from being sent to the content process because they contain sensitive
      user data. Some preferences are blocked by name, others by heuristic. If one of the preferences so
      blocked is accidently accessed we want to know about it so we can allowlist it or refactor the access.
    notification_emails:
      - tom@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes:
      - all_children
  fissionPrincipals:
    objects: ["contentParent"]
    bug_numbers:
      - 1687891
    description: >
      When running with Fission, we received an unexpected principal from the content process.
      Expected values for this telemetry event are the method names in ContentParent that
      received the unexpected principal.
    notification_emails:
      - tom@mozilla.com
      - ckerschb@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes:
      - main
    extra_keys:
      principalType: >
        The type of principal that was received. Expected values for this field are
          NullPtr
          SystemPrincipal
          ExpandedPrincipal
          ContentPrincipal
          Unknown
      scheme: If the principal is a ContentPrincipal, we also collect the scheme
  evalUsage:
    objects: ["systemContext", "parentProcess"]
    bug_numbers:
      - 1567623
    description: >
      eval() (or an eval()-like method) was called while running in the System Principal
      context or the Parent Process.
      Expected values are:
        chromeuri - chrome:// file
        resourceuri - resource:// file
        datauri - a data URI
        bloburi - a blob URI
        abouturi - an about URI
        singlestring - A single file or string with no slashes
        mozillaextension - An extension claiming to be from *mozilla.org (Deprecated)
        otherextension - Another extension not from Mozilla (Deprecated)
        mozillaextension_file - An extension claiming to be from *mozilla.org, loaded from a file://
        otherextension_file - Another extension not from Mozilla, loaded from a file://
        extension_uri - A URI with the moz-extension:// scheme
        suspectedUserChromeJS - A filepath ending in .uc.js
        sanitizedWindowsPath - A filepath, on Windows, sanitized by WinUtils::PreparePathForTelemetry
                               which is a bare filename or a subpath of %ProgramFiles%, %SystemRoot%,
                               or %TEMP%
        sanitizedWindowsURL - A partial URL, on Windows, consisting of either file://../ followed by
                              the value prepared as for sanitizedWindowsPath, or the bare scheme of
                              the original url
        other - Unknown
        other-on-worker - We cannot do a regex; it is not a chrome, resource, data, or blob uri, but
                          could be any other.
        regexfailure - Our Regex Matching code threw an error
      The fileinfo key may contain additional information about the file that caused the eval()
      depending on the above value. Resource, Chrome, About, and SingleString will contain the full value.
      (About URIs will remove any querystring values.)
      Extensions-from-file will contain the full value; however .xpi! will be shortened to !,
      shield.mozilla.org! to s! and mozilla.org! to m!.  Data, Blob, UserChromeJS, Other, and
      Regexfailure should have no value.
    notification_emails:
      - tom@mozilla.com
      - ckerschb@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes:
      - all
    extra_keys:
      fileinfo: Information about the file that triggered eval
  javascriptLoad:
    objects: ["parentProcess"]
    bug_numbers:
      - 1582512
    description: >
      The javascript engine requested to load a filename that was not allowed.
      Expected values, and fileinfo key, are the same possible values as above in 'evalUsage'
    notification_emails:
      - tom@mozilla.com
      - gijs@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes:
      - main
    extra_keys:
      fileinfo: Information about the filename that was requested to be loaded
  unexpectedload:
    objects: ["systemprincipal"]
    bug_numbers:
      - 1644671
    description: >
      Long term want to block all loads from the system principal that cause us to parse non-trivial data.
      We don't look to break existing functionality and will allow exceptions, for this we are collecting
      information about unexpected requests triggered by the system principal
      Our measurement *excludes* acceptable requests. Those are:
      - annotated using the 'AllowedDeprecatedSystemRequests' loadinfo flag
      - using a nsContentPolicyType of FETCH, XMLHTTPREQUEST, WEBSOCKET, SAVEAS_DOWNLOAD or IMAGE
      - with a requested URI object has the flag URI_IS_UI_RESOURCE
      - if the URL scheme is 'view-source'
      - if the URL scheme is 'file' and the Content-Type is STYLESHEET or OTHER
      - if the scheme is 'jar', 'about' or 'moz-extension'
    notification_emails:
      - fbraun@mozilla.com
      - ckerschb@mozilla.com
    release_channel_collection: opt-out
    products:
      - firefox
    expiry_version: "never"
    record_in_processes:
      - all
    extra_keys:
      contenttype: Information about the content-type we expect to receive
      remotetype: Information about the remoteType in which we triggered the load
      filedetails: Information about the file that triggered the load
      redirects: Comma-separated string listing schemes for URLs that we redirected from

pictureinpicture:
  create:
    objects: ["player"]
    description: >
      Recorded when the Picture-in-Picture player window is created.
    extra_keys:
      width: The width that the window was created at
      height: The height that the window was created at
      screenX: The screen X coordinate that the window was created at
      screenY: The screen Y coordinate that the window was created at
      ccEnabled: Are subtitles enabled for PiP
      webVTTSubtitles: Are the subtitles WebVTT
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1560590
      - 1678202
      - 1730039
      - 1756703
    expiry_version: "never"
    release_channel_collection: opt-out
  resize:
    objects: ["player"]
    description: >
      Recorded when the Picture-in-Picture player window is resized.
    extra_keys:
      width: The width that the window was resized to
      height: The height that the window was resize to
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1560590
      - 1678202
      - 1730039
    expiry_version: "never"
    release_channel_collection: opt-out
  saw_toggle:
    objects: ["toggle"]
    description: >
      Recorded when the Picture-in-Picture toggle is shown
    extra_keys:
      firstTime: If the user has used Picture-in-Picture before
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: ["main", "content"]
    bug_numbers:
      - 1749585
    expiry_version: "never"
    release_channel_collection: opt-out
  opened_method:
    objects: ["toggle", "contextMenu", "urlBar", "shortcut"]
    description: >
      Records the method for opening the Picture-in-Picture window.
    extra_keys:
      firstTimeToggle: If the user has used Picture-in-Picture before
      disableDialog: True when urlbar button opens the disable PiP dialog
      callout: >
        Boolean. True if PiP is being shown for the first time within 48 hours
        of a feature callout message highlighting the urlbar toggle.
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes: ["main", "content"]
    bug_numbers:
      - 1749585
      - 1834554
      - 1858471
    expiry_version: "never"
    release_channel_collection: opt-out
  closed_method:
    objects: ["closeButton", "unpip", "pagehide", "fullscreen", "setupFailure", "closePlayerShortcut", "contextMenu", "videoElRemove", "videoElEmptied", "urlBar", "shortcut"]
    description: >
      Records the method for closing the Picture-in-Picture window.
    notification_emails:
      - mconley@mozilla.com
      - mtigley@mozilla.com
      - mhowell@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - "main"
    bug_numbers:
      - 1756703
      - 1834554
    expiry_version: "never"
    release_channel_collection: opt-out
  subtitles_shown:
    objects: ["subtitles"]
    description: >
      Records if subtitles are shown in the Picture-in-Picture window.
    extra_keys:
      webVTTSubtitles: Will be true or false
    notification_emails:
      - mconley@mozilla.com
      - mhowell@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - "content"
    bug_numbers:
      - 1772546
    expiry_version: "never"
    release_channel_collection: opt-out
  fullscreen:
    objects: ["player"]
    extra_keys:
      enter: true if entering fullscreen, false if exiting fullscreen
    description: >
      Recorded when the user clicks the fullscreen button
    notification_emails:
      - mconley@mozilla.com
      - mhowell@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - "main"
    bug_numbers:
      - 1822395
    expiry_version: "never"
    release_channel_collection: opt-out
  disrespect_disable:
    objects: ["urlBar"]
    description: >
      Recorded when the user chooses to enable PiP anyway on a PiP disabled video
    notification_emails:
      - mconley@mozilla.com
      - mhowell@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - "main"
    bug_numbers:
      - 1834554
    expiry_version: "never"
    release_channel_collection: opt-out

pictureinpicture.settings:
  enable:
    objects: ["settings"]
    description: Recorded when Picture-in-Picture is enabled.
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1639774
    expiry_version: "never"
    release_channel_collection: opt-out
  disable:
    objects: ["player", "settings"]
    description: >
      Recorded with "settings" object when Picture-in-Picture is disabled via settings
      Recorded with "player" object when Picture-in-Picture is disabled via PiP context menu
    notification_emails:
      - mconley@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1639774
    expiry_version: "never"
    release_channel_collection: opt-out

launch_on_login:
  last_profile_disable:
    objects: ["startup"]
    description: >
      Recorded when Launch on login is disabled because the
      start with last profile setting has been disabled.
    notification_emails:
      - nalexander@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1858223
    expiry_version: "never"
    release_channel_collection: opt-out

doh:
  evaluate_v2:
    methods: ["evaluate_v2"]
    objects: ["heuristics"]
    bug_numbers:
      - 1573840
      - 1631609
      - 1603779
      - 1654714
    description: >
      Results of DoH heuristics at startup and after network changes.
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - nhnt11@mozilla.com
      - ddamjanovic@mozilla.com
      - seceng-telemetry@mozilla.com
      - necko@mozilla.com
    products:
      - firefox
    extra_keys:
      canaries: Comma-separated list of canaries that were detected (canary,zscalerCanary)
      filtering: Comma-separated list of detected parental controls/content filtering (browserParent,google,youtube)
      enterprise: Comma-separated list of detected enterprise config (policy,modifiedRoots,thirdPartyRoots)
      steeredProvider: Whether we detected a steering provider
      evaluateReason: The reason for running heuristics - startup or netchange
      networkID: An ID representing the network on which heuristics were run, unique to this client
      captiveState: The Captive Portal Service state - unknown, not_captive, locked, or unlocked
      platform: Comma-separated list of platform attributes that would cause split-horizon issues (vpn, proxy, nrpt)
  evaluate:
    methods: ["evaluate"]
    objects: ["heuristics"]
    bug_numbers:
      - 1573840
      - 1631609
      - 1603779
    description: >
      Results of DoH heuristics at startup and after network changes. OLD FORMAT: here for documentation
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - nhnt11@mozilla.com
      - ddamjanovic@mozilla.com
      - seceng-telemetry@mozilla.com
      - necko@mozilla.com
    products:
      - firefox
    extra_keys:
      google: Google safe search result
      youtube: YouTube safe search result
      zscalerCanary: ZScaler canary result
      canary: Global canary result
      modifiedRoots: Whether enterprise roots were enabled
      browserParent: Whether OS parental controls were detected
      thirdPartyRoots: Whether third party roots were installed
      policy: Enterprise policy presence - no policy/with DoH/without DoH.
      steeredProvider: Whether we detected a steering provider
      evaluateReason: The reason for running heuristics - startup or netchange
  state:
    methods: ["state"]
    objects: [
      "enabled",
      "disabled",
      "manuallyDisabled",
      "policyDisabled",
      "uninstalled",
      "UIOk",
      "UIDisabled",
      "rollback",
      "shutdown",
    ]
    bug_numbers:
      - 1573840
      - 1631609
      - 1603779
    description: >
      Results of DoH heuristics at startup and after network changes.
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - nhnt11@mozilla.com
      - ddamjanovic@mozilla.com
      - seceng-telemetry@mozilla.com
      - necko@mozilla.com
    products:
      - firefox

security.doh.trrPerformance:
  resolved:
    objects: ["record"]
    bug_numbers:
      - 1613790
    description: >
      How long it took to resolve a test domain using TRR.
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - nhnt11@mozilla.com
      - ddamjanovic@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox
    extra_keys:
      domain: The resolved domain.
      trr: The TRR provider used.
      time: The network time for the resolution.
      status: The DNS status code.
      retryCount: The number of lookup attempts before success.
      networkUnstable: Whether there was network fluctuation while gathering the results.
      captivePortal: Whether there a captive portal was detected during the run.
  trrselect:
    objects: ["dryrunresult"]
    bug_numbers:
      - 1631822
    description: >
      The URL of the DoH provider chosen by the TRR selection dry-run
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - nhnt11@mozilla.com
      - ddamjanovic@mozilla.com
      - seceng-telemetry@mozilla.com
    products:
      - firefox

security.doh.neterror:
  load:
    objects: ["dohwarning"]
    bug_numbers:
      - 1829342
    description: >
      The DoH warning page is loaded.
    expiry_version: never
    notification_emails:
      - necko@mozilla.com
      - kershaw@mozilla.com
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["content"]
    extra_keys:
      mode: Current TRR mode
      provider_key: TRR provider
      skip_reason: The reason why DoH request is failed
  click:
    objects: [
      "try_again_button",
      "add_exception_button",
      "settings_button",
      "continue_button",
      "disable_warning",
      "learn_more_link",
    ]
    bug_numbers:
      - 1829342
    description: >
      User interaction by click buttons on the DoH warning page.
    expiry_version: never
    notification_emails:
      - necko@mozilla.com
      - kershaw@mozilla.com
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["content"]
    extra_keys:
      mode: Current TRR mode
      provider_key: TRR provider
      skip_reason: The reason why DoH request is failed

security.doh.settings:
  mode_changed:
    objects: ["button"]
    bug_numbers:
      - 1829905
    description: >
      User changed the TRR mode in about:preferences#privacy settings
      Value is id of the clicked button.
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - vgosu@mozilla.com
      - necko@mozilla.com
    products:
      - firefox
  warn_checkbox:
    objects: ["checkbox"]
    bug_numbers:
      - 1829905
    description: >
      User clicked the Warn if a third party actively prevents secure DNS
      checkbox in about:preferences#privacy.
      Value is true or false, reflecting if box is checked or unchecked.
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - vgosu@mozilla.com
      - necko@mozilla.com
    products:
      - firefox
  provider_choice:
    objects: ["value"]
    bug_numbers:
      - 1829905
    description: >
      User changed their DoH provider. Recorded value is URL of one of the
      existing providers or "custom".
    expiry_version: never
    record_in_processes:
      - main
    release_channel_collection: opt-out
    notification_emails:
      - vgosu@mozilla.com
      - necko@mozilla.com
    products:
      - firefox

security.ui.certerror:
  load:
    objects: ["aboutcerterror"]
    bug_numbers:
      - 1484255
      - 1505310
      - 1553181
      - 1629826
    description: >
      The about:certerror page is loaded, keyed by error code, see https://searchfox.org/mozilla-central/source/security/nss/lib/mozpkix/include/pkix/Result.h
    expiry_version: never
    notification_emails:
      - jhofmann@mozilla.com
      - rtestard@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["content"]
    extra_keys:
      is_frame: If the error page is loaded in an iframe.
      has_sts: If the error page is for a site with HSTS headers or with a pinned key.
  click:
    objects: [
      "advanced_button",
      "exception_button",
      "return_button_top",
      "return_button_adv",
      "learn_more_link",
      "auto_report_cb",
      "error_code_link",
      "clipboard_button_top",
      "clipboard_button_bot",
    ]
    bug_numbers:
      - 1484255
      - 1505310
      - 1553181
      - 1629826
    description: >
      User interaction by click events on the cert error page. Keyed by error code, see https://searchfox.org/mozilla-central/source/security/nss/lib/mozpkix/include/pkix/Result.h
    expiry_version: never
    notification_emails:
      - jhofmann@mozilla.com
      - rtestard@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["content"]
    extra_keys:
      is_frame: If the error page is loaded in an iframe.
      has_sts: If the error page is for a site with HSTS headers or with a pinned key.
      panel_open: If the advanced panel was open at the time of the interaction.

security.ui.tlserror:
  load:
    objects: ["abouttlserror"]
    bug_numbers:
      - 1881335
    description: >
      The about:neterror page is loaded with a TLS error or non-overridable certificate error, keyed by error code.
    expiry_version: never
    notification_emails:
      - dkeeler@mozilla.com
      - seceng-telemetry@mozilla.com
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["content"]
    extra_keys:
      is_frame: If the error page is loaded in an iframe.

slow_script_warning:
  shown:
    bug_numbers:
      - 1652613
      - 1667245
      - 1672572
    description: >
      Recorded when a slow script hang is resolved.
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: "never"
    notification_emails:
      - dothayer@mozilla.com
      - esmyth@mozilla.com
      - gkruitbosch@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    # Whether the hung script was for a content or browser process.
    objects: [
      "browser",
      "content",
    ]
    extra_keys:
      end_reason: Why the warning was hidden (user action, the process becoming responsive again, the browser quitting, etc.)
      wait_count: How many times the user elected to wait.
      hang_duration: How long we believe the hang continued (ms).
      n_tab_deselect: How many times the user switched away from a tab affected by this hang.
      uri_type: The kind of script URL that hung.
      uptime: How long the notification was up (ms).

webrtc.ui:
  share_display:
    objects:
      - screen
      - window
      - browser_window
    description: >
      Recorded when a display is shared. The value for this event is a unique
      ID that differentiates different sharing sessions. A new sharing session
      is created when the user transitions from not sharing a display to
      sharing at least one display.
    extra_keys:
      silence_notifs: True if the user opted in to silencing DOM notifications.
    notification_emails:
      - mconley@mozilla.com
      - vchin@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1639283
    expiry_version: "88"
    release_channel_collection: opt-out

ysod:
  shown:
    bug_numbers:
      - 1657242
    description: >-
      This event is recorded only for Firefox UI documents (chrome).
      Recorded when a Yellow Screen of Death is shown. The `value` is a url on which the error happened.
      Yellow Screen of Death happens when XML or XHTML document encounters a parsing error. It is commonly a result
      of the document being malformed or missing DTD entity.
      Mozilla has a number of documents that rely on DTD entities for localization, and in some error scenarios those
      entities may be missing or malformed themselves, in which case the user will see a broken UI.
    products:
      - "firefox"
    record_in_processes: ["main"]
    release_channel_collection: opt-out
    expiry_version: "never"
    notification_emails:
      - zbraniecki@mozilla.com
      - vchin@mozilla.com
    objects:
      - "ysod"
    extra_keys:
      error_code: Code of the XML Error (See `XML_Error` enum in expat.h for the list of errors where XML_ERROR_NONE is 0).
      location: Location as Row:Column of where the error happened.
      last_line: The content of the last line that led to the error.
      last_line_len: The length of the last line that led to the error.
      hidden: The document is hidden.
      destroyed: The container of this document is destroyed.

dom.quota.try:
  error:
    objects: [
      "step",
    ]
    bug_numbers:
      - 1665088
    description: >
      An event recorded on an error of the quota manager or its clients. Since errors are usually
      propagated up the call chain, all such propagation steps are recorded for an error. This
      is only active during specific contexts, in particular during storage initialization.
      No dynamic data is included in the event beyond the error code which will be added through
      Bug 1670555.
    notification_emails:
      - jvarga@mozilla.com
      - sgiesecke@mozilla.com
      - storage-telemetry@mozilla.com
    products:
      - firefox
    expiry_version: "never"
    record_in_processes: ["main", "content"]
    extra_keys:
      context: The context in which the error occurred, e.g. during a storage initialization. Telemetry events are only emitted for selected contexts.
      frame_id: Optionally, the frame within stack_id.
      process_id: Optionally, the process in which the error occured.
      result: Optionally, the name of the error that occurred.
      seq: Sequence number.
      severity: One of WARNING or ERROR.
      source_file: The name of the source code file where the error occurred.
      source_line: The line within source_file where the error occurred.
      stack_id: Optionally, the stack within process_id.

zero_byte_load:
  load:
    bug_numbers:
      - 1675823
    description: >-
        Collection of zero_byte_load events as part of the Yellow Screen of Death analysis.
        When a file is loaded synchronously, this event gets recorded in nsJARChannel::Open if the content length is zero.
        For asynchronous loads, this event gets recorded in onStopRequest.
        Note that when the load has been cancelled, the consumer could already receive some data, so this event also captures non-zero-byte loads.
    products:
      - "firefox"
    record_in_processes: ["main", "content"]
    release_channel_collection: opt-out
    expiry_version: "never"
    notification_emails:
      - zbraniecki@mozilla.com
      - vchin@mozilla.com
      - kershaw@mozilla.com
    objects:
      - "ftl"
      - "dtd"
      - "properties"
      - "js"
      - "xml"
      - "xhtml"
      - "css"
      - "json"
      - "html"
      - "png"
      - "svg"
      - "others"
    extra_keys:
      sync: Was the load synchronous
      file_name: The name of the file being loaded.
      status: The channel status code.
      cancelled: Whether this load has been cancelled.

avif:
  dav1d_get_picture:
    objects: ["return_value"]
    bug_numbers: [1690406]
    description: Return value from dav1d_get_picture
    products:
      - firefox # event telemetry is not supported on fenix
    record_in_processes: ["all"]
    release_channel_collection: opt-out
    expiry_version: never
    notification_emails:
      - media-alerts@mozilla.com

mfcdm:
  eme_playback:
    objects: ["gecko"]
    bug_numbers: [1873394]
    description:
      Record the information about the EME playback when using the media engine.
      The value of this event is the key system name.
    products:
      - firefox
    record_in_processes: ["all"]
    release_channel_collection: opt-out
    expiry_version: "130"
    notification_emails:
      - media-alerts@mozilla.com
    extra_keys:
      key_system: The key system used for the EME playback
      video_codec: The video codec used for playback
      resolution: The video resolution used for playback
      played_time: The amount of time the EME content has been played (in seconds)
      rendered_frames: The amount of video frames has been rendered
      dropped_frames: The amount of video frames don't get rendered but dropped
  error:
    objects: ["gecko"]
    bug_numbers: [1873394]
    description:
      Record the error or crash happened while using the media engine playback.
      The value of this event is the name of error.
    products:
      - firefox
    record_in_processes: ["all"]
    release_channel_collection: opt-out
    expiry_version: "130"
    notification_emails:
      - media-alerts@mozilla.com
    extra_keys:
      error_name: The name of the error
      current_state: The state of the external state machine was being used when the error or crash happened
      video_codec: The video codec was being used when the error or crash happened
      audio_codec: The audio codec was being used when the error or crash happened
      resolution: The video resolution was being used when the error or crash happened
      key_system: The key system was being used when the error or crash happened

installation:
  first_seen:
    description: >
      Recorded after the application has been installed or reinstalled, the first time that
      a profile sees that there was a new installation. This includes information about how
      the installer was run.
    objects:
      - full # if the full installer was run directly
      - stub # if the stub installer was used
      - msix # if the installation was done through an MSIX package
    release_channel_collection: opt-out
    record_in_processes: ["main"]
    products: ["firefox"]
    operating_systems: ["windows"]
    extra_keys:
      version: The application version installed by the installer (not necessarily the current version)
      build_id: The build ID of the application installed by the installer (not necessarily the current version)
      admin_user: Whether the installer is running from an elevated admin user
      install_existed: Whether there was already an install in this location
      other_inst: Whether there was already any non-MSIX install on this system
      other_msix_inst: Whether there was already any MSIX install on this system
      profdir_existed: Whether the top-level profile directory existed
      silent: '(optional, present if object is "full") Whether this was a silent install'
      from_msi: '(optional, present if object is "full") Whether this was an MSI install'
      default_path: '(optional, present if object is "full") Whether the default path was used'
    bug_numbers: [1660198, 1725295, 1743465, 1754638]
    notification_emails:
      - application-update-telemetry-alerts@mozilla.com
      - rtestard@mozilla.com
    expiry_version: never

contextservices.quicksuggest:
  data_collect_toggled:
    objects: ["enabled", "disabled"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when the
      `browser.urlbar.quicksuggest.dataCollection.enabled` boolean pref is
      toggled.
    bug_numbers: [1735976]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never
  enable_toggled:
    objects: ["enabled", "disabled"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when the
      `browser.urlbar.suggest.quicksuggest.nonsponsored` boolean pref is
      toggled.
    bug_numbers: [1693126]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never
  sponsored_toggled:
    objects: ["enabled", "disabled"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when the `browser.urlbar.suggest.quicksuggest.sponsored`
      boolean pref is toggled.
    bug_numbers: [1728430, 1733687]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never
  opt_in_dialog:
    objects: ["accept_2", "reject_2", "learn_more_1", "learn_more_2", "close_1", "not_now_2", "dismiss_1", "dismiss_2"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      This is recorded when the user responds to the Firefox Suggest opt-in
      onboarding dialog. 'accept_2' is recorded when the user accepts the dialog
      and opts in, 'reject_2' is recorded when the user rejects the dialog and
      opts out, 'learn_more_1' is recorded when the user clicks "Learn more"
      on the introduction section (the user remains opted out), 'learn_more_2' is
      recorded when the user clicks "Learn more" on the main section (the user
      remains opted out), 'close_1' is recorded when the user clicks close button
      on the introduction section (the user remains opted out), 'not_now_2' is
      recorded when the user clicks "Not now" link on main section (the user
      remains opted out), 'dismiss_1' recorded when the user dismisses the dialog
      on the introduction section (the user remains opted out), 'dismiss_2'
      recorded when the user dismisses the dialog on main (the user remains opted
      out),
    bug_numbers: [1723860, 1745026, 1761171]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never
  impression_cap:
    description: >
      This is recorded when an event related to an impression cap occurs. "hit"
      is recorded when an impression cap is hit. "reset" is recorded when a
      cap's counter is reset because its interval period has elapsed.
    objects: ["hit", "reset"]
    extra_keys:
      type: >
        The type of cap, one of: "sponsored", "nonsponsored"
      intervalSeconds: >
        The number of seconds in the cap's interval period. For lifetime caps,
        this value will be "Infinity".
      maxCount: >
        The maximum number of impressions allowed in the cap's interval period.
      startDate: >
        The timestamp at which the cap's interval period started, in number of
        seconds since Unix epoch.
      count: >
        The number of impressions in the cap's interval period.
      impressionDate: >
        The timestamp of the cap's most recent impression, in number of
        milliseconds since Unix epoch.
      eventDate: >
        The event's timestamp, in number of milliseconds since Unix epoch. For
        "reset" events, this is the timestamp at which the cap's interval period
        ended. If eventCount is greater than 1, it's the timestamp at which the
        last interval period ended. For "hit" events, this is the timestamp at
        which the cap was hit.
      eventCount: >
        The number of impression cap events reported in the telemetry event.
        This is necessary because the implementation may batch multiple
        consecutive "reset" events for a cap in a single telemetry event. When
        that occurs, this value will be greater than 1, startDate will be the
        timestamp at which the first event's interval period started, eventDate
        will be the timestamp at which the last event's interval period ended,
        and count will be the number of impressions during the first event's
        interval period. (The implementation guarantees that reset events are
        batched only when the number of impressions for all subsequent interval
        periods is zero.) For "hit" events, eventCount will always be 1.
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    bug_numbers: [1761058]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never
  engagement:
    description: >
      This event is recorded when an engagement occurs in the address bar while
      a Firefox Suggest suggestion is present. The event's objects are the
      following possible values:
      "block": The user dismissed ("blocked") the suggestion.
      "click": The user picked the suggestion.
      "help": The user picked the suggestion's help button.
      "impression_only": The user picked some other row.
      "other": The user engaged with the suggestion in some other way, for
        example by picking a command in the result menu. This is a catch-all
        category and going forward Glean telemetry should be preferred.
    objects: ["block", "click", "help", "impression_only", "other"]
    extra_keys:
      match_type: >
        "best-match" if the suggestion was a best match or "firefox-suggest" if
        it was a non-best-match suggestion.
      position: >
        The index of the suggestion in the list of results (1-based).
      suggestion_type: >
        The type of suggestion, one of: "sponsored", "nonsponsored",
        "dynamic-wikipedia", "weather", "navigational"
      source: >
        Where the suggestion came from, one of: "remote-settings", "merino"
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    bug_numbers: [1761059]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - adw@mozilla.com
    expiry_version: never

close_tab_warning:
  shown:
    description: >
      Recorded whenever we show the 'Close Tabs' dialog, with details about
      the reason it is shown and what choices the user makes (close or not).
    objects: ["window", "application", "tabs"]
    release_channel_collection: opt-out
    expiry_version: "99"
    record_in_processes: ["main"]
    products: ["firefox"]
    bug_numbers: [1712306, 1725296]
    notification_emails:
      - gkruitbosch@mozilla.com
      - rtestard@mozilla.com
    extra_keys:
      source: The way in which the tabs were closed (shortcut, close button, menuitem, appmenu, etc.)
      button: Which button the user clicked (Close tabs or Cancel)
      warn_checkbox: Whether the checkbox to display the warning again was checked or not.
      closing_wins: The number of windows being closed.
      closing_tabs: The number of tabs being closed.
      will_restore: Whether the session will be restored if closed now.

memory_watcher:
  on_high_memory:
    description: >
      This event is recorded when the memory situation is no longer low.
      The "stats" object consists of three numbers comma-delimited:
      1) how many times a tab was unloaded
      2) how many memory-pressure events were dispatched
      3) how long we were in the low-memory situation in seconds
    objects: ["stats"]
    release_channel_collection: opt-out
    expiry_version: never
    record_in_processes: ["main"]
    products: ["firefox"]
    bug_numbers: [1715858]
    notification_emails:
      - tkikuchi@mozilla.com

service_request:
  bypass:
    description: >
      This event is recorded by a small set of services when a proxy failure
      causes a service to re-request with a proxy bypass.  It records some
      basic information such as the type of proxy configuration, and the source
      of the proxy configuration.  The value of the event is the name of the
      service that triggers the event (e.g. telemetry, remote-settings).
    methods: ["bypass"]
    objects: ["proxy_info"]
    release_channel_collection: opt-out
    expiry_version: never
    record_in_processes: ["main"]
    products: ["firefox"]
    bug_numbers: [1732792, 1732793, 1733481, 1733994, 1732388]
    notification_emails:
      - scaraveo@mozilla.com
    extra_keys:
      source: the source of the proxy configuration.  e.g. policy, prefs or extension_id
      type: the type for the proxy configuration source.  e.g. api or string version of nsIProtocolProxyService.proxyConfigType

synced_tabs:
  click:
    objects: [
      "fxa_avatar_menu",
      "fxa_app_menu",
      "synced_tabs_sidebar",
      ]
    methods: ["click"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: Record how users access and use synced tabs component
    bug_numbers: [1756252]
    notification_emails: ["sync-dev@mozilla.org"]
    expiry_version: "never"
    extra_keys:
      tab_pos: position of the tab clicked
      filter: was there a filter enabled

firefoxview_next:
  recently_closed:
    objects: ["tabs"]
    description: >
      Recorded when a recently closed tab is clicked
    extra_keys:
      delta: Time since the tab was closed
      position: The position of the tab in the recently closed tab list (starting at 1)
      page: The short page name where the recently closed tab was clicked
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  dismiss_closed_tab:
    objects: ["tabs"]
    description: >
      Recorded when a recently closed tab is dismissed
    extra_keys:
      delta: Time since the tab was closed to when dismissed
      position: The position of the tab in the recently closed tab list (starting at 1)
      page: The short page name where the recently closed tab was dismissed
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  card_collapsed:
    objects: ["card_container"]
    description: >
      Recorded when a card-container is collapsed on the 'Recent browsing' page
    extra_keys:
      data_type: The type of data being collapsed in a card on the 'Recent browsing' page
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  card_expanded:
    objects: ["card_container"]
    description: >
      Recorded when a card-container is expanded on the 'Recent browsing' page
    extra_keys:
      data_type: The type of data being expanded in a card on the 'Recent browsing' page
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  change_page:
    objects: ["navigation"]
    description: >
      Recorded when the page/view is changed in Firefox View
    extra_keys:
      page: The short page name that the user is navigating to
      source: Whether the page was changed via the side navigation vs the 'View all' link on cards on the Recent browsing page
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  context_menu:
    objects: ["tabs"]
    description: >
      Recorded when a context menu selection is made in Firefox View
    extra_keys:
      menu_action: The menu action the user has selected for a given tab
      data_type: The type of data the user has used the context menu for
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  close_open_tab:
    objects: ["tabs"]
    description: >
      Recorded when a tab is closed via the close button on an open tab row.
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1857298
    expiry_version: "never"
    release_channel_collection: opt-out
  browser_context_menu:
    objects: ["tabs"]
    description: >
      Recorded when a browser context menu selection is made in Firefox View
    extra_keys:
      menu_action: The menu action the user has selected for a given tab
      page: The short page name used as the location hash when selecting the Firefox View tab
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1851197
    expiry_version: "never"
    release_channel_collection: opt-out
  entered:
    objects: ["firefoxview"]
    description: >
      Recorded when the Firefox View tab is selected
    extra_keys:
      page: The short page name used as the location hash when selecting the Firefox View tab
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1852036
    expiry_version: "never"
    release_channel_collection: opt-out
  fxa_continue:
    objects: ["sync"]
    description: >
      Recorded when button to sign in or sign up is clicked
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833671
    expiry_version: "never"
    release_channel_collection: opt-out
  fxa_mobile:
    objects: ["sync"]
    description: >
      Recorded when the 'Try Firefox for mobile' button is clicked
    extra_keys:
      has_devices: True if user has other devices signed into sync
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833671
    expiry_version: "never"
    release_channel_collection: opt-out
  synced_tabs:
    objects: ["tabs"]
    description: >
      Recorded when a synced tab is clicked
    extra_keys:
      page: The short page name where the synced tab was clicked
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833671
    expiry_version: "never"
    release_channel_collection: opt-out
  history:
    objects: ["visits"]
    description: >
      Recorded when a history tab is clicked
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1842616
    expiry_version: "never"
    release_channel_collection: opt-out
  sort_history:
    objects: ["tabs"]
    description: >
      Recorded when the sort option is changed for History in Firefox View
    extra_keys:
      sort_type: The type of sort the user has switched to
      search_start: Boolean for if the sort by click occured during search activity.
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833674
    expiry_version: "never"
    release_channel_collection: opt-out
  show_all_history:
    objects: ["tabs"]
    description: >
      Recorded when the 'Show all history' button is clicked on the History page in Firefox View
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833674
    expiry_version: "never"
    release_channel_collection: opt-out
  open_tab:
    objects: ["tabs"]
    description: Recorded when an open tab is clicked
    extra_keys:
      page: The short page name where the open tab was clicked
      window: The window the open tab belongs to
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1833669
    expiry_version: "never"
    release_channel_collection: opt-out
  tab_selected:
    objects: ["toolbarbutton"]
    description: >
      Recorded when the Firefox View tab is clicked
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1852989
    expiry_version: "never"
    release_channel_collection: opt-out
  search_initiated:
    objects: ["search"]
    description: >
      Recorded when search is initiated and from what page.
    extra_keys:
      page: The short page name used as the location hash when selecting the Firefox View tab.
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1869765
    expiry_version: "never"
    release_channel_collection: opt-out
  search_show_all:
    objects: ["showallbutton"]
    description: >
      Recorded when the show all button is clicked to show more search results.
    extra_keys:
      section: Section within which show all is clicked.
    notification_emails:
      - firefoxview@mozilla.com
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1869765
    expiry_version: "never"
    release_channel_collection: opt-out

search:
  engine:
    objects: ["change_default", "change_private"]
    release_channel_collection: opt-out
    products:
      - "firefox"
    record_in_processes: ["main"]
    description: >
      Recorded when the default search engine is changed, the value field
      records the action used to trigger the change of default. For possible
      values, see `REASON_CHANGE_MAP` in
      https://searchfox.org/mozilla-central/source/toolkit/components/search/SearchService.sys.mjs
    bug_numbers: [1634555]
    notification_emails:
      - fx-search-telemetry@mozilla.com
      - rev-data@mozilla.com
    expiry_version: never
    extra_keys:
      prev_id: The id of the previous default engine.
      new_id: The id of the new default engine.
      new_name: The display name of the new default engine.
      new_load_path: The path relating to where the new default engine was installed/loaded from.
      new_sub_url: The new submission URL of the new default engine.

cookie_banner:
  reload:
    objects: ["browser"]
    description: >
      Recorded when the top-level page is reloaded. We use this event metric to
      know whether or not the reloading domain has cookie banner rule.
    record_in_processes: ["main"]
    products:
      - "firefox"
      - "fennec"
    release_channel_collection: opt-out
    notification_emails:
      - pbz@mozilla.com
      - tihuang@mozilla.com
    bug_numbers:
      - 1797079
      - 1861317
    expiry_version: "128"
    extra_keys:
      no_rule: There is no cookie banner rule for the reloading domain.
      has_cookie_rule: There is a matching cookie rule for the reloading domain.
      has_click_rule: There is a matching click rule for the reloading domain.

screenshots:
  download:
    objects: ["overlay_download", "preview_download"]
    description: >
      Recorded when a user downloads a screenshot from the overlay or the preview.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out
    extra_keys:
      fullpage: Number of times a full page was selected
      visible: Number of times a visible page was selected
      element: Number of times an element was selected
      region: Number of times a region was selected
      move: Number of times a region was moved
      resize: Number of times a region was resized
  copy:
    objects: ["overlay_copy", "preview_copy"]
    description: >
      Recorded when a user copies a screenshot from the overlay or the preview.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out
    extra_keys:
      fullpage: Number of times a full page was selected
      visible: Number of times a visible page was selected
      element: Number of times an element was selected
      region: Number of times a region was selected
      move: Number of times a region was moved
      resize: Number of times a region was resized
  selected:
    objects: ["element", "region_selection", "visible", "full_page"]
    description: >
      Recorded when a user selects a region by hand, selects an element, selects the save visible, or selects save full page.
      Note that this is recorded independent of whether or not the screenshot is saved.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
      - content
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out
  started:
    objects: ["toolbar_button", "shortcut", "context_menu", "quick_actions", "preview_retry", "overlay_retry"]
    description: >
      Recorded when a user opens the screenshots ui.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
      - content
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out
  canceled:
    objects: ["toolbar_button", "shortcut", "context_menu", "quick_actions", "preview_cancel", "overlay_cancel", "escape", "navigation"]
    description: >
      Recorded when a user closes the screenshots ui. The screenshots ui is closed after
      copying/downloading but we do not record that as canceling the screenshots ui.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out
  failed:
    objects: ["screenshot_too_large"]
    description: >
      Recorded when a screenshot is too big to capture and we have to crop the screenshot.
    notification_emails:
      - screenshots-dev@mozilla.org
    products:
      - "firefox"
    record_in_processes:
      - main
    bug_numbers:
      - 1801019
    expiry_version: "never"
    release_channel_collection: opt-out

session_restore:
  backup_can_be_loaded:
    objects: ["session_file"]
    description: >
      Recorded when a file is able to be successfully read on startup
    record_in_processes:
      - main
    products:
      - "firefox"
    extra_keys:
      can_load: Whether or not the startup file can be read/loaded
      path_key: A symbolic name for the backup file, should be one of "clean", "recovery", "recoveryBackup", "cleanBackup", or "upgradeBackup"
      loadfail_reason: Reason why the file cannot be loaded, N/A if can be loaded
    notification_emails:
      - "session-restore-telemetry-alerts@mozilla.com"
    bug_numbers:
      - 1874742
    expiry_version: "never"
    release_channel_collection: opt-out
  shutdown_success:
    objects: ["session_startup"]
    description: >
      Report shutdown success
    record_in_processes:
      - main
    products:
      - "firefox"
    extra_keys:
      shutdown_ok: Whether or not the shutdown happened successfully, unsuccessful if previous session crashed
      shutdown_reason: Reason why shutdown didn't happen successfully, N/A if previous session didn't crashed
    notification_emails:
      - "session-restore-telemetry-alerts@mozilla.com"
    bug_numbers:
      - 1874742
    expiry_version: "never"
    release_channel_collection: opt-out