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

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

---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
  - 'Core :: DOM: Core & HTML'

perf:
  largest_contentful_paint:
    type: timing_distribution
    time_unit: millisecond
    description: >
        Time from navigation start to largest contentful paint.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939#c5
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
    expires: never
    metadata:
      monitor:
        alert: False
        lower_is_better: True
        platforms:
          - All

  largest_contentful_paint_from_response_start:
    type: timing_distribution
    time_unit: millisecond
    description: >
        Time from response start to largest contentful paint.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939#c5
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
    expires: never
  page_load:
    type: event
    description: >
        Recorded when a top level content document has been loaded.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1759744
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1799727
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1834774
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1892231
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1923894
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1954216
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1949038
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1759744#c5
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1799727#c4
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1834774#c3
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1862939#c5
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1892231#c3
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - dpalmeiro@mozilla.com
    expires: never
    extra_keys:
      load_time:
        description: |
          Time between loadEventStart and navigationStart, in ms.
        type: quantity
        unit: ms
      dns_lookup_time:
        description: |
          Time taken to perform dns lookup of the top level document, in ms.
        type: quantity
        unit: ms
      time_to_request_start:
        description: |
          Time between requestStart and navigationStart, in ms.
        type: quantity
        unit: ms
      response_time:
        description: |
          Time between responseStart and navigationStart, in ms.
        type: quantity
        unit: ms
      fcp_time:
        description: |
          Time between firstContentfulPaint and navigationStart, in ms.
        type: quantity
        unit: ms
      lcp_time:
        description: |
          Time between largestContentfulPaint and navigationStart, at the point of onLoad firing, in ms. This may differ from the final LCP value as reported through the LCP histogram.
        type: quantity
        unit: ms
      js_exec_time:
        description: |
          Time spent executing JS during page load, in ms.
        type: quantity
        unit: ms
      delazify_time:
        description: |
          Time spent delazifying JS during page load, in ms.
        type: quantity
        unit: ms
      redirect_time:
        type: quantity
        description: |
          Time spent in redirections for the top level document.
        unit: ms
      tls_handshake_time:
        type: quantity
        description: |
          Time spent in TLS handshake for the top level document.
        unit: ms
      redirect_count:
        description: |
          Number of redirections for the top level document.
        type: quantity
        unit: integer
      load_type:
        description: |
          One of normal,reload,stop,link,history,error or other.
        type: string
      same_origin_nav:
        description: |
          If true, a normal navigation was performed on the same origin.
        type: boolean
      using_webdriver:
        description: |
          If true, a webdriver is running on the client.
        type: boolean
      http_ver:
        description: |
          Version of HTTP protocol used.
        type: quantity
        unit: integer
      trr_domain:
        description: |
          TRR domain used.
        type: string
      document_features:
        description: >
          Bitfield of web features in use within this document:
            1 - fetchpriority applied to images
        type: quantity
        unit: integer
      user_features:
        description: >
          Bitfield of features the user is enabling:
            1 - assistive technology in use
        type: quantity
        unit: integer
      has_ssd:
        description: |
          Whether the user has SSD in their hardware or not. Only available on Windows, after startup-idle-tasks are done
        type: boolean
      cache_disposition:
        description: |
          cache disposition for the top level document
        type: quantity
        unit: integer
      script_from_necko_text:
        description: |
          Number of scripts fetched from necko as text
        type: quantity
        unit: integer
      script_from_necko_serialized:
        description: |
          Number of scripts fetched from necko as serialized stencil
        type: quantity
        unit: integer
      script_memory_cache_use:
        description: |
          Number of scripts retrieved from memory cache, non-dirsty
        type: quantity
        unit: integer
      script_memory_cache_revived:
        description: |
          Number of scripts retrieved from memory cache, dirty, but revived
          after the response from necko
        type: quantity
        unit: integer
      script_memory_cache_evicted_dirty:
        description: |
          Number of scripts retrieved from memory cache, dirty, and evicted
          after the response from necko
        type: quantity
        unit: integer
      network_type:
        description: |
          Network link type from nsINetworkLinkService, only available on android. Values as:
            - 0 unknown
            - 1 ethernet
            - 2 usb
            - 3 wifi
            - 4 wifimax
            - 9 mobile
        type: quantity
        unit: integer
      android_app_link_launch_type:
        description: |
          AppLink launch type, android only.
            - 0 UNKNOWN: not an applink navigation
            - 1 COLD: process and activity created from scratch
            - 2 WARM: process alive but target activity created fresh
            - 3 HOT: process alive and existing target activity instance reused
        type: quantity
        unit: integer
      android_app_link_to_navigation_start:
        type: quantity
        description:
          "For android navigations, the time from application launch (i.e parent process start) to navigation start. Only meaningful with android_app_link_launch_type = COLD"
        unit: ms
      android_isolation_category:
        description: |
          Process isolation category: 0=other, 1=shared_web, 2=site_isolated, 3=coop_isolated
        type: quantity
        unit: integer
      interaction_count:
        description: |
          Number of distinct user interactions on the page, per the W3C event
          timing spec (window.performance.interactionCount).
        type: quantity
        unit: integer
      inp_longest:
        description: |
          Longest dispatch-to-next-paint duration among events with a
          non-zero interactionId and duration >= 40 ms (matching the
          web-vitals.js INP threshold for RUM comparability), in ms.
          Candidate INP proxy.
        type: quantity
        unit: ms
      inp_p98:
        description: |
          98th percentile of dispatch-to-next-paint durations across the
          events used for inp_longest. Approximates Chrome's INP for pages
          with >= 50 such events; collapses to inp_longest otherwise.
        type: quantity
        unit: ms
      inp_p75:
        description: |
          75th percentile of the same set used for inp_p98.
        type: quantity
        unit: ms
      keypress_max_duration:
        description: |
          Longest dispatch-to-next-paint duration among keydown, keypress,
          or keyup events of at least 40 ms, in ms.
        type: quantity
        unit: ms
      mouse_click:
        description: |
          Longest dispatch-to-next-paint duration among pointer click
          events of at least 40 ms, in ms.
        type: quantity
        unit: ms
    send_in_pings:
      - pageload
  page_load_domain:
    type: event
    description: >
        Recorded when a top level content document has been loaded.
        Includes ETLD+1 information and sent with ohttp.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1967780
    data_reviews:
      - https://phabricator.services.mozilla.com/D250521
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - dpalmeiro@mozilla.com
    expires: never
    extra_keys:
      lcp_time:
        description: |
          Time between largestContentfulPaint and navigationStart, at the point of onLoad firing, in ms. This may differ from the final LCP value as reported through the LCP histogram.
        type: quantity
        unit: ms
      load_type:
        description: |
          One of normal,reload,stop,link,history,error or other.
        type: string
      same_origin_nav:
        description: |
          If true, a normal navigation was performed on the same origin.
        type: boolean
      http_ver:
        description: |
          Version of HTTP protocol used.
        type: quantity
        unit: integer
      document_features:
        description: >
          Bitfield of web features in use within this document:
            1 - fetchpriority applied to images
        type: quantity
        unit: integer
      domain:
        description: |
          ETLD+1 domain of website visited.
        type: string
      channel:
        description: |
          Release channel of the build. Either "nightly" or "release" only.
        type: string
      app_version_major:
        description: |
          Major version number.
        type: quantity
        unit: integer
      country:
        description: |
          ISO 3166-1 alpha-2 country code determined from local GeoIP data.
          Only set on release builds, and only for a limited set of countries
          with a large enough user base to avoid fingerprinting risk:
          US, DE, FR, GB, CA, PL, JP, IN, BR, ID, MX, IT, ES, NL.
        type: string
    send_in_pings:
      - pageload-base-domain

  dns_first_byte:
    type: labeled_timing_distribution
    description: >
      The time from a top-level document's HTTP channel open to the first byte
      of the reply is received (ms). Keyed by TRR domain for DoH or 'Native'
      otherwise
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1803671
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2037081
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1803671
    notification_emails:
      - necko@mozilla.com
      - acreskey@mozilla.com
    expires: never

  cold_applink_process_launch_to_load_uri:
    type: timing_distribution
    time_unit: millisecond
    description: |
      The duration from cold process launch to load URI for an android cold applink.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1990344
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1990344
    data_sensitivity:
      - technical
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - android-probes@mozilla.com
    expires: never

  cold_applink_main_to_load_uri:
    type: timing_distribution
    time_unit: millisecond
    description: |
      The duration from StartupTimeline::MAIN to load URI for an android cold applink.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1991160
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1991160
    data_sensitivity:
      - technical
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - android-probes@mozilla.com
    expires: never

