chromium/third_party/blink/renderer/modules/awc/additional_windowing_controls.idl

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

// Permission-gated access to Additional Windowing Controls (AWC) APIs.
// https://w3c.github.io/window-management/
// https://github.com/ivansandrk/additional-windowing-controls/blob/main/awc-explainer.md

[
  SecureContext,
  ImplementedAs=AdditionalWindowingControls,
  RuntimeEnabled=DesktopPWAsAdditionalWindowingControls
] partial interface Window {
  [
    CallWith=ScriptState, RaisesException, MeasureAs=WindowMaximize
  ] Promise<undefined> maximize();

  [
    CallWith=ScriptState, RaisesException, MeasureAs=WindowMinimize
  ] Promise<undefined> minimize();

  [
    CallWith=ScriptState, RaisesException, MeasureAs=WindowRestore
  ] Promise<undefined> restore();

  [
    CallWith=ScriptState, RaisesException, MeasureAs=WindowSetResizable
  ] Promise<undefined> setResizable(boolean resizable);
};