chromium/content/public/app/mac_helpers.gni

# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This list defines variants of the helper app bundles that macOS //content
# embedders need to produce. The different variants are code signed with
# different entitlements, which afford different capabilities depending on the
# requirements of the process.
#
# This list should be kept in sync with the enum options defined in
# //content/public/browser/child_process_host.h.
#
# Each element of the list list is a tuple representing a helper variant. The
# elements of the tuple are:
#   target name - A short name to be used when defining the target for that
#                 helper variant.
#   bundle ID suffix - A string fragment to append to the CFBundleIdentifier of
#                      the helper.
#   app name suffix - A string fragment to append to the outer bundle name as
#                     well as the inner executable. This should be reflected in
#                     the target's output_name.
content_mac_helpers = [
  # The basic helper with no special entitlements.
  [
    "default",
    "",
    "",
  ],

  # A helper with the capability to JIT (execute writable memory), needed by V8,
  # and used to run renderer processes.
  [
    "renderer",
    ".renderer",
    " (Renderer)",
  ],

  # A helper with the capability to execute writable memory, needed by
  # Swiftshader, and used to run renderer processes.
  #
  # Note: be careful if adding a suffix to this name - doing so may
  # break automatic graphics switching. crbug.com/985486
  [
    "gpu",
    "",
    " (GPU)",
  ],

  # A helper that does not perform library validation, allowing code not signed
  # by either Apple or the signing identity to be loaded, and that can execute
  # unsigned memory.
  #
  # This helper historically hosted PPAPI plugins. Even after PPAPI deprecation,
  # it still hosts other kinds of third-party binary components; see
  # https://crbug.com/1342679 for context.
  [
    "plugin",
    ".plugin",
    " (Plugin)",
  ],
]