performance.pageload:
  load_time:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time in milliseconds from navigationStart to loadEventStart
      for the foreground http or https root content document.
      (Migrated from the geckoview metric of the same name).
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729#c7
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never
    metadata:
      monitor:
        alert: False
        lower_is_better: True
        platforms:
          - All

  load_time_responsestart:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time in milliseconds from responseStart to loadEventStart
      for the foreground http or https root content document.
      (Migrated from the geckoview metric of the same name).
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729#c7
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  fcp:
    type: timing_distribution
    time_unit: millisecond
    description: >
      The time between navigationStart and the first contentful paint
      of a foreground http or https root content document, in
      milliseconds. The contentful paint timestamp is taken during
      display list building and does not include rasterization or
      compositing of that paint.
      (Migrated from the geckoview metric of the same name).
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729#c7
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never
    metadata:
      monitor:
        alert: False
        lower_is_better: True
        platforms:
          - All

  fcp_responsestart:
    type: timing_distribution
    time_unit: millisecond
    description: >
      The time between responseStart and the first contentful paint
      of a foreground http or https root content document, in
      milliseconds. The contentful paint timestamp is taken during
      display list building and does not include rasterization or
      compositing of that paint.
      (Migrated from the geckoview metric of the same name).
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1671729#c7
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

performance.time:
  dom_interactive:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to domInteractive as per the W3C
      Performance Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - vgosu@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  dom_content_loaded_start:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to domContentLoadedEventStart as per
      the W3C Performance Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - bdekoz@mozilla.com
    expires: never

  dom_content_loaded_end:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to domContentLoadedEventEnd as per
      the W3C Performance Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - vchin@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  dom_complete:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to domComplete as per the W3C Performance
      Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - vgosu@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  load_event_start:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to loadEventStart as per the W3C Performance
      Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
      - bdekoz@mozilla.com
    expires: never

  load_event_end:
    type: timing_distribution
    time_unit: millisecond
    description: >
      Time from navigationStart to loadEventEnd as per the W3C Performance
      Timing API.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - vchin@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  to_first_contentful_paint:
    type: timing_distribution
    description: >
      The time between navigation start and the first contentful paint of a
      foreground root content document, in milliseconds. This only records
      documents that were in an active docshell throughout the whole time
      between navigation start and contentful paint. The contentful paint
      timestamp is taken during display list building and does not include
      rasterization or compositing of that paint.

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram TIME_TO_FIRST_CONTENTFUL_PAINT_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1515132
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1515132
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
    expires: never

  to_dom_loading:
    type: timing_distribution
    description: >
      Time in milliseconds from navigationStart to domLoading.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2037081
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1344893
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
    notification_emails:
      - vgosu@mozilla.com
      - necko@mozilla.com
    expires: never

