# 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
    telemetry_mirror: PERF_LARGEST_CONTENTFUL_PAINT_MS
  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
    telemetry_mirror: PERF_LARGEST_CONTENTFUL_PAINT_FROM_RESPONSE_START_MS
  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
    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
      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
      redirect_time:
        type: quantity
        description:
          "Time spent in redirections 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
    send_in_pings:
      - pageload

performance.pageload:
  load_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: PERF_PAGE_LOAD_TIME_MS
    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

  load_time_responsestart:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: PERF_PAGE_LOAD_TIME_FROM_RESPONSESTART_MS
    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
    telemetry_mirror: PERF_FIRST_CONTENTFUL_PAINT_MS
    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

  fcp_responsestart:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: PERF_FIRST_CONTENTFUL_PAINT_FROM_RESPONSESTART_MS
    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
    telemetry_mirror: TIME_TO_DOM_INTERACTIVE_MS
    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
    telemetry_mirror: TIME_TO_DOM_CONTENT_LOADED_START_MS
    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
    telemetry_mirror: TIME_TO_DOM_CONTENT_LOADED_END_MS
    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
    telemetry_mirror: TIME_TO_DOM_COMPLETE_MS
    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
    telemetry_mirror: TIME_TO_LOAD_EVENT_START_MS
    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
    telemetry_mirror: TIME_TO_LOAD_EVENT_END_MS
    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


performance.page:
  non_blank_paint:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: TIME_TO_NON_BLANK_PAINT_MS
    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


javascript.pageload:
  execution_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_EXECUTION_MS
    description: >
      Time spent during page load executing Javascript in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  delazification_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_DELAZIFICATION_MS
    description: >
      Time spent during page load delazifying Javascript in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  xdr_encode_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_XDR_ENCODING_MS
    description: >
      Time spent during page load XDR encoding Javascript in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  baseline_compile_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_BASELINE_COMPILE_MS
    description: >
      Time spent during page load baseline compiling Javascript in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  gc_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_GC_MS
    description: >
      Time spent during page load in the GC in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  parse_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_PARSE_MS
    description: >
      Time spent during page load syntax parsing JS scripts on
      the main thread in ms.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never

  protect_time:
    type: timing_distribution
    time_unit: millisecond
    telemetry_mirror: JS_PAGELOAD_PROTECT_MS
    description: >
      Time spent during page load protecting JIT executable memory.
      (Migrated from the geckoview metric of the same name.)
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1877843
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1709139#c4
    notification_emails:
      - dpalmeiro@mozilla.com
      - perf-telemetry-alerts@mozilla.com
    expires: never
