chromium/third_party/blink/public/mojom/page/display_cutout.mojom

// Copyright 2018 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;

import "ui/gfx/geometry/mojom/geometry.mojom";

enum ViewportFit {
  // No effect - the whole web page is viewable (default).
  kAuto,

  // The initial layout viewport and the visual viewport are set to the
  // largest rectangle which is inscribed in the display of the device.
  kContain,

  // The initial layout viewport and the visual viewport are set to the
  // circumscribed rectangle of the physical screen of the device.
  kCover,

  // This has the same behaviour as |kCover| but it identifies that the
  // ViewportFit value was forced by the user agent by the media controls.
  kCoverForcedByUserAgent,
};

// Used for renderer -> browser calls about display cutout.
interface DisplayCutoutHost {
  // Notify the browser that the ViewportFit for the renderer has changed.
  NotifyViewportFitChanged(blink.mojom.ViewportFit value);
};

// Used for browser -> renderer calls about display cutout. This is associated
// with a frame.
interface DisplayCutoutClient {
  // Notify the renderer that the safe areas have changed.
  SetSafeArea(gfx.mojom.Insets safe_area);
};