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

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

module blink.mojom;

// This enum should be synced with
// and chrome/browser/web_applications/proto/web_app.proto
// and components/sync/protocol/web_app_specifics.proto
// and tools/metrics/histograms/enums.xml

enum DisplayMode {
  kUndefined, // Used for override setting (ie. not set).

  // The standard display modes that are accepted in the "display" field of the
  // web app manifest: https://www.w3.org/TR/appmanifest/#dfn-display-modes-list.
  kBrowser,
  kMinimalUi,
  kStandalone,
  kFullscreen,

  // TODO(crbug.com/937121): This is a non-standard value intended for use in
  // the "display_override" field of the web app manifest:
  // https://github.com/WICG/window-controls-overlay/blob/main/explainer.md.
  kWindowControlsOverlay,

  // This is a non-standard value intended for use in the "display_override"
  // field of the web app manifest: https://github.com/w3c/manifest/issues/737
  kTabbed,

  // This is a non-standard value intended for use in the "display_override"
  // field of the web app manifest:
  // https://github.com/WICG/manifest-incubations/blob/gh-pages/borderless-explainer.md.
  kBorderless,

  // This value is used only for the "display-mode" CSS media feature:
  // https://drafts.csswg.org/mediaqueries-5/#display-mode-picture-in-picture
  // It is not used in the web app manifest.
  kPictureInPicture,

  /**
   * This enum is persisted to logs, and therefore is append-only and should not be reordered.
   */
};