performance.page:
  non_blank_paint:
    type: timing_distribution
    time_unit: millisecond
    description: >
      The time between navigationStart and the first non-blank paint of a
      foreground root content document, in milliseconds. This only records
      documents that were in an active docshell throughout the whole time
      between navigation start and non-blank paint. The non-blank paint
      timestamp is taken during display list building and does not include
      rasterization or compositing of that paint.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1307242
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1489524
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877842
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1580077#c10
    notification_emails:
      - vchin@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

security:
  fission_principals:
    type: event
    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.
      This event was generated to correspond to the Legacy Telemetry event
      security.fissionPrincipals#contentParent.
    bugs:
      - https://bugzil.la/1687891
    data_reviews:
      - https://bugzil.la/1687891
    notification_emails:
      - tom@mozilla.com
      - ckerschb@mozilla.com
    expires: never
    extra_keys:
      value:
        description: >
          The `value` of the event. Mirrors to the Legacy Telemetry
          event's `value` parameter.
        type: string
      principalType:
        description: >
          The type of principal that was received. Expected values for this field are
            NullPtr
            SystemPrincipal
            ExpandedPrincipal
            ContentPrincipal
            Unknown

        type: string
      scheme:
        description: >
          If the principal is a ContentPrincipal, we also collect the scheme
        type: string
    telemetry_mirror: Security_Fissionprincipals_Contentparent

  shadowed_html_document_property_access:
    type: event
    description: >
      When accessing a property on the HTMLDocument like (document.currentScript),
      if that property was shadowed/"clobbered" (e.g. using <img name=currentScript>), the
      name of the shadowed built-in property is collected.
    bugs:
      - https://bugzil.la/1955578
    data_reviews:
      - https://bugzil.la/1955578
    notification_emails:
      - tschuster@mozilla.com
    expires: 160
    extra_keys:
      name:
        description: >
          Name of the shadowed HTML property that was accessed.
        type: string

