# Accessibility::LoginHelper Interface Reference

An interface for use by assistive technologies by which they can access system information and services on a 'need to know' basis while the screen is locked, during user authentication, or during other sensitive operations. More...

`import "Accessibility_LoginHelper.idl";`

## Public Types

enum | DeviceReq { GUI_EVENTS, CORE_KEYBOARD, CORE_POINTER, EXT_INPUT, POST_WINDOWS, AUDIO_OUT, AUDIO_IN, NETWORK, LOCALHOST, SERIAL_OUT, SERIAL_IN }
typedef sequence< WindowInfo > | WindowList
typedef sequence< DeviceReq > | DeviceReqList

## Public Member Functions

boolean | setSafe (in boolean safe_mode)
DeviceReqList | getDeviceReqs ()
WindowList | getRaiseWindows ()

## Data Structures

struct | WindowInfo

## Detailed Description

An interface for use by assistive technologies by which they can access system information and services on a 'need to know' basis while the screen is locked, during user authentication, or during other sensitive operations.

This interface is intended for use by assistive technologies and related user-enabling services, and by applications and utilities which may wish to restrict access to certain system devices and services during security-sensitive states, e.g. when the screen is locked or during authentication into some secure service.

Such 'applications' (for instance, screen lock dialogs and security-enabled web browsers) use the LoginHelper client interfaces, and the bonobo-activation query service, to query for assistive technologies which advertise the LoginHelper service. The client then queries these assistive technologies for their device I/O requirements, via the getDeviceReqs call. The client may then issue the advisory request setSafe (TRUE), which requests that the LoginHelper -implementing service make a best-effort attempt to make itself more secure (for instance, an onscreen keyboard might turn off word prediction, and a screenreader may turn off keyboard echo via speech). The return value of setSafe is an advisory indication of whether this attempt was successful (no specific guarantees are implied). Once the 'security sensitive' state is exited, the client should call setSafe (FALSE).

The return values from getDeviceReqs inform the client of which services the LoginHelper service (e. g. assistive technology) needs in order to do its job. The client may use this information to loosen any restrictions on access which it may currently have in place (for instance, keyboard grabs, etc.). If it does not do so, the likely outcome is that the end-user will experience loss of access to the system.

## Member Typedef Documentation

typedef sequence<WindowInfo> Accessibility::LoginHelper::WindowList

typedef sequence<DeviceReq> Accessibility::LoginHelper::DeviceReqList

## Member Enumeration Documentation

enum Accessibility::LoginHelper::DeviceReq

Enumerator:

  GUI_EVENTS | : Needs access to the GUI event subsystem (e.g. Xserver)
  CORE_KEYBOARD | : Needs access to the system keyboard events (read and write)
  CORE_POINTER | : Needs access to the onscreen pointer (e.g. mouse pointer)
  EXT_INPUT | : Reads XInput extended input devices
  POST_WINDOWS | : Posts Windows, and needs for toplevel windows to be visible
  AUDIO_OUT | : Writes to audio device
  AUDIO_IN | : Reads from audio device
  NETWORK | : Requires access to general network services, including remote access
  LOCALHOST | : Requires network services hosted on LOCALHOST only
  SERIAL_OUT | : Writes to a serial port
  SERIAL_IN | : Reads from a serial port

## Member Function Documentation

boolean Accessibility::LoginHelper::setSafe | ( | in boolean | safe_mode | ) |

setSafe:

Parameters:

  | safe_mode,: | `TRUE` if the client is requesting that 'safe mode' be initiated, `FALSE` if the client is advising that 'safe mode' may be exited, i.e. normal operation may be resumed.

Request a LoginHelper to enter "safe" mode, or inform LoginHelper that "safe" mode may be exited. If safe_mode is `TRUE`, but the return value is `FALSE`, the requesting client may wish to deny services to the LoginHelper, for instance avoid raising its toplevels. The return value is purely advisory, and no guarantees are intended about what the implementing LoginHelper will do to improve security when in "safe" mode.

Returns:
  : whether the LoginHelper is now "safe" or not.

DeviceReqList Accessibility::LoginHelper::getDeviceReqs | ( |  | ) |

getDeviceReqs:

Query a LoginHelper for the types of device I/O it requires, in order to do its job. For instance, a LoginHelper which needs to receive keyboard events will include Accessibility_LoginHelper_CORE_KEYBOARD in this list.

Returns:
  : A sequence of LoginHelper_DeviceReq indicating the device I/O required in order to facilitate end-user access to the system.

WindowList Accessibility::LoginHelper::getRaiseWindows | ( |  | ) |

getRaiseWindows:

Get a list of window IDs that need raising on login.

Returns:
  : a sequence containing window IDS for toplevels which need to be raised/made visible during user authentication, in order for the LoginHelper to facilitate end-user access to the system.

The documentation for this interface was generated from the following file:

- /home/liyuan/src/at-spi/idl/Accessibility_LoginHelper.idl