Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: chrome/common/extensions/api/automation.idl

Issue 667713006: Implement automatic load of composed/embedded automation trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // The <code>chrome.automation</code> API allows developers to access the 5 // The <code>chrome.automation</code> API allows developers to access the
6 // automation (accessibility) tree for the browser. The tree resembles the DOM 6 // automation (accessibility) tree for the browser. The tree resembles the DOM
7 // tree, but only exposes the <em>semantic</em> structure of a page. It can be 7 // tree, but only exposes the <em>semantic</em> structure of a page. It can be
8 // used to programmatically interact with a page by examining names, roles, and 8 // used to programmatically interact with a page by examining names, roles, and
9 // states, listening for events, and performing actions on nodes. 9 // states, listening for events, and performing actions on nodes.
10 [nocompile] namespace automation { 10 [nocompile] namespace automation {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 titleBar, 174 titleBar,
175 toggleButton, 175 toggleButton,
176 toolbar, 176 toolbar,
177 treeGrid, 177 treeGrid,
178 treeItem, 178 treeItem,
179 tree, 179 tree,
180 unknown, 180 unknown,
181 tooltip, 181 tooltip,
182 valueIndicator, 182 valueIndicator,
183 webArea, 183 webArea,
184 webView,
184 window 185 window
185 }; 186 };
186 187
187 // Describes characteristics of an $(ref:automation.AutomationNode). 188 // Describes characteristics of an $(ref:automation.AutomationNode).
188 enum StateType { 189 enum StateType {
189 busy, 190 busy,
190 checked, 191 checked,
191 collapsed, 192 collapsed,
192 default, 193 default,
193 disabled, // ui/views only 194 disabled, // ui/views only
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // listeners on $(ref:AutomationEvent.target). 233 // listeners on $(ref:AutomationEvent.target).
233 static void stopPropagation(); 234 static void stopPropagation();
234 }; 235 };
235 236
236 // A listener for events on an <code>AutomationNode</code>. 237 // A listener for events on an <code>AutomationNode</code>.
237 callback AutomationListener = void(AutomationEvent event); 238 callback AutomationListener = void(AutomationEvent event);
238 239
239 // A single node in an Automation tree. 240 // A single node in an Automation tree.
240 [nocompile, noinline_doc] dictionary AutomationNode { 241 [nocompile, noinline_doc] dictionary AutomationNode {
241 // The root node of the tree containing this AutomationNode. 242 // The root node of the tree containing this AutomationNode.
242 AutomationRootNode root; 243 AutomationNode root;
243 244
244 // Whether this AutomationNode is an AutomationRootNode. 245 // Whether this AutomationNode is root node.
245 boolean isRootNode; 246 boolean isRootNode;
246 247
247 // Unique ID to identify this node. 248 // Unique ID to identify this node.
248 long id; 249 long id;
249 250
250 // The role of this node. 251 // The role of this node.
251 automation.RoleType role; 252 automation.RoleType role;
252 253
253 // The $(ref:automation.StateType)s describing this node. 254 // The $(ref:automation.StateType)s describing this node.
254 object state; 255 object state;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 288
288 // Adds a listener for the given event type and event phase. 289 // Adds a listener for the given event type and event phase.
289 static void addEventListener( 290 static void addEventListener(
290 EventType eventType, AutomationListener listener, boolean capture); 291 EventType eventType, AutomationListener listener, boolean capture);
291 292
292 // Removes a listener for the given event type and event phase. 293 // Removes a listener for the given event type and event phase.
293 static void removeEventListener( 294 static void removeEventListener(
294 EventType eventType, AutomationListener listener, boolean capture); 295 EventType eventType, AutomationListener listener, boolean capture);
295 }; 296 };
296 297
297 // Called when the <code>AutomationRootNode</code> for the page is available. 298 // Called when the <code>AutomationNode</code> for the page is available.
298 callback RootCallback = void(AutomationRootNode rootNode); 299 callback RootCallback = void(AutomationNode rootNode);
299
300 // The root node of the automation tree for a single frame or desktop.
301 // This may be:
302 // <ul>
303 // <li> The desktop
304 // <li> The top frame of a page
305 // <li> A frame or iframe within a page
306 // </ul>
307 // Thus, an <code>AutomationRootNode</code> may be a descendant of one or
308 // more <code>AutomationRootNode</code>s, and in turn have one or more
309 // <code>AutomationRootNode</code>s in its descendants. Thus, the
310 // <code>root</code> property of the <code>AutomationRootNode</code> will be
311 // the immediate parent <code>AutomationRootNode</code>, or <code>null</code>
312 // if this is the top-level <code>AutomationRootNode</code>.
313 //
314 // Extends $(ref:automation.AutomationNode).
315 [nocompile, noinline_doc] dictionary AutomationRootNode {
316 // TODO(aboxhall/dtseng): implement loading. Kept separate to not include
317 // in generated docs.
318
319 // Whether this AutomationRootNode is loaded or not. If false, call load()
320 // to get the contents.
321 boolean loaded;
322
323 // Load the accessibility tree for this AutomationRootNode.
324 static void load(RootCallback callback);
325 };
326 300
327 interface Functions { 301 interface Functions {
328 // Get the automation tree for the tab with the given tabId, or the current 302 // Get the automation tree for the tab with the given tabId, or the current
329 // tab if no tabID is given, enabling automation if necessary. Returns a 303 // tab if no tabID is given, enabling automation if necessary. Returns a
330 // tree with a placeholder root node; listen for the "loadComplete" event to 304 // tree with a placeholder root node; listen for the "loadComplete" event to
331 // get a notification that the tree has fully loaded (the previous root node 305 // get a notification that the tree has fully loaded (the previous root node
332 // reference will stop working at or before this point). 306 // reference will stop working at or before this point).
333 [nocompile] static void getTree(optional long tabId, RootCallback callback); 307 [nocompile] static void getTree(optional long tabId, RootCallback callback);
334 308
335 // Get the automation tree for the whole desktop which consists of all on 309 // Get the automation tree for the whole desktop which consists of all on
336 // screen views. Note this API is currently only supported on Chrome OS. 310 // screen views. Note this API is currently only supported on Chrome OS.
337 [nocompile] static void getDesktop(RootCallback callback); 311 [nocompile] static void getDesktop(RootCallback callback);
338 }; 312 };
339 }; 313 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698