blob: 3f5dffd1d17331b7e10cc09d398854e810161ea2 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module ash.mojom;
import "ash/public/interfaces/update.mojom";
import "mojo/common/string16.mojom";
// Allows clients (e.g. Chrome browser) to control the ash system tray menu.
interface SystemTray {
// Sets the client interface.
SetClient(SystemTrayClient client);
// Sets the enabled state of the tray on the primary display. If not |enabled|
// any open menu will be closed.
SetPrimaryTrayEnabled(bool enabled);
// Sets the visibility of the tray on the primary display.
SetPrimaryTrayVisible(bool visible);
// Sets the clock to use 24 hour time formatting if |use_24_hour| is true.
// Otherwise sets 12 hour time formatting.
SetUse24HourClock(bool use_24_hour);
// Creates or updates an item in the system tray menu with information about
// enterprise management. The item appears if |enterprise_display_domain| is
// not empty or |active_directory_managed| is true.
SetEnterpriseDisplayDomain(string enterprise_display_domain,
bool active_directory_managed);
// Shows or hides an item in the system tray indicating that performance
// tracing is running.
SetPerformanceTracingIconVisible(bool visible);
// Shows an icon in the system tray indicating that a software update is
// available. Once shown the icon persists until reboot. |severity| and
// |factory_reset_required| are used to set the icon, color, and tooltip.
ShowUpdateIcon(UpdateSeverity severity,
bool factory_reset_required,
UpdateType update_type);
// If |visible| is true, shows an icon in the system tray which indicates that
// a software update is available but user's agreement is required as current
// connection is cellular. If |visible| is false, hides the icon because the
// user's one time permission on update over cellular connection has been
// granted.
SetUpdateOverCellularAvailableIconVisible(bool visible);
};
// Allows ash system tray to control a client (e.g. Chrome browser). Requests
// often involve preferences or web UI that is not available to ash.
interface SystemTrayClient {
// Shows general settings UI.
ShowSettings();
// Shows settings related to Bluetooth devices (e.g. to add a device).
ShowBluetoothSettings();
// Shows the web UI dialog to pair a Bluetooth device.
// |address| is the unique device address in the form "XX:XX:XX:XX:XX:XX"
// with hex digits X. |name_for_display| is a human-readable name, not
// necessarily the device name.
ShowBluetoothPairingDialog(string address,
mojo.common.mojom.String16 name_for_display,
bool paired,
bool connected);
// Shows the settings related to date, timezone etc.
ShowDateSettings();
// Shows the dialog to set system time, date, and timezone.
ShowSetTimeDialog();
// Shows settings related to multiple displays.
ShowDisplaySettings();
// Shows settings related to power.
ShowPowerSettings();
// Shows the page that lets you disable performance tracing.
ShowChromeSlow();
// Shows settings related to input methods.
ShowIMESettings();
// Shows the about chrome OS page and checks for updates after the page is
// loaded.
ShowAboutChromeOS();
// Shows the Chromebook help app.
ShowHelp();
// Shows accessibility help.
ShowAccessibilityHelp();
// Shows the settings related to accessibility.
ShowAccessibilitySettings();
// Shows the help center article for the stylus tool palette.
ShowPaletteHelp();
// Shows the settings related to the stylus tool palette.
ShowPaletteSettings();
// Shows information about public account mode.
ShowPublicAccountInfo();
// Shows information about enterprise enrolled devices.
ShowEnterpriseInfo();
// Shows UI to configure or activate the network specified by |network_id|,
// which may include showing payment or captive portal UI when appropriate.
ShowNetworkConfigure(string network_id);
// Shows UI to create a new network connection. The |type| is a Shill/Flimflam
// network type from third_party/cros_system_api/dbus/shill/dbus-constants.h
// ('wifi', 'cellular', etc.).
ShowNetworkCreate(string type);
// Shows the "add network" UI to create a third-party extension-backed VPN
// connection (e.g. Cisco AnyConnect).
ShowThirdPartyVpnCreate(string extension_id);
// Launches Arc VPN provider.
ShowArcVpnCreate(string app_id);
// Shows settings related to networking. If |network_id| is empty, shows
// general settings. Otherwise shows settings for the individual network.
// On devices |network_id| is a GUID, but on Linux desktop and in tests it can
// be any string.
ShowNetworkSettings(string network_id);
// Attempts to restart the system for update.
RequestRestartForUpdate();
};