dom.contentprocess:
  build_id_mismatch:
    type: counter
    description: >
      The number of times the about:restartrequired page appeared due to a
      buildID mismatch between the parent and the content processes.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.contentprocess.buildID_mismatch.
    bugs:
      - https://bugzil.la/1366808
    data_reviews:
      - https://bugzil.la/1366808
    notification_emails:
      - spohl@mozilla.com
    expires: never
    telemetry_mirror: DOM_CONTENTPROCESS_BUILDID_MISMATCH

  build_id_mismatch_false_positive:
    type: counter
    description: >
      The number of times a process crashed early but we could verify it
      was not because of buildID mismatch between the parent and the
      content processes.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.contentprocess.buildID_mismatch_false_positive.
    bugs:
      - https://bugzil.la/1651133
      - https://bugzil.la/1730045
      - https://bugzil.la/1754658
      - https://bugzil.la/1777404
      - https://bugzil.la/1817104
      - https://bugzil.la/1866197
      - https://bugzil.la/1928259
      - https://bugzil.la/2010454
    data_reviews:
      - https://bugzil.la/1651133
      - https://bugzil.la/1730045
      - https://bugzil.la/1754658
      - https://bugzil.la/1777404
      - https://bugzil.la/1817104
      - https://bugzil.la/1866197
      - https://bugzil.la/1928259
      - https://bugzil.la/2010454
    notification_emails:
      - alissy@mozilla.com
    expires: 170
    telemetry_mirror: DOM_CONTENTPROCESS_BUILDID_MISMATCH_FALSE_POSITIVE

  os_priority_lowered:
    type: counter
    description: >
      The number of times a content process has had its OS priority
      lowered due to only containing background tabs without audible media
      playing.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.contentprocess.os_priority_lowered.
    bugs:
      - https://bugzil.la/1538987
    data_reviews:
      - https://bugzil.la/1538987
    notification_emails:
      - mconley@mozilla.com
      - gsvelto@mozilla.com
    expires: never
    telemetry_mirror: DOM_CONTENTPROCESS_OS_PRIORITY_LOWERED

  os_priority_raised:
    type: counter
    description: >
      The number of times a content process has had its OS priority raised
      due to containing at least one foregrounded tab, or a tab with
      audible media has started playing in it.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.contentprocess.os_priority_raised.
    bugs:
      - https://bugzil.la/1538987
    data_reviews:
      - https://bugzil.la/1538987
    notification_emails:
      - mconley@mozilla.com
      - gsvelto@mozilla.com
    expires: never
    telemetry_mirror: DOM_CONTENTPROCESS_OS_PRIORITY_RAISED

  os_priority_change_considered:
    type: counter
    description: >
      The number of times we've had the opportunity to change content
      process priority due to a tab switch or a tab being opened.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.contentprocess.os_priority_change_considered.
    bugs:
      - https://bugzil.la/1538987
    data_reviews:
      - https://bugzil.la/1538987
    notification_emails:
      - mconley@mozilla.com
      - gsvelto@mozilla.com
    expires: never
    telemetry_mirror: DOM_CONTENTPROCESS_OS_PRIORITY_CHANGE_CONSIDERED

  launch_mainthread:
    type: timing_distribution
    description: >
      Time spent on the main thread during asynchronous content process launch.

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram CONTENT_PROCESS_LAUNCH_MAINTHREAD_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    notification_emails:
      - jld@mozilla.com
      - jimm@mozilla.com
      - mconley@mozilla.com
    expires: never
    telemetry_mirror: CONTENT_PROCESS_LAUNCH_MAINTHREAD_MS

  launch_total:
    type: timing_distribution
    description: >
      Total time elapsed during asynchronous content process launch, until the
      process is usable for loading content.

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram CONTENT_PROCESS_LAUNCH_TOTAL_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    notification_emails:
      - jld@mozilla.com
      - jimm@mozilla.com
      - mconley@mozilla.com
    expires: never
    telemetry_mirror: CONTENT_PROCESS_LAUNCH_TOTAL_MS

  sync_launch:
    type: timing_distribution
    description: >
      Time elapsed during synchronous content process launch until the process
      is usable for loading content.

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram CONTENT_PROCESS_SYNC_LAUNCH_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    notification_emails:
      - jld@mozilla.com
      - jimm@mozilla.com
      - mconley@mozilla.com
    expires: never
    telemetry_mirror: CONTENT_PROCESS_SYNC_LAUNCH_MS

  launch_is_sync:
    type: labeled_counter
    description: >
      Whether a content process was launched synchronously (unnecessarily
      delaying UI response).

      This metric was generated to correspond to the Legacy Telemetry boolean
      histogram CONTENT_PROCESS_LAUNCH_IS_SYNC.
    labels:
      - "false"
      - "true"
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1474991
    notification_emails:
      - jld@mozilla.com
      - jimm@mozilla.com
      - mconley@mozilla.com
    expires: never
    telemetry_mirror: h#CONTENT_PROCESS_LAUNCH_IS_SYNC

