Add untested loginHelper implementation
[platform/core/uifw/at-spi2-atk.git] / xml / org.freedesktop.atspi.LoginHelper.xml
1 <node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2
3 <tp:title>AT-SPI - Assistive Technology Service Provider Interface </tp:title>
4 <tp:copyright>Copyright 2008 Novell, Inc.</tp:copyright>
5 <tp:copyright>Copyright 2001 Sun Microsystems Inc.</tp:copyright>
6 <tp:license xmlns="http://www.w3.org/1999/xhtml">
7   <p>This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Library General Public
9     License as published by the Free Software Foundation; either
10     version 2 of the License, or (at your option) any later version.</p>
11
12   <p>This library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15     Library General Public License for more details.</p>
16
17   <p>You should have received a copy of the GNU Library General Public
18     License along with this library; if not, write to the
19     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA.</p>
21 </tp:license>
22 <interface name="org.freedesktop.atspi.LoginHelper">
23   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
24     <p>@brief An interface for use by assistive technologies by which
25       they can access system information and services on a 'need to know'
26       basis while the screen is locked, during user authentication, or
27       during other sensitive operations.  </p>
28
29     <p>This interface is intended for use by assistive technologies
30       and related user-enabling services, and by applications and
31       utilities which may wish to restrict access to certain system 
32       devices and services during security-sensitive states, e.g. when 
33       the screen is locked or during authentication into some secure
34       service.  </p>
35
36     <p>Such 'applications' (for instance, screen lock dialogs and
37       security-enabled web browsers) use the ::LoginHelper client
38       interfaces, and the bonobo-activation query service, to
39       query for assistive technologies which advertise the ::LoginHelper
40       service.  The client then queries these assistive technologies 
41       for their device I/O requirements, via the ::getDeviceReqs call.
42       The client may then issue the advisory request ::setSafe (TRUE), 
43       which requests that the ::LoginHelper -implementing service make a
44       best-effort attempt to make itself more secure (for instance, 
45       an onscreen keyboard might turn off word prediction, and a
46       screenreader may turn off keyboard echo via speech).  The return
47       value of ::setSafe is an advisory indication of whether this attempt
48       was successful (no specific guarantees are implied).
49       Once the 'security sensitive' state is exited, the client should 
50       call ::setSafe (FALSE).  </p>
51
52     <p>The return values from ::getDeviceReqs inform the client of which
53       services the ::LoginHelper service (e. g. assistive technology) needs
54       in order to do its job.  The client may use this information to
55       loosen any restrictions on access which it may currently have in 
56       place (for instance, keyboard grabs, etc.).  If it does not do so,
57       the likely outcome is that the end-user will experience loss
58       of access to the system.  </p>
59   </tp:docstring>
60   <tp:struct name="WindowInfo">
61     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
62       <p>A structure containing info about toplevel X windows that
63         the ::LoginHelper instance wishes to have raised.    </p>
64     </tp:docstring>
65     <tp:member type="i" tp:name="winID">
66     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
67       <p>string display; 
68         short screen; </p>
69     </tp:docstring>
70     </tp:member>
71   </tp:struct>
72   <tp:enum name="DeviceReq" type="u">
73     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
74       <p>DeviceReq:    </p>
75
76       <p>The system and device access and services which the LoginHelper-implementing 
77         assistive technology requires in order to enable the user to use the system.    </p>
78     </tp:docstring>
79     <tp:enumvalue suffix="GUI_EVENTS">
80     <tp:docstring>
81       !&lt;: Needs access to the GUI event subsystem (e.g. Xserver) 
82     </tp:docstring>
83     </tp:enumvalue>
84     <tp:enumvalue suffix="CORE_KEYBOARD" value="1">
85     <tp:docstring>
86       !&lt;: Needs access to the system keyboard events (read and write) 
87     </tp:docstring>
88     </tp:enumvalue>
89     <tp:enumvalue suffix="CORE_POINTER" value="2">
90     <tp:docstring>
91       !&lt;: Needs access to the onscreen pointer (e.g. mouse pointer) 
92     </tp:docstring>
93     </tp:enumvalue>
94     <tp:enumvalue suffix="EXT_INPUT" value="3">
95     <tp:docstring>
96       !&lt;: Reads XInput extended input devices 
97     </tp:docstring>
98     </tp:enumvalue>
99     <tp:enumvalue suffix="POST_WINDOWS" value="4">
100     <tp:docstring>
101       !&lt;: Posts Windows, and needs for toplevel windows to be visible 
102     </tp:docstring>
103     </tp:enumvalue>
104     <tp:enumvalue suffix="AUDIO_OUT" value="5">
105     <tp:docstring>
106       !&lt;: Writes to audio device 
107     </tp:docstring>
108     </tp:enumvalue>
109     <tp:enumvalue suffix="AUDIO_IN" value="6">
110     <tp:docstring>
111       !&lt;: Reads from audio device 
112     </tp:docstring>
113     </tp:enumvalue>
114     <tp:enumvalue suffix="NETWORK" value="7">
115     <tp:docstring>
116       !&lt;: Requires access to general network services, including remote access 
117     </tp:docstring>
118     </tp:enumvalue>
119     <tp:enumvalue suffix="LOCALHOST" value="8">
120     <tp:docstring>
121       !&lt;: Requires network services hosted on LOCALHOST only 
122     </tp:docstring>
123     </tp:enumvalue>
124     <tp:enumvalue suffix="SERIAL_OUT" value="9">
125     <tp:docstring>
126       !&lt;: Writes to a serial port 
127     </tp:docstring>
128     </tp:enumvalue>
129     <tp:enumvalue suffix="SERIAL_IN" value="10">
130     <tp:docstring>
131       !&lt;: Reads from a serial port 
132     </tp:docstring>
133     </tp:enumvalue>
134   </tp:enum>
135   <method name="setSafe">
136     <tp:docstring>
137       setSafe:
138     </tp:docstring>
139     <arg direction="in" name="safe_mode" type="b" tp:type="boolean">
140     <tp:docstring>
141       \c TRUE if the client is requesting that 'safe mode' be initiated, \c FALSE if the client is advising that 'safe mode' may beexited, i.e. normal operation may be resumed.Request a LoginHelper to enter &quot;safe&quot; mode, orinform LoginHelper that &quot;safe&quot; mode may be exited.If \a safe_mode is \c TRUE, but the return value is \c 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 &quot;safe&quot; mode.
142     </tp:docstring>
143     </arg>
144     <arg direction="out" type="b" tp:type="boolean">
145     <tp:docstring>
146       whether the ::LoginHelper is now &quot;safe&quot; or not.
147     </tp:docstring>
148     </arg>
149   </method>
150   <method name="getDeviceReqs">
151     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
152       <p>getDeviceReqs:    </p>
153
154       <p>Query a ::LoginHelper for the types of
155         device I/O it requires, in order to do its job.
156         For instance, a ::LoginHelper which needs to receive keyboard
157         events will include 
158         Accessibility_LoginHelper_CORE_KEYBOARD in this list.    </p>
159     </tp:docstring>
160     <arg direction="out" type="u" tp:type="DeviceReqList">
161     <tp:docstring>
162       A sequence of ::LoginHelper_DeviceReq indicatingthe device I/O required in order to facilitate end-user access to the system.
163     </tp:docstring>
164     </arg>
165   </method>
166   <method name="getRaiseWindows">
167     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
168       <p>getRaiseWindows:    </p>
169
170       <p>Get a list of window IDs that need raising on login.     </p>
171     </tp:docstring>
172     <arg direction="out" type="ai" tp:type="WindowList">
173     <tp:docstring>
174       a sequence containing window IDS for toplevels whichneed to be raised/made visible during user authentication, inorder for the ::LoginHelper to facilitate end-user access to the system.
175     </tp:docstring>
176     </arg>
177   </method>
178   <method name="unImplemented">
179     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
180       <p>\cond
181         unImplemented:    </p>
182
183       <p>placeholders for future expansion.</p>
184     </tp:docstring>
185   </method>
186   <method name="unImplemented2">
187   </method>
188   <method name="unImplemented3">
189   </method>
190   <method name="unImplemented4">
191   </method>
192 </interface>
193 </node>