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

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

Issue 2584513006: Split out non-auto-generatable externs from auto generated ones. (Closed)
Patch Set: Use bound enum values. Created 4 years 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 {
11 // Keep the following enums in sync with 'ui/accessibility/ax_enums.idl'.
12 // They are kept here purely for extension docs generation.
13
14 // Possible events fired on an $(ref:automation.AutomationNode).
15 enum EventType {
16 activedescendantchanged,
17 alert,
18 ariaAttributeChanged,
19 autocorrectionOccured,
20 blur,
21 checkedStateChanged,
22 childrenChanged,
23 clicked,
24 documentSelectionChanged,
25 expandedChanged,
26 focus,
27 imageFrameUpdated,
28 hide,
29 hover,
30 invalidStatusChanged,
31 layoutComplete,
32 liveRegionCreated,
33 liveRegionChanged,
34 loadComplete,
35 locationChanged,
36 mediaStartedPlaying,
37 mediaStoppedPlaying,
38 menuEnd,
39 menuListItemSelected,
40 menuListValueChanged,
41 menuPopupEnd,
42 menuPopupStart,
43 menuStart,
44 mouseCanceled,
45 mouseDragged,
46 mouseMoved,
47 mousePressed,
48 mouseReleased,
49 rowCollapsed,
50 rowCountChanged,
51 rowExpanded,
52 scrollPositionChanged,
53 scrolledToAnchor,
54 selectedChildrenChanged,
55 selection,
56 selectionAdd,
57 selectionRemove,
58 show,
59 textChanged,
60 textSelectionChanged,
61 treeChanged,
62 valueChanged
63 };
64
65 // Describes the purpose of an $(ref:automation.AutomationNode).
66 enum RoleType {
67 abbr,
68 alertDialog,
69 alert,
70 annotation,
71 application,
72 article,
73 audio,
74 banner,
75 blockquote,
76 busyIndicator,
77 button,
78 buttonDropDown,
79 canvas,
80 caption,
81 cell,
82 checkBox,
83 client,
84 colorWell,
85 columnHeader,
86 column,
87 comboBox,
88 complementary,
89 contentInfo,
90 date,
91 dateTime,
92 definition,
93 descriptionListDetail,
94 descriptionList,
95 descriptionListTerm,
96 desktop,
97 details,
98 dialog,
99 directory,
100 disclosureTriangle,
101 div,
102 document,
103 embeddedObject,
104 figcaption,
105 figure,
106 footer,
107 form,
108 grid,
109 group,
110 heading,
111 iframe,
112 iframePresentational,
113 ignored,
114 imageMapLink,
115 imageMap,
116 image,
117 inlineTextBox,
118 inputTime,
119 labelText,
120 legend,
121 lineBreak,
122 link,
123 listBoxOption,
124 listBox,
125 listItem,
126 listMarker,
127 list,
128 locationBar,
129 log,
130 main,
131 mark,
132 marquee,
133 math,
134 menuBar,
135 menuButton,
136 menuItem,
137 menuItemCheckBox,
138 menuItemRadio,
139 menuListOption,
140 menuListPopup,
141 menu,
142 meter,
143 navigation,
144 note,
145 outline,
146 pane,
147 paragraph,
148 popUpButton,
149 pre,
150 presentational,
151 progressIndicator,
152 radioButton,
153 radioGroup,
154 region,
155 rootWebArea,
156 rowHeader,
157 row,
158 ruby,
159 ruler,
160 svgRoot,
161 scrollArea,
162 scrollBar,
163 seamlessWebArea,
164 search,
165 searchBox,
166 slider,
167 sliderThumb,
168 spinButtonPart,
169 spinButton,
170 splitter,
171 staticText,
172 status,
173 switch,
174 tabGroup,
175 tabList,
176 tabPanel,
177 tab,
178 tableHeaderContainer,
179 table,
180 textField,
181 time,
182 timer,
183 titleBar,
184 toggleButton,
185 toolbar,
186 treeGrid,
187 treeItem,
188 tree,
189 unknown,
190 tooltip,
191 video,
192 webArea,
193 webView,
194 window
195 };
196
197 // Describes characteristics of an $(ref:automation.AutomationNode).
198 enum StateType {
199 busy,
200 checked,
201 collapsed,
202 default,
203 disabled,
204 editable,
205 expanded,
206 focusable,
207 focused,
208 haspopup,
209 horizontal,
210 hovered,
211 invisible,
212 linked,
213 multiline,
214 multiselectable,
215 offscreen,
216 pressed,
217 protected,
218 readOnly,
219 required,
220 richlyEditable,
221 selectable,
222 selected,
223 vertical,
224 visited
225 };
226
227 // Possible changes to the automation tree. For any given atomic change 11 // Possible changes to the automation tree. For any given atomic change
228 // to the tree, each node that's added, removed, or changed, will appear 12 // to the tree, each node that's added, removed, or changed, will appear
229 // in exactly one TreeChange, with one of these types. 13 // in exactly one TreeChange, with one of these types.
230 // 14 //
231 // 15 //
232 // nodeCreated means that this node was added to the tree and its parent is 16 // nodeCreated means that this node was added to the tree and its parent is
233 // new as well, so it's just one node in a new subtree that was added. 17 // new as well, so it's just one node in a new subtree that was added.
234 enum TreeChangeType { 18 enum TreeChangeType {
235 /** 19 /**
236 * This node was added to the tree and its parent is new as well, 20 * This node was added to the tree and its parent is new as well,
(...skipping 26 matching lines...) Expand all
263 47
264 dictionary Rect { 48 dictionary Rect {
265 long left; 49 long left;
266 long top; 50 long top;
267 long width; 51 long width;
268 long height; 52 long height;
269 }; 53 };
270 54
271 // Arguments for the find() and findAll() methods. 55 // Arguments for the find() and findAll() methods.
272 [nocompile, noinline_doc] dictionary FindParams { 56 [nocompile, noinline_doc] dictionary FindParams {
273 RoleType? role; 57 DOMString? role;
274 58
275 // A map of $(ref:automation.StateType) to boolean, indicating for each 59 // A map of $(DOMString) to boolean, indicating for each
276 // state whether it should be set or not. For example: 60 // state whether it should be set or not. For example:
277 // <code>{ StateType.disabled: false }</code> would only match if 61 // disabled: false would only match if
278 // <code>StateType.disabled</code> was <em>not</em> present in the node's 62 // disabled: false was <em>not</em> present in the node's
279 // <code>state</code> object. 63 // <code>state</code> object.
280 object? state; 64 object? state;
281 65
282 // A map of attribute name to expected value, for example 66 // A map of attribute name to expected value, for example
283 // <code>{ name: 'Root directory', checkbox_mixed: true }</code>. 67 // <code>{ name: 'Root directory', checkbox_mixed: true }</code>.
284 // String attribute values may be specified as a regex, for example 68 // String attribute values may be specified as a regex, for example
285 // <code>{ name: /stralia$/</code> }</code>. 69 // <code>{ name: /stralia$/</code> }</code>.
286 // Unless specifying a regex, the expected value must be an exact match 70 // Unless specifying a regex, the expected value must be an exact match
287 // in type and value for the actual value. Thus, the type of expected value 71 // in type and value for the actual value. Thus, the type of expected value
288 // must be one of: 72 // must be one of:
(...skipping 20 matching lines...) Expand all
309 93
310 // Called when the result for a <code>query</code> is available. 94 // Called when the result for a <code>query</code> is available.
311 callback QueryCallback = void(AutomationNode node); 95 callback QueryCallback = void(AutomationNode node);
312 96
313 // An event in the Automation tree. 97 // An event in the Automation tree.
314 [nocompile, noinline_doc] dictionary AutomationEvent { 98 [nocompile, noinline_doc] dictionary AutomationEvent {
315 // The $(ref:automation.AutomationNode) to which the event was targeted. 99 // The $(ref:automation.AutomationNode) to which the event was targeted.
316 AutomationNode target; 100 AutomationNode target;
317 101
318 // The type of the event. 102 // The type of the event.
319 EventType type; 103 DOMString type;
320 104
321 // The source of this event. 105 // The source of this event.
322 DOMString eventFrom; 106 DOMString eventFrom;
323 107
324 long mouseX; 108 long mouseX;
325 long mouseY; 109 long mouseY;
326 110
327 // Stops this event from further processing except for any remaining 111 // Stops this event from further processing except for any remaining
328 // listeners on $(ref:AutomationEvent.target). 112 // listeners on $(ref:AutomationEvent.target).
329 static void stopPropagation(); 113 static void stopPropagation();
(...skipping 25 matching lines...) Expand all
355 139
356 // A single node in an Automation tree. 140 // A single node in an Automation tree.
357 [nocompile, noinline_doc] dictionary AutomationNode { 141 [nocompile, noinline_doc] dictionary AutomationNode {
358 // The root node of the tree containing this AutomationNode. 142 // The root node of the tree containing this AutomationNode.
359 AutomationNode root; 143 AutomationNode root;
360 144
361 // Whether this AutomationNode is a root node. 145 // Whether this AutomationNode is a root node.
362 boolean isRootNode; 146 boolean isRootNode;
363 147
364 // The role of this node. 148 // The role of this node.
365 automation.RoleType role; 149 DOMString role;
366 150
367 // The $(ref:automation.StateType)s describing this node. 151 // The states describing this node.
368 object state; 152 object state;
369 153
370 // The rendered location (as a bounding box) of this node in global 154 // The rendered location (as a bounding box) of this node in global
371 // screen coordinates. 155 // screen coordinates.
372 automation.Rect location; 156 automation.Rect location;
373 157
374 // Computes the bounding box of a subrange of this node in global screen 158 // Computes the bounding box of a subrange of this node in global screen
375 // coordinates. Returns the same as |location| if range information 159 // coordinates. Returns the same as |location| if range information
376 // is not available. The start and end indices are zero-based offsets 160 // is not available. The start and end indices are zero-based offsets
377 // into the node's "name" string attribute. 161 // into the node's "name" string attribute.
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 377
594 // Sets selection within a text field. 378 // Sets selection within a text field.
595 static void setSelection(long startIndex, long endIndex); 379 static void setSelection(long startIndex, long endIndex);
596 380
597 // Clears focus and sets this node as the starting point for the next 381 // Clears focus and sets this node as the starting point for the next
598 // time the user presses Tab or Shift+Tab. 382 // time the user presses Tab or Shift+Tab.
599 static void setSequentialFocusNavigationStartingPoint(); 383 static void setSequentialFocusNavigationStartingPoint();
600 384
601 // Adds a listener for the given event type and event phase. 385 // Adds a listener for the given event type and event phase.
602 static void addEventListener( 386 static void addEventListener(
603 EventType eventType, AutomationListener listener, boolean capture); 387 DOMString eventType, AutomationListener listener, boolean capture);
604 388
605 // Removes a listener for the given event type and event phase. 389 // Removes a listener for the given event type and event phase.
606 static void removeEventListener( 390 static void removeEventListener(
607 EventType eventType, AutomationListener listener, boolean capture); 391 DOMString eventType, AutomationListener listener, boolean capture);
608 392
609 // Gets the first node in this node's subtree which matches the given CSS 393 // Gets the first node in this node's subtree which matches the given CSS
610 // selector and is within the same DOM context. 394 // selector and is within the same DOM context.
611 // 395 //
612 // If this node doesn't correspond directly with an HTML node in the DOM, 396 // If this node doesn't correspond directly with an HTML node in the DOM,
613 // querySelector will be run on this node's nearest HTML node ancestor. Note 397 // querySelector will be run on this node's nearest HTML node ancestor. Note
614 // that this may result in the query returning a node which is not a 398 // that this may result in the query returning a node which is not a
615 // descendant of this node. 399 // descendant of this node.
616 // 400 //
617 // If the selector matches a node which doesn't directly correspond to an 401 // If the selector matches a node which doesn't directly correspond to an
(...skipping 21 matching lines...) Expand all
639 423
640 // Called with the <code>AutomationNode</code> that currently has focus. 424 // Called with the <code>AutomationNode</code> that currently has focus.
641 callback FocusCallback = void(AutomationNode focusedNode); 425 callback FocusCallback = void(AutomationNode focusedNode);
642 426
643 interface Functions { 427 interface Functions {
644 // Get the automation tree for the tab with the given tabId, or the current 428 // Get the automation tree for the tab with the given tabId, or the current
645 // tab if no tabID is given, enabling automation if necessary. Returns a 429 // tab if no tabID is given, enabling automation if necessary. Returns a
646 // tree with a placeholder root node; listen for the "loadComplete" event to 430 // tree with a placeholder root node; listen for the "loadComplete" event to
647 // get a notification that the tree has fully loaded (the previous root node 431 // get a notification that the tree has fully loaded (the previous root node
648 // reference will stop working at or before this point). 432 // reference will stop working at or before this point).
649 [nocompile] static void getTree(optional long tabId, RootCallback callback); 433 [nocompile] static void getTree(long tabId, RootCallback callback);
650 434
651 // Get the automation tree for the whole desktop which consists of all on 435 // Get the automation tree for the whole desktop which consists of all on
652 // screen views. Note this API is currently only supported on Chrome OS. 436 // screen views. Note this API is currently only supported on Chrome OS.
653 [nocompile] static void getDesktop(RootCallback callback); 437 [nocompile] static void getDesktop(RootCallback callback);
654 438
655 // Get the automation node that currently has focus, globally. Will return 439 // Get the automation node that currently has focus, globally. Will return
656 // null if none of the nodes in any loaded trees have focus. 440 // null if none of the nodes in any loaded trees have focus.
657 [nocompile] static void getFocus(FocusCallback callback); 441 [nocompile] static void getFocus(FocusCallback callback);
658 442
659 // Add a tree change observer. Tree change observers are static/global, they 443 // Add a tree change observer. Tree change observers are static/global, they
(...skipping 12 matching lines...) Expand all
672 // Everything in the tree between the two node/offset pairs gets included 456 // Everything in the tree between the two node/offset pairs gets included
673 // in the selection. The anchor is where the user started the selection, 457 // in the selection. The anchor is where the user started the selection,
674 // while the focus is the point at which the selection gets extended 458 // while the focus is the point at which the selection gets extended
675 // e.g. when dragging with a mouse or using the keyboard. For nodes with 459 // e.g. when dragging with a mouse or using the keyboard. For nodes with
676 // the role staticText, the offset gives the character offset within 460 // the role staticText, the offset gives the character offset within
677 // the value where the selection starts or ends, respectively. 461 // the value where the selection starts or ends, respectively.
678 [nocompile] static void setDocumentSelection( 462 [nocompile] static void setDocumentSelection(
679 SetDocumentSelectionParams params); 463 SetDocumentSelectionParams params);
680 }; 464 };
681 }; 465 };
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/tools/check_chromevox.py ('k') | third_party/closure_compiler/externs/OWNERS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698