chromium/ash/webui/status_area_internals/mojom/status_area_internals.mojom

// 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.

module ash.mojom.status_area_internals;

// Interface for handling status area UI actions. Note that this interface
// is only bound on non-official builds since the webUI that uses this is
// only available on non-official builds.
interface PageHandler {
  // Defines the badge icon options for the battery
  enum BatteryIcon {
    kDefault,
    kXIcon,
    kUnreliableIcon,
    kBoltIcon,
    kBatterySaverPlusIcon,
  };

  // Toggles the visibility of the IME tray.
  ToggleImeTray(bool visible);

  // Toggles the visibility of the palette tray.
  TogglePaletteTray(bool visible);

  // Toggles the visibility of the logout tray.
  ToggleLogoutTray(bool visible);

  // Toggles the visibility of the virtual keyboard tray.
  ToggleVirtualKeyboardTray(bool visible);

  // Toggles the visibility of the dictation tray.
  ToggleDictationTray(bool visible);

  // Toggles the visibility of the video conference tray.
  ToggleVideoConferenceTray(bool visible);

  // Toggles the visibility of the annotation tray.
  ToggleAnnotationTray(bool visible);

  // Sets whether user is in a child session or not.
  SetIsInUserChildSession(bool in_child_session);

  // Triggers the privacy indicators in the status area.
  TriggerPrivacyIndicators(string app_id, string app_name, bool is_camera_used,
    bool is_microphone_used);

  // Resets Help Me Write consent status.
  // Used to validate the Help Me Write's opt-in flow.
  ResetHmrConsentStatus();

  // Sets the badge icon for the battery
  SetBatteryIcon(BatteryIcon icon);

  // Updates battery percentage
  SetBatteryPercent(double percent);
};