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";
Data Structures | |
struct | WindowInfo |
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 () |
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.
typedef sequence<DeviceReq> Accessibility::LoginHelper::DeviceReqList |
typedef sequence<WindowInfo> Accessibility::LoginHelper::WindowList |
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.
WindowList Accessibility::LoginHelper::getRaiseWindows | ( | ) |
getRaiseWindows:
Get a list of window IDs that need raising on login.
boolean Accessibility::LoginHelper::setSafe | ( | in boolean | safe_mode | ) |
setSafe:
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.