dom.parentprocess:
  private_window_used:
    type: boolean
    description: >
      Whether a private browsing window has been used in the session.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.parentprocess.private_window_used.
    bugs:
      - https://bugzil.la/1491047
    data_reviews:
      - https://bugzil.la/1491047
    notification_emails:
      - seceng-telemetry@mozilla.com
      - ehsan+telemetry@mozilla.com
    expires: never
    telemetry_mirror: DOM_PARENTPROCESS_PRIVATE_WINDOW_USED

  process_launch_errors:
    type: labeled_counter
    description: >
      Collect precise set of error code and calling site upon process
      creation failure path.
      This metric was generated to correspond to the Legacy Telemetry
      scalar dom.parentprocess.process_launch_errors.
    bugs:
      - https://bugzil.la/1819311
    data_reviews:
      - https://bugzil.la/1819311
    notification_emails:
      - alissy@mozilla.com
    expires: never
    telemetry_mirror: DOM_PARENTPROCESS_PROCESS_LAUNCH_ERRORS

dom.textfragment:
  find_directives:
    type: timing_distribution
    description: |
      Time spent in TextDirectiveFinder::FindTextDirectivesInDocument() per page load
    time_unit: millisecond
    expires: never
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1942117
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1942117
    notification_emails:
      - dom-core@mozilla.com
      - jjaschke@mozilla.com

  create_directive:
    type: timing_distribution
    description: |
      Time spent in FragmentDirective::CreateTextDirective()
    time_unit: millisecond
    expires: never
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1942117
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1942117
    notification_emails:
      - dom-core@mozilla.com
      - jjaschke@mozilla.com

