chromium/third_party/blink/public/mojom/manifest/manifest_launch_handler.mojom

module blink.mojom;

// Represents how web app launches should be handled with regard to opening
// windows or recycling existing ones.
// Spec: https://github.com/WICG/web-app-launch/blob/main/launch_handler.md
struct ManifestLaunchHandler {
  // The client behavior to use for app launches.
  // This enum is used by metrics, do not change the values.
  enum ClientMode {
    // Use whatever the platform would do by default.
    kAuto = 0,

    // Create a new client for each app launch and navigate it to the launch
    // URL.
    kNavigateNew = 1,

    // Use an existing client if available, otherwise create a new one to use.
    // Navigate the existing client to the launch URL.
    kNavigateExisting = 2,

    // Use an existing client if available, otherwise create a new one to use.
    // Do not navigate the client and just enqueue a LaunchParams in the
    // document's LaunchQueue.
    kFocusExisting = 3,
  };
  ClientMode client_mode;
};