
Launcher Process Failure ping
=============================

This ping is generated by the Firefox launcher process when it fails to successfully start the browser, or generated by the browser process when it fails to start a sandboxed process.

Structure:

.. code-block:: js

    {
      type: "launcher-process-failure",
      "version": 1,
      "id": <UUID>,
      "creationDate": <Date string in ISO format>,
      "update_channel": <string>,
      "build_id": <string>,
      "build_version": <string>,
      // Windows version number in major.minor.build.UBR format (UBR is optional, only available on Win10)
      "os_version": <string>,
      // True if this build was running atop a Windows Server OS
      "server_os": <bool>,
      // The current user's OS locale setting
      "os_locale": <string>,
      // CPU Architecture. One of the values from the Windows SYSTEM_INFO::wProcessorArchitecture field
      "cpu_arch": <int>,
      "num_logical_cpus": <int>,
      // True if the process was launched with Administrator privileges
      // but without User Account Control (= UAC)
      "is_admin_without_uac": <bool>,
      // The type of the process which failed to start as a sandboxed process.
      // If the launcher process fails to launch the browser process, this property is not set.
      "process_type": <string>,
      "memory": {
        // Free space available in the page file, in bytes
        "total_phys": <int>,
        // Available physical memory on the machine, in bytes
        "avail_phys": <int>,
        // Free space available in the page file, in bytes
        "avail_page_file": <int>,
        // Available virtual memory on the machine, in bytes
        "avail_virt": <int>
      },
      "xpcom_abi": <string>,
      "launcher_error": {
        // The leaf name of the source file where the error was raised
        "source_file": <string>,
        // The line number of the source file where the error was raised
        "source_line": <int>,
        // The HRESULT error code of the error that was raised
        "hresult": <int>,
        // First sixteen bytes of a function that we failed to hook (Nightly-only).
        // This field is added only on detour failures.
        "detour_orig_bytes": <string>
      },
      "security": {
        // A list of names of installed antivirus products
        "av": [
          <string>,
          ...
        ],
        // A list of names of installed antispyware products
        "antispyware": [
          <string>,
          ...
        ],
        // A list of names of installed firewall products
        "firewall": [
          <string>,
          ...
        ]
      },
      // A mapping of all modules present in the failing process, including
      // their version numbers and an optional index into the signatures array
      "modules": {
        <moduleName>: [
          <string>,
          <int>
        ],
        ...
      },
      // A list of all signatures that were used to sign the binaries that are
      // listed in modules.
      "signatures": [
        <string>,
        ...
      ]
    }

Version History
~~~~~~~~~~~~~~~

- Firefox 82: Added ``detour_orig_bytes`` (`bug 1588245 <https://bugzilla.mozilla.org/show_bug.cgi?id=1588245>`_).
- Firefox 82: Added ``process_type`` (`bug 1630444 <https://bugzilla.mozilla.org/show_bug.cgi?id=1630444>`_).
- Firefox 71: Added ``is_admin_without_uac`` (`bug 1567605 <https://bugzilla.mozilla.org/show_bug.cgi?id=1567605>`_).
- Firefox 67: Initial release (`bug 1460433 <https://bugzilla.mozilla.org/show_bug.cgi?id=1460433>`_).