dom:
  forget_skippable_during_idle:
    type: custom_distribution
    description: >
      Percent of the cycle collector's forget skippable done during idle time

      This metric was generated to correspond to the Legacy Telemetry linear
      histogram FORGET_SKIPPABLE_DURING_IDLE.
    range_min: 1
    range_max: 100
    bucket_count: 50
    histogram_type: linear
    unit: percent
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1372042
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1372042
    notification_emails:
      - dev-telemetry-gc-alerts@mozilla.org
    expires: never
    telemetry_mirror: FORGET_SKIPPABLE_DURING_IDLE

  forget_skippable_frequency:
    type: custom_distribution
    description: >
      Number of forget skippables occurred during a minute

      This metric was generated to correspond to the Legacy Telemetry linear
      histogram FORGET_SKIPPABLE_FREQUENCY.
    range_min: 1
    range_max: 500
    bucket_count: 100
    histogram_type: linear
    unit: forget skippables per minute
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1487271
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1487271
    notification_emails:
      - smaug@mozilla.com
      - dev-telemetry-gc-alerts@mozilla.org
    expires: never
    telemetry_mirror: FORGET_SKIPPABLE_FREQUENCY

  fullscreen_transition_black:
    type: timing_distribution
    description: >
      The time spent in the fully-black screen in fullscreen transition

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram FULLSCREEN_TRANSITION_BLACK_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1271160
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1271160
    notification_emails:
      - mozilla-telemetry@upsuper.org
    expires: never
    telemetry_mirror: FULLSCREEN_TRANSITION_BLACK_MS

  gc_in_progress:
    type: labeled_timing_distribution
    description: >
      Time from the beginning of the first slice to the end of the last slice
      (ms), labeled by process type.

      This metric was generated to correspond to the Legacy Telemetry
      exponential histogram GC_IN_PROGRESS_MS.
    time_unit: millisecond
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1545093
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2035873
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1545093
    notification_emails:
      - dev-telemetry-gc-alerts@mozilla.org
      - smaug@mozilla.com
    expires: never

  gc_slice_during_idle:
    type: custom_distribution
    description: >
      Percent of GC slice done during idle time

      This metric was generated to correspond to the Legacy Telemetry linear
      histogram GC_SLICE_DURING_IDLE.
    range_min: 1
    range_max: 100
    bucket_count: 50
    histogram_type: linear
    unit: percent
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1372042
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1372042
    notification_emails:
      - dev-telemetry-gc-alerts@mozilla.org
    expires: never
    telemetry_mirror: GC_SLICE_DURING_IDLE

  xmlhttprequest_async_or_sync:
    type: labeled_counter
    description: >
      Type of XMLHttpRequest, async or sync

      This metric was generated to correspond to the Legacy Telemetry boolean
      histogram XMLHTTPREQUEST_ASYNC_OR_SYNC.
    labels:
      - "false"
      - "true"
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1956726
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1956726
    notification_emails:
      - dom-core@mozilla.com
    expires: never
    telemetry_mirror: h#XMLHTTPREQUEST_ASYNC_OR_SYNC

  storage_access_api_ui:
    type: labeled_counter
    description: >
      Storage Access API UI events.

      This metric was generated to correspond to the Legacy Telemetry
      categorical histogram STORAGE_ACCESS_API_UI.
    labels:
      - Request
      - AllowAutomatically
      - Deny
      - Allow
      - AllowOnAnySite
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1513309
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1588844
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1643432
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1689262
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1730043
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832670
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1513309
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1588844
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1643432
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1689262
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1730043
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1832670
    notification_emails:
      - emz@mozilla.com
      - tihuang@mozilla.com
    expires: never
    telemetry_mirror: h#STORAGE_ACCESS_API_UI

  slow_script_notice_count:
    type: counter
    description: >
      Count slow script notices

      This metric was generated to correspond to the Legacy Telemetry count
      histogram SLOW_SCRIPT_NOTICE_COUNT.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1956726
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1956726
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
    expires: never

  slow_script_page_count:
    type: counter
    description: >
      The number of pages that trigger slow script notices

      This metric was generated to correspond to the Legacy Telemetry count
      histogram SLOW_SCRIPT_PAGE_COUNT.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1251667
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1251667
    notification_emails:
      - perf-telemetry-alerts@mozilla.com
    expires: never

  script_loading_source:
    type: labeled_counter
    description: >
      Record the input from which the bytes are coming from, for each script in
      a document.

      This metric was generated to correspond to the Legacy Telemetry
      categorical histogram DOM_SCRIPT_LOADING_SOURCE.
    labels:
      - Inline
      - SourceFallback
      - Source
      - AltData
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1362114
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1362114
    notification_emails:
      - nicolas.b.pierron@mozilla.com
    expires: never
    telemetry_mirror: h#DOM_SCRIPT_LOADING_SOURCE

  script_memory_cache_ever_hit:
    type: custom_distribution
    description: >
      The percentage of the stencil navigation cache entries that are
      ever hit in the process.
    range_min: 0
    range_max: 100
    bucket_count: 101
    histogram_type: linear
    unit: percent
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2019337
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2019337
    notification_emails:
      - tfujisawa.birchill@mozilla.com
    expires: never

  script_memory_cache_ref_count:
    type: custom_distribution
    description: >
      Distribution of the refCount of scripts in the stencil navigation
      cache.
    range_min: 1
    range_max: 100
    bucket_count: 100
    histogram_type: linear
    unit: scripts
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2019337
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=2019337
    notification_emails:
      - tfujisawa.birchill@mozilla.com
    expires: never

  blink_filesystem_used:
    type: labeled_counter
    description: >
      Webkit/Blink filesystem used

      This metric was generated to correspond to the Legacy Telemetry boolean
      histogram BLINK_FILESYSTEM_USED.
    labels:
      - "false"
      - "true"
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1272501
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1272501
    notification_emails:
      - amarchesini@mozilla.com
    expires: never
    telemetry_mirror: h#BLINK_FILESYSTEM_USED

  webkit_directory_used:
    type: labeled_counter
    description: >
      HTMLInputElement.webkitdirectory attribute used

      This metric was generated to correspond to the Legacy Telemetry boolean
      histogram WEBKIT_DIRECTORY_USED.
    labels:
      - "false"
      - "true"
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1272501
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1272501
    notification_emails:
      - amarchesini@mozilla.com
    expires: never
    telemetry_mirror: h#WEBKIT_DIRECTORY_USED
