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

# This lists the known child processes we collect Telemetry for.
# The entries are keyed with the names used in Telemetry internally, the same name that is used
# in the main pings payload, i.e. "payload/processes/<process name>". See:
# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html#processes
#
# For now this is only used to inform the data pipeline about new processes, but will be used to
# generate headers with C++ data later (enums, strings, ...).
parent:
  gecko_enum: GeckoProcessType_Default
  description: This is the main process. It is also known as the parent or chrome process.
content:
  gecko_enum: GeckoProcessType_Content
  description: This is for processes web content is rendered in.
extension:
  gecko_enum: GeckoProcessType_Content
  description: >
    This is the WebExtension process. It is a re-used content process, with the data submitted
    separately to avoid skewing other content process Telemetry.
gpu:
  gecko_enum: GeckoProcessType_GPU
  description: This is the compositor or GPU process.
dynamic:
  gecko_enum: GeckoProcessType_Default
  description: >
    This is not a real process, it is used to logically group add-on probes.
    It contains data of any probes registered at runtime by add-ons.
rdd:
  gecko_enum: GeckoProcessType_RDD
  description: >
    Remote Media Decoder process in charge of running some video or audio decoders.
socket:
  gecko_enum: GeckoProcessType_Socket
  description: This is the process that handles networking requests.
utility:
  gecko_enum: GeckoProcessType_Utility
  description: This is a process that will hold arbitrary IPC actors requiring specific sandboxing.
