OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 // This file was generated by: | 5 // This file was generated by: |
6 // tools/json_schema_compiler/compiler.py -g externs | 6 // tools/json_schema_compiler/compiler.py. |
7 // chrome/common/extensions/api/automation.idl | 7 // NOTE: The format of types has changed. 'FooType' is now |
8 // | 8 // 'chrome.automation.FooType'. |
9 // Further edits were applied by hand due to bugs / limitations in | 9 // Please run the closure compiler before committing changes. |
10 // json_schema_compiler. | |
11 // | |
12 // See https://chromium.googlesource.com/chromium/src/+/master/docs/closure_comp ilation.md | 10 // See https://chromium.googlesource.com/chromium/src/+/master/docs/closure_comp ilation.md |
13 | 11 |
14 /** @fileoverview Externs generated from namespace: automation */ | 12 /** @fileoverview Externs generated from namespace: automation */ |
15 | 13 |
16 /** | 14 /** |
17 * @const | 15 * @const |
18 */ | 16 */ |
19 chrome.automation = {}; | 17 chrome.automation = {}; |
20 | 18 |
21 /** | 19 /** |
22 * @enum {string} | 20 * @enum {string} |
21 * @see https://developer.chrome.com/extensions/automation#type-EventType | |
23 */ | 22 */ |
24 chrome.automation.EventType = { | 23 chrome.automation.EventType = { |
25 activedescendantchanged: '', | 24 ACTIVEDESCENDANTCHANGED: 'activedescendantchanged', |
26 alert: '', | 25 ALERT: 'alert', |
27 ariaAttributeChanged: '', | 26 ARIA_ATTRIBUTE_CHANGED: 'ariaAttributeChanged', |
28 autocorrectionOccured: '', | 27 AUTOCORRECTION_OCCURED: 'autocorrectionOccured', |
29 blur: '', | 28 BLUR: 'blur', |
30 checkedStateChanged: '', | 29 CHECKED_STATE_CHANGED: 'checkedStateChanged', |
31 childrenChanged: '', | 30 CHILDREN_CHANGED: 'childrenChanged', |
32 documentSelectionChanged: '', | 31 CLICKED: 'clicked', |
33 expandedChanged: '', | 32 DOCUMENT_SELECTION_CHANGED: 'documentSelectionChanged', |
34 focus: '', | 33 EXPANDED_CHANGED: 'expandedChanged', |
35 hide: '', | 34 FOCUS: 'focus', |
36 hover: '', | 35 IMAGE_FRAME_UPDATED: 'imageFrameUpdated', |
37 invalidStatusChanged: '', | 36 HIDE: 'hide', |
38 layoutComplete: '', | 37 HOVER: 'hover', |
39 liveRegionChanged: '', | 38 INVALID_STATUS_CHANGED: 'invalidStatusChanged', |
40 loadComplete: '', | 39 LAYOUT_COMPLETE: 'layoutComplete', |
41 locationChanged: '', | 40 LIVE_REGION_CREATED: 'liveRegionCreated', |
42 menuEnd: '', | 41 LIVE_REGION_CHANGED: 'liveRegionChanged', |
43 menuListItemSelected: '', | 42 LOAD_COMPLETE: 'loadComplete', |
44 menuListValueChanged: '', | 43 LOCATION_CHANGED: 'locationChanged', |
45 menuPopupEnd: '', | 44 MEDIA_STARTED_PLAYING: 'mediaStartedPlaying', |
46 menuPopupStart: '', | 45 MEDIA_STOPPED_PLAYING: 'mediaStoppedPlaying', |
47 menuStart: '', | 46 MENU_END: 'menuEnd', |
48 mouseCanceled: '', | 47 MENU_LIST_ITEM_SELECTED: 'menuListItemSelected', |
49 mouseDragged: '', | 48 MENU_LIST_VALUE_CHANGED: 'menuListValueChanged', |
50 mouseMoved: '', | 49 MENU_POPUP_END: 'menuPopupEnd', |
51 mousePressed: '', | 50 MENU_POPUP_START: 'menuPopupStart', |
52 mouseReleased: '', | 51 MENU_START: 'menuStart', |
53 rowCollapsed: '', | 52 MOUSE_CANCELED: 'mouseCanceled', |
54 rowCountChanged: '', | 53 MOUSE_DRAGGED: 'mouseDragged', |
55 rowExpanded: '', | 54 MOUSE_MOVED: 'mouseMoved', |
56 scrollPositionChanged: '', | 55 MOUSE_PRESSED: 'mousePressed', |
57 scrolledToAnchor: '', | 56 MOUSE_RELEASED: 'mouseReleased', |
58 selectedChildrenChanged: '', | 57 ROW_COLLAPSED: 'rowCollapsed', |
59 selection: '', | 58 ROW_COUNT_CHANGED: 'rowCountChanged', |
60 selectionAdd: '', | 59 ROW_EXPANDED: 'rowExpanded', |
61 selectionRemove: '', | 60 SCROLL_POSITION_CHANGED: 'scrollPositionChanged', |
62 show: '', | 61 SCROLLED_TO_ANCHOR: 'scrolledToAnchor', |
63 textChanged: '', | 62 SELECTED_CHILDREN_CHANGED: 'selectedChildrenChanged', |
64 textSelectionChanged: '', | 63 SELECTION: 'selection', |
65 treeChanged: '', | 64 SELECTION_ADD: 'selectionAdd', |
66 valueChanged: '', | 65 SELECTION_REMOVE: 'selectionRemove', |
67 }; | 66 SHOW: 'show', |
68 | 67 TEXT_CHANGED: 'textChanged', |
69 /** | 68 TEXT_SELECTION_CHANGED: 'textSelectionChanged', |
70 * @enum {string} | 69 TREE_CHANGED: 'treeChanged', |
70 VALUE_CHANGED: 'valueChanged', | |
71 }; | |
72 | |
73 /** | |
74 * @enum {string} | |
75 * @see https://developer.chrome.com/extensions/automation#type-RoleType | |
71 */ | 76 */ |
72 chrome.automation.RoleType = { | 77 chrome.automation.RoleType = { |
73 alertDialog: '', | 78 ABBR: 'abbr', |
74 alert: '', | 79 ALERT_DIALOG: 'alertDialog', |
75 annotation: '', | 80 ALERT: 'alert', |
76 application: '', | 81 ANNOTATION: 'annotation', |
77 article: '', | 82 APPLICATION: 'application', |
78 banner: '', | 83 ARTICLE: 'article', |
79 blockquote: '', | 84 AUDIO: 'audio', |
80 busyIndicator: '', | 85 BANNER: 'banner', |
81 button: '', | 86 BLOCKQUOTE: 'blockquote', |
82 buttonDropDown: '', | 87 BUSY_INDICATOR: 'busyIndicator', |
83 canvas: '', | 88 BUTTON: 'button', |
84 caption: '', | 89 BUTTON_DROP_DOWN: 'buttonDropDown', |
85 cell: '', | 90 CANVAS: 'canvas', |
86 checkBox: '', | 91 CAPTION: 'caption', |
87 client: '', | 92 CELL: 'cell', |
88 colorWell: '', | 93 CHECK_BOX: 'checkBox', |
89 columnHeader: '', | 94 CLIENT: 'client', |
90 column: '', | 95 COLOR_WELL: 'colorWell', |
91 comboBox: '', | 96 COLUMN_HEADER: 'columnHeader', |
92 complementary: '', | 97 COLUMN: 'column', |
93 contentInfo: '', | 98 COMBO_BOX: 'comboBox', |
94 date: '', | 99 COMPLEMENTARY: 'complementary', |
95 dateTime: '', | 100 CONTENT_INFO: 'contentInfo', |
96 definition: '', | 101 DATE: 'date', |
97 descriptionListDetail: '', | 102 DATE_TIME: 'dateTime', |
98 descriptionList: '', | 103 DEFINITION: 'definition', |
99 descriptionListTerm: '', | 104 DESCRIPTION_LIST_DETAIL: 'descriptionListDetail', |
100 desktop: '', | 105 DESCRIPTION_LIST: 'descriptionList', |
101 details: '', | 106 DESCRIPTION_LIST_TERM: 'descriptionListTerm', |
102 dialog: '', | 107 DESKTOP: 'desktop', |
103 directory: '', | 108 DETAILS: 'details', |
104 disclosureTriangle: '', | 109 DIALOG: 'dialog', |
105 div: '', | 110 DIRECTORY: 'directory', |
106 document: '', | 111 DISCLOSURE_TRIANGLE: 'disclosureTriangle', |
107 embeddedObject: '', | 112 DIV: 'div', |
108 figcaption: '', | 113 DOCUMENT: 'document', |
109 figure: '', | 114 EMBEDDED_OBJECT: 'embeddedObject', |
110 footer: '', | 115 FEED: 'feed', |
111 form: '', | 116 FIGCAPTION: 'figcaption', |
112 grid: '', | 117 FIGURE: 'figure', |
113 group: '', | 118 FOOTER: 'footer', |
114 heading: '', | 119 FORM: 'form', |
115 iframe: '', | 120 GRID: 'grid', |
116 iframePresentational: '', | 121 GROUP: 'group', |
117 ignored: '', | 122 HEADING: 'heading', |
118 imageMapLink: '', | 123 IFRAME: 'iframe', |
119 imageMap: '', | 124 IFRAME_PRESENTATIONAL: 'iframePresentational', |
120 image: '', | 125 IGNORED: 'ignored', |
121 inlineTextBox: '', | 126 IMAGE_MAP_LINK: 'imageMapLink', |
122 labelText: '', | 127 IMAGE_MAP: 'imageMap', |
123 legend: '', | 128 IMAGE: 'image', |
124 lineBreak: '', | 129 INLINE_TEXT_BOX: 'inlineTextBox', |
125 link: '', | 130 INPUT_TIME: 'inputTime', |
126 listBoxOption: '', | 131 LABEL_TEXT: 'labelText', |
127 listBox: '', | 132 LEGEND: 'legend', |
128 listItem: '', | 133 LINE_BREAK: 'lineBreak', |
129 listMarker: '', | 134 LINK: 'link', |
130 list: '', | 135 LIST_BOX_OPTION: 'listBoxOption', |
131 locationBar: '', | 136 LIST_BOX: 'listBox', |
132 log: '', | 137 LIST_ITEM: 'listItem', |
133 main: '', | 138 LIST_MARKER: 'listMarker', |
134 marquee: '', | 139 LIST: 'list', |
135 math: '', | 140 LOCATION_BAR: 'locationBar', |
136 menuBar: '', | 141 LOG: 'log', |
137 menuButton: '', | 142 MAIN: 'main', |
138 menuItem: '', | 143 MARK: 'mark', |
139 menuItemCheckBox: '', | 144 MARQUEE: 'marquee', |
140 menuItemRadio: '', | 145 MATH: 'math', |
141 menuListOption: '', | 146 MENU_BAR: 'menuBar', |
142 menuListPopup: '', | 147 MENU_BUTTON: 'menuButton', |
143 menu: '', | 148 MENU_ITEM: 'menuItem', |
144 meter: '', | 149 MENU_ITEM_CHECK_BOX: 'menuItemCheckBox', |
145 navigation: '', | 150 MENU_ITEM_RADIO: 'menuItemRadio', |
146 note: '', | 151 MENU_LIST_OPTION: 'menuListOption', |
147 outline: '', | 152 MENU_LIST_POPUP: 'menuListPopup', |
148 pane: '', | 153 MENU: 'menu', |
149 paragraph: '', | 154 METER: 'meter', |
150 popUpButton: '', | 155 NAVIGATION: 'navigation', |
151 pre: '', | 156 NOTE: 'note', |
152 presentational: '', | 157 OUTLINE: 'outline', |
153 progressIndicator: '', | 158 PANE: 'pane', |
154 radioButton: '', | 159 PARAGRAPH: 'paragraph', |
155 radioGroup: '', | 160 POP_UP_BUTTON: 'popUpButton', |
156 region: '', | 161 PRE: 'pre', |
157 rootWebArea: '', | 162 PRESENTATIONAL: 'presentational', |
158 rowHeader: '', | 163 PROGRESS_INDICATOR: 'progressIndicator', |
159 row: '', | 164 RADIO_BUTTON: 'radioButton', |
160 ruby: '', | 165 RADIO_GROUP: 'radioGroup', |
161 ruler: '', | 166 REGION: 'region', |
162 svgRoot: '', | 167 ROOT_WEB_AREA: 'rootWebArea', |
163 scrollArea: '', | 168 ROW_HEADER: 'rowHeader', |
164 scrollBar: '', | 169 ROW: 'row', |
165 seamlessWebArea: '', | 170 RUBY: 'ruby', |
166 search: '', | 171 RULER: 'ruler', |
167 searchBox: '', | 172 SVG_ROOT: 'svgRoot', |
168 slider: '', | 173 SCROLL_AREA: 'scrollArea', |
169 sliderThumb: '', | 174 SCROLL_BAR: 'scrollBar', |
170 spinButtonPart: '', | 175 SEAMLESS_WEB_AREA: 'seamlessWebArea', |
171 spinButton: '', | 176 SEARCH: 'search', |
172 splitter: '', | 177 SEARCH_BOX: 'searchBox', |
173 staticText: '', | 178 SLIDER: 'slider', |
174 status: '', | 179 SLIDER_THUMB: 'sliderThumb', |
175 switch: '', | 180 SPIN_BUTTON_PART: 'spinButtonPart', |
176 tabGroup: '', | 181 SPIN_BUTTON: 'spinButton', |
177 tabList: '', | 182 SPLITTER: 'splitter', |
178 tabPanel: '', | 183 STATIC_TEXT: 'staticText', |
179 tab: '', | 184 STATUS: 'status', |
180 tableHeaderContainer: '', | 185 SWITCH: 'switch', |
181 table: '', | 186 TAB_GROUP: 'tabGroup', |
182 textField: '', | 187 TAB_LIST: 'tabList', |
183 time: '', | 188 TAB_PANEL: 'tabPanel', |
184 timer: '', | 189 TAB: 'tab', |
185 titleBar: '', | 190 TABLE_HEADER_CONTAINER: 'tableHeaderContainer', |
186 toggleButton: '', | 191 TABLE: 'table', |
187 toolbar: '', | 192 TERM: 'term', |
188 treeGrid: '', | 193 TEXT_FIELD: 'textField', |
189 treeItem: '', | 194 TIME: 'time', |
190 tree: '', | 195 TIMER: 'timer', |
191 unknown: '', | 196 TITLE_BAR: 'titleBar', |
192 tooltip: '', | 197 TOGGLE_BUTTON: 'toggleButton', |
193 webArea: '', | 198 TOOLBAR: 'toolbar', |
194 webView: '', | 199 TREE_GRID: 'treeGrid', |
195 window: '', | 200 TREE_ITEM: 'treeItem', |
196 }; | 201 TREE: 'tree', |
197 | 202 UNKNOWN: 'unknown', |
198 /** | 203 TOOLTIP: 'tooltip', |
199 * @enum {string} | 204 VIDEO: 'video', |
205 WEB_AREA: 'webArea', | |
206 WEB_VIEW: 'webView', | |
207 WINDOW: 'window', | |
208 }; | |
209 | |
210 /** | |
211 * @enum {string} | |
212 * @see https://developer.chrome.com/extensions/automation#type-StateType | |
200 */ | 213 */ |
201 chrome.automation.StateType = { | 214 chrome.automation.StateType = { |
202 busy: '', | 215 BUSY: 'busy', |
203 checked: '', | 216 CHECKED: 'checked', |
204 collapsed: '', | 217 COLLAPSED: 'collapsed', |
205 default: '', | 218 DEFAULT: 'default', |
206 disabled: '', | 219 DISABLED: 'disabled', |
207 editable: '', | 220 EDITABLE: 'editable', |
208 expanded: '', | 221 EXPANDED: 'expanded', |
209 focusable: '', | 222 FOCUSABLE: 'focusable', |
210 focused: '', | 223 FOCUSED: 'focused', |
211 haspopup: '', | 224 HASPOPUP: 'haspopup', |
212 horizontal: '', | 225 HORIZONTAL: 'horizontal', |
213 hovered: '', | 226 HOVERED: 'hovered', |
214 indeterminate: '', | 227 INVISIBLE: 'invisible', |
215 invisible: '', | 228 LINKED: 'linked', |
216 linked: '', | 229 MULTILINE: 'multiline', |
217 multiline: '', | 230 MULTISELECTABLE: 'multiselectable', |
218 multiselectable: '', | 231 OFFSCREEN: 'offscreen', |
219 offscreen: '', | 232 PRESSED: 'pressed', |
220 pressed: '', | 233 PROTECTED: 'protected', |
221 protected: '', | 234 READ_ONLY: 'readOnly', |
222 readOnly: '', | 235 REQUIRED: 'required', |
223 required: '', | 236 RICHLY_EDITABLE: 'richlyEditable', |
224 richlyEditable: '', | 237 SELECTABLE: 'selectable', |
225 selectable: '', | 238 SELECTED: 'selected', |
226 selected: '', | 239 VERTICAL: 'vertical', |
227 vertical: '', | 240 VISITED: 'visited', |
228 visited: '', | 241 }; |
229 }; | 242 |
230 | 243 /** |
231 /** | 244 * @enum {string} |
232 * @enum {number} | 245 * @see https://developer.chrome.com/extensions/automation#type-TreeChangeType |
233 */ | |
234 chrome.automation.NameFromType = { | |
David Tseng
2017/01/10 23:24:32
What happened to this enum? I don't see it below.
dmazzoni
2017/01/11 22:20:42
Done.
| |
235 0: '', | |
236 1: 'uninitialized', | |
237 2: 'attribute', | |
238 3: 'contents', | |
239 4: 'placeholder', | |
240 5: 'relatedElement', | |
241 6: 'value' | |
242 }; | |
243 | |
244 /** | |
245 * @enum {number} | |
246 */ | |
247 chrome.automation.DescriptionFromType = { | |
248 0: '', | |
249 1: 'uninitialized', | |
250 2: 'attribute', | |
251 3: 'contents', | |
252 4: 'placeholder', | |
253 5: 'relatedElement' | |
254 }; | |
255 | |
256 /** | |
257 * @enum {string} | |
258 */ | 246 */ |
259 chrome.automation.TreeChangeType = { | 247 chrome.automation.TreeChangeType = { |
260 nodeCreated: 'nodeCreated', | 248 NODE_CREATED: 'nodeCreated', |
261 subtreeCreated: 'subtreeCreated', | 249 SUBTREE_CREATED: 'subtreeCreated', |
262 nodeChanged: 'nodeChanged', | 250 NODE_CHANGED: 'nodeChanged', |
263 nodeRemoved: 'nodeRemoved', | 251 TEXT_CHANGED: 'textChanged', |
264 }; | 252 NODE_REMOVED: 'nodeRemoved', |
253 }; | |
254 | |
255 /** | |
256 * @see https://developer.chrome.com/extensions/automation#type-NameFromType | |
257 */ | |
258 chrome.automation.NameFromType; | |
265 | 259 |
266 /** | 260 /** |
267 * @typedef {{ | 261 * @typedef {{ |
268 * left: number, | 262 * left: number, |
269 * top: number, | 263 * top: number, |
270 * width: number, | 264 * width: number, |
271 * height: number | 265 * height: number |
272 * }} | 266 * }} |
267 * @see https://developer.chrome.com/extensions/automation#type-Rect | |
273 */ | 268 */ |
274 chrome.automation.Rect; | 269 chrome.automation.Rect; |
275 | 270 |
276 /** | 271 /** |
277 * @typedef {{ | 272 * @typedef {{ |
278 * role: (!chrome.automation.RoleType|undefined), | 273 * role: (!chrome.automation.RoleType|undefined), |
279 * state: (Object|undefined), | 274 * state: (Object|undefined), |
280 * attributes: (Object|undefined) | 275 * attributes: (Object|undefined) |
281 * }} | 276 * }} |
277 * @see https://developer.chrome.com/extensions/automation#type-FindParams | |
282 */ | 278 */ |
283 chrome.automation.FindParams; | 279 chrome.automation.FindParams; |
284 | 280 |
285 /** | 281 /** |
282 * @typedef {{ | |
283 * anchorObject: Object, | |
284 * anchorOffset: number, | |
285 * focusObject: Object, | |
286 * focusOffset: number | |
287 * }} | |
288 * @see https://developer.chrome.com/extensions/automation#type-SetDocumentSelec tionParams | |
289 */ | |
290 chrome.automation.SetDocumentSelectionParams; | |
291 | |
292 /** | |
286 * @constructor | 293 * @constructor |
David Tseng
2017/01/10 23:24:33
Did you try making this private?
dmazzoni
2017/01/11 22:20:42
Done, assuming that all classes generated by js_ex
| |
287 * @param {chrome.automation.EventType} type | 294 * @see https://developer.chrome.com/extensions/automation#type-AutomationEvent |
288 * @param {chrome.automation.AutomationNode} node | 295 */ |
289 * @param {string} eventFrom | 296 chrome.automation.AutomationEvent = function() {}; |
290 */ | 297 |
291 chrome.automation.AutomationEvent = function(type, node, eventFrom) {}; | 298 /** |
292 | 299 * The $(ref:automation.AutomationNode) to which the event was targeted. |
293 /** | 300 * @type {!chrome.automation.AutomationNode} |
294 * @type {!chrome.automation.AutomationNode} | 301 * @see https://developer.chrome.com/extensions/automation#type-target |
295 */ | 302 */ |
296 chrome.automation.AutomationEvent.prototype.target; | 303 chrome.automation.AutomationEvent.prototype.target; |
297 | 304 |
298 /** | 305 /** |
306 * The type of the event. | |
299 * @type {!chrome.automation.EventType} | 307 * @type {!chrome.automation.EventType} |
David Tseng
2017/01/10 23:24:33
Is this actually valid (i.e. !string is just strin
dmazzoni
2017/01/11 22:20:42
It's redundant but not illegal. The JSON schema co
| |
308 * @see https://developer.chrome.com/extensions/automation#type-type | |
300 */ | 309 */ |
301 chrome.automation.AutomationEvent.prototype.type; | 310 chrome.automation.AutomationEvent.prototype.type; |
302 | 311 |
303 /** | 312 /** |
304 * @type {string} | 313 * The source of this event. |
314 * @type {string} | |
315 * @see https://developer.chrome.com/extensions/automation#type-eventFrom | |
305 */ | 316 */ |
306 chrome.automation.AutomationEvent.prototype.eventFrom; | 317 chrome.automation.AutomationEvent.prototype.eventFrom; |
307 | 318 |
308 /** | 319 /** |
309 * @type {number} | 320 * @type {number} |
321 * @see https://developer.chrome.com/extensions/automation#type-mouseX | |
310 */ | 322 */ |
311 chrome.automation.AutomationEvent.prototype.mouseX; | 323 chrome.automation.AutomationEvent.prototype.mouseX; |
312 | 324 |
313 /** | 325 /** |
314 * @type {number} | 326 * @type {number} |
327 * @see https://developer.chrome.com/extensions/automation#type-mouseY | |
315 */ | 328 */ |
316 chrome.automation.AutomationEvent.prototype.mouseY; | 329 chrome.automation.AutomationEvent.prototype.mouseY; |
317 | 330 |
331 /** | |
332 * Stops this event from further processing except for any remaining listeners | |
333 * on $(ref:AutomationEvent.target). | |
334 * @see https://developer.chrome.com/extensions/automation#method-stopPropagatio n | |
335 */ | |
318 chrome.automation.AutomationEvent.prototype.stopPropagation = function() {}; | 336 chrome.automation.AutomationEvent.prototype.stopPropagation = function() {}; |
319 | 337 |
338 | |
320 /** | 339 /** |
321 * @typedef {{ | 340 * @typedef {{ |
322 * target: chrome.automation.AutomationNode, | 341 * target: !chrome.automation.AutomationNode, |
323 * type: !chrome.automation.TreeChangeType | 342 * type: !chrome.automation.TreeChangeType |
324 * }} | 343 * }} |
344 * @see https://developer.chrome.com/extensions/automation#type-TreeChange | |
325 */ | 345 */ |
326 chrome.automation.TreeChange; | 346 chrome.automation.TreeChange; |
327 | 347 |
328 /** | 348 /** |
349 * @enum {string} | |
350 * @see https://developer.chrome.com/extensions/automation#type-TreeChangeObserv erFilter | |
351 */ | |
352 chrome.automation.TreeChangeObserverFilter = { | |
353 NO_TREE_CHANGES: 'noTreeChanges', | |
354 LIVE_REGION_TREE_CHANGES: 'liveRegionTreeChanges', | |
355 TEXT_MARKER_CHANGES: 'textMarkerChanges', | |
356 ALL_TREE_CHANGES: 'allTreeChanges', | |
357 }; | |
358 | |
359 /** | |
329 * @constructor | 360 * @constructor |
361 * @see https://developer.chrome.com/extensions/automation#type-AutomationNode | |
330 */ | 362 */ |
331 chrome.automation.AutomationNode = function() {}; | 363 chrome.automation.AutomationNode = function() {}; |
332 | 364 |
333 | 365 /** |
334 /** | 366 * The root node of the tree containing this AutomationNode. |
367 * @type {!chrome.automation.AutomationNode} | |
David Tseng
2017/01/10 23:24:33
This is nullable.
dmazzoni
2017/01/11 22:20:42
Done.
| |
368 * @see https://developer.chrome.com/extensions/automation#type-root | |
369 */ | |
370 chrome.automation.AutomationNode.prototype.root; | |
371 | |
372 /** | |
373 * Whether this AutomationNode is a root node. | |
374 * @type {boolean} | |
375 * @see https://developer.chrome.com/extensions/automation#type-isRootNode | |
376 */ | |
377 chrome.automation.AutomationNode.prototype.isRootNode; | |
378 | |
379 /** | |
380 * The role of this node. | |
381 * @type {!chrome.automation.RoleType} | |
David Tseng
2017/01/10 23:24:32
Ditto.
dmazzoni
2017/01/11 22:20:42
Done.
| |
382 * @see https://developer.chrome.com/extensions/automation#type-role | |
383 */ | |
384 chrome.automation.AutomationNode.prototype.role; | |
385 | |
386 /** | |
387 * The $(ref:automation.StateType)s describing this node. | |
388 * @see https://developer.chrome.com/extensions/automation#type-state | |
389 */ | |
390 chrome.automation.AutomationNode.prototype.state; | |
David Tseng
2017/01/10 23:24:32
This had a decent annotation before
Object<chrome.
dmazzoni
2017/01/11 22:20:42
I spent several hours trying to do this in a clean
| |
391 | |
392 /** | |
393 * The rendered location (as a bounding box) of this node in global screen coord inates. | |
394 * @type {!chrome.automation.Rect} | |
395 * @see https://developer.chrome.com/extensions/automation#type-location | |
396 */ | |
397 chrome.automation.AutomationNode.prototype.location; | |
398 | |
399 /** | |
400 * Computes the bounding box of a subrange of this node in global screen | |
401 * coordinates. Returns the same as |location| if range information is not | |
402 * available. The start and end indices are zero-based offsets into the node's | |
403 * "name" string attribute. | |
404 * @param {number} startIndex | |
405 * @param {number} endIndex | |
406 * @return {!chrome.automation.Rect} | |
407 * @see https://developer.chrome.com/extensions/automation#method-boundsForRange | |
408 */ | |
409 chrome.automation.AutomationNode.prototype.boundsForRange = function(startIndex, endIndex) {}; | |
410 | |
411 /** | |
412 * The purpose of the node, other than the role, if any. | |
413 * @type {string} | |
414 * @see https://developer.chrome.com/extensions/automation#type-description | |
415 */ | |
416 chrome.automation.AutomationNode.prototype.description; | |
417 | |
418 /** | |
419 * The help text for the node, if any. | |
420 * @type {string} | |
421 * @see https://developer.chrome.com/extensions/automation#type-help | |
422 */ | |
423 chrome.automation.AutomationNode.prototype.help; | |
424 | |
425 /** | |
426 * The accessible name for this node, via the <a href="http://www.w3.org/TR/wai- aria/roles#namecalculation"> Accessible Name Calculation</a> process. | |
427 * @type {string} | |
428 * @see https://developer.chrome.com/extensions/automation#type-name | |
429 */ | |
430 chrome.automation.AutomationNode.prototype.name; | |
431 | |
432 /** | |
433 * The source of the name. Use NameFromType to convert this to a string. | |
434 * @type {number} | |
David Tseng
2017/01/10 23:24:33
Let's just make this a string and do the conversio
dmazzoni
2017/01/11 22:20:42
Done.
| |
435 * @see https://developer.chrome.com/extensions/automation#type-nameFrom | |
436 */ | |
437 chrome.automation.AutomationNode.prototype.nameFrom; | |
438 | |
439 /** | |
440 * The value for this node: for example the <code>value</code> attribute of an < code><input> element. | |
441 * @type {string} | |
442 * @see https://developer.chrome.com/extensions/automation#type-value | |
443 */ | |
444 chrome.automation.AutomationNode.prototype.value; | |
445 | |
446 /** | |
447 * The HTML tag for this element, if this node is an HTML element. | |
448 * @type {string} | |
449 * @see https://developer.chrome.com/extensions/automation#type-htmlTag | |
450 */ | |
451 chrome.automation.AutomationNode.prototype.htmlTag; | |
452 | |
453 /** | |
454 * The level of a heading or tree item. | |
455 * @type {number} | |
456 * @see https://developer.chrome.com/extensions/automation#type-hierarchicalLeve l | |
457 */ | |
458 chrome.automation.AutomationNode.prototype.hierarchicalLevel; | |
459 | |
460 /** | |
461 * The start and end index of each word in an inline text box. | |
462 * @type {!Array<number>} | |
David Tseng
2017/01/10 23:24:32
Nullable. Please make a ful pass between these aut
dmazzoni
2017/01/11 22:20:42
Done.
| |
463 * @see https://developer.chrome.com/extensions/automation#type-wordStarts | |
464 */ | |
465 chrome.automation.AutomationNode.prototype.wordStarts; | |
466 | |
467 /** | |
468 * @type {!Array<number>} | |
469 * @see https://developer.chrome.com/extensions/automation#type-wordEnds | |
470 */ | |
471 chrome.automation.AutomationNode.prototype.wordEnds; | |
472 | |
473 /** | |
474 * The nodes, if any, which this node is specified to control via <a href="http: //www.w3.org/TR/wai-aria/states_and_properties#aria-controls"> <code>aria-contro ls</code></a>. | |
475 * @type {!Array<!chrome.automation.AutomationNode>} | |
476 * @see https://developer.chrome.com/extensions/automation#type-controls | |
477 */ | |
478 chrome.automation.AutomationNode.prototype.controls; | |
479 | |
480 /** | |
481 * The nodes, if any, which form a description for this node. | |
482 * @type {!Array<!chrome.automation.AutomationNode>} | |
483 * @see https://developer.chrome.com/extensions/automation#type-describedBy | |
484 */ | |
485 chrome.automation.AutomationNode.prototype.describedBy; | |
486 | |
487 /** | |
488 * The nodes, if any, which may optionally be navigated to after this one. See < a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-flowto"> <code> aria-flowto</code></a>. | |
489 * @type {!Array<!chrome.automation.AutomationNode>} | |
490 * @see https://developer.chrome.com/extensions/automation#type-flowTo | |
491 */ | |
492 chrome.automation.AutomationNode.prototype.flowTo; | |
493 | |
494 /** | |
495 * The nodes, if any, which form a label for this element. Generally, the text f rom these elements will also be exposed as the element's accessible name, via th e $(ref:automation.AutomationNode.name) attribute. | |
496 * @type {!Array<!chrome.automation.AutomationNode>} | |
497 * @see https://developer.chrome.com/extensions/automation#type-labelledBy | |
498 */ | |
499 chrome.automation.AutomationNode.prototype.labelledBy; | |
500 | |
501 /** | |
502 * The node referred to by <code>aria-activedescendant</code>, where applicable | |
503 * @type {!chrome.automation.AutomationNode} | |
504 * @see https://developer.chrome.com/extensions/automation#type-activeDescendant | |
505 */ | |
506 chrome.automation.AutomationNode.prototype.activeDescendant; | |
David Tseng
2017/01/10 23:24:33
Most, if not all of these, are nullable.
dmazzoni
2017/01/11 22:20:42
Done.
| |
507 | |
508 /** | |
509 * The URL that this link will navigate to. | |
510 * @type {string} | |
511 * @see https://developer.chrome.com/extensions/automation#type-url | |
512 */ | |
513 chrome.automation.AutomationNode.prototype.url; | |
514 | |
515 /** | |
516 * The URL of this document. | |
517 * @type {string} | |
518 * @see https://developer.chrome.com/extensions/automation#type-docUrl | |
519 */ | |
520 chrome.automation.AutomationNode.prototype.docUrl; | |
521 | |
522 /** | |
523 * The title of this document. | |
524 * @type {string} | |
525 * @see https://developer.chrome.com/extensions/automation#type-docTitle | |
526 */ | |
527 chrome.automation.AutomationNode.prototype.docTitle; | |
528 | |
529 /** | |
530 * Whether this document has finished loading. | |
531 * @type {boolean} | |
532 * @see https://developer.chrome.com/extensions/automation#type-docLoaded | |
533 */ | |
534 chrome.automation.AutomationNode.prototype.docLoaded; | |
535 | |
536 /** | |
537 * The proportion (out of 1.0) that this doc has completed loading. | |
538 * @type {number} | |
539 * @see https://developer.chrome.com/extensions/automation#type-docLoadingProgre ss | |
540 */ | |
541 chrome.automation.AutomationNode.prototype.docLoadingProgress; | |
542 | |
543 /** | |
544 * Scrollable container attributes. | |
545 * @type {number} | |
546 * @see https://developer.chrome.com/extensions/automation#type-scrollX | |
547 */ | |
548 chrome.automation.AutomationNode.prototype.scrollX; | |
549 | |
550 /** | |
551 * @type {number} | |
552 * @see https://developer.chrome.com/extensions/automation#type-scrollXMin | |
553 */ | |
554 chrome.automation.AutomationNode.prototype.scrollXMin; | |
555 | |
556 /** | |
557 * @type {number} | |
558 * @see https://developer.chrome.com/extensions/automation#type-scrollXMax | |
559 */ | |
560 chrome.automation.AutomationNode.prototype.scrollXMax; | |
561 | |
562 /** | |
563 * @type {number} | |
564 * @see https://developer.chrome.com/extensions/automation#type-scrollY | |
565 */ | |
566 chrome.automation.AutomationNode.prototype.scrollY; | |
567 | |
568 /** | |
569 * @type {number} | |
570 * @see https://developer.chrome.com/extensions/automation#type-scrollYMin | |
571 */ | |
572 chrome.automation.AutomationNode.prototype.scrollYMin; | |
573 | |
574 /** | |
575 * @type {number} | |
576 * @see https://developer.chrome.com/extensions/automation#type-scrollYMax | |
577 */ | |
578 chrome.automation.AutomationNode.prototype.scrollYMax; | |
579 | |
580 /** | |
581 * The character index of the start of the selection within this editable text e lement; -1 if no selection. | |
582 * @type {number} | |
583 * @see https://developer.chrome.com/extensions/automation#type-textSelStart | |
584 */ | |
585 chrome.automation.AutomationNode.prototype.textSelStart; | |
586 | |
587 /** | |
588 * The character index of the end of the selection within this editable text ele ment; -1 if no selection. | |
589 * @type {number} | |
590 * @see https://developer.chrome.com/extensions/automation#type-textSelEnd | |
591 */ | |
592 chrome.automation.AutomationNode.prototype.textSelEnd; | |
593 | |
594 /** | |
595 * The input type, like email or number. | |
596 * @type {string} | |
597 * @see https://developer.chrome.com/extensions/automation#type-textInputType | |
598 */ | |
599 chrome.automation.AutomationNode.prototype.textInputType; | |
600 | |
601 /** | |
602 * An array of indexes of the start position of each text marker. | |
David Tseng
2017/01/10 23:24:33
This property has no annotation?
dmazzoni
2017/01/11 22:20:42
Done.
| |
603 * @see https://developer.chrome.com/extensions/automation#type-markerStarts | |
604 */ | |
605 chrome.automation.AutomationNode.prototype.markerStarts; | |
606 | |
607 /** | |
608 * An array of indexes of the end position of each text marker. | |
609 * @see https://developer.chrome.com/extensions/automation#type-markerEnds | |
610 */ | |
611 chrome.automation.AutomationNode.prototype.markerEnds; | |
612 | |
613 /** | |
614 * An array of numerical types indicating the type of each text marker, such as a spelling error. | |
615 * @see https://developer.chrome.com/extensions/automation#type-markerTypes | |
616 */ | |
617 chrome.automation.AutomationNode.prototype.markerTypes; | |
618 | |
619 /** | |
620 * The anchor node of the tree selection, if any. | |
621 * @type {!chrome.automation.AutomationNode} | |
622 * @see https://developer.chrome.com/extensions/automation#type-anchorObject | |
623 */ | |
624 chrome.automation.AutomationNode.prototype.anchorObject; | |
David Tseng
2017/01/10 23:24:33
This can only ever be present on an AutomationRoot
dmazzoni
2017/01/11 22:20:42
Done.
| |
625 | |
626 /** | |
627 * The anchor offset of the tree selection, if any. | |
628 * @type {number} | |
David Tseng
2017/01/10 23:24:32
?number
dmazzoni
2017/01/11 22:20:42
Done.
| |
629 * @see https://developer.chrome.com/extensions/automation#type-anchorOffset | |
630 */ | |
631 chrome.automation.AutomationNode.prototype.anchorOffset; | |
632 | |
633 /** | |
634 * The focus node of the tree selection, if any. | |
635 * @type {!chrome.automation.AutomationNode} | |
636 * @see https://developer.chrome.com/extensions/automation#type-focusObject | |
637 */ | |
638 chrome.automation.AutomationNode.prototype.focusObject; | |
639 | |
640 /** | |
641 * The focus offset of the tree selection, if any. | |
642 * @type {number} | |
643 * @see https://developer.chrome.com/extensions/automation#type-focusOffset | |
644 */ | |
645 chrome.automation.AutomationNode.prototype.focusOffset; | |
646 | |
647 /** | |
648 * The current value for this range. | |
649 * @type {number} | |
650 * @see https://developer.chrome.com/extensions/automation#type-valueForRange | |
651 */ | |
652 chrome.automation.AutomationNode.prototype.valueForRange; | |
653 | |
654 /** | |
655 * The minimum possible value for this range. | |
656 * @type {number} | |
657 * @see https://developer.chrome.com/extensions/automation#type-minValueForRange | |
658 */ | |
659 chrome.automation.AutomationNode.prototype.minValueForRange; | |
660 | |
661 /** | |
662 * The maximum possible value for this range. | |
663 * @type {number} | |
664 * @see https://developer.chrome.com/extensions/automation#type-maxValueForRange | |
665 */ | |
666 chrome.automation.AutomationNode.prototype.maxValueForRange; | |
667 | |
668 /** | |
669 * The number of rows in this table. | |
670 * @type {number} | |
671 * @see https://developer.chrome.com/extensions/automation#type-tableRowCount | |
672 */ | |
673 chrome.automation.AutomationNode.prototype.tableRowCount; | |
674 | |
675 /** | |
676 * The number of columns in this table. | |
677 * @type {number} | |
678 * @see https://developer.chrome.com/extensions/automation#type-tableColumnCount | |
679 */ | |
680 chrome.automation.AutomationNode.prototype.tableColumnCount; | |
681 | |
682 /** | |
683 * The zero-based index of the column that this cell is in. | |
684 * @type {number} | |
685 * @see https://developer.chrome.com/extensions/automation#type-tableCellColumnI ndex | |
686 */ | |
687 chrome.automation.AutomationNode.prototype.tableCellColumnIndex; | |
688 | |
689 /** | |
690 * The number of columns that this cell spans (default is 1). | |
691 * @type {number} | |
692 * @see https://developer.chrome.com/extensions/automation#type-tableCellColumnS pan | |
693 */ | |
694 chrome.automation.AutomationNode.prototype.tableCellColumnSpan; | |
695 | |
696 /** | |
697 * The zero-based index of the row that this cell is in. | |
698 * @type {number} | |
699 * @see https://developer.chrome.com/extensions/automation#type-tableCellRowInde x | |
700 */ | |
701 chrome.automation.AutomationNode.prototype.tableCellRowIndex; | |
702 | |
703 /** | |
704 * The number of rows that this cell spans (default is 1). | |
705 * @type {number} | |
706 * @see https://developer.chrome.com/extensions/automation#type-tableCellRowSpan | |
707 */ | |
708 chrome.automation.AutomationNode.prototype.tableCellRowSpan; | |
709 | |
710 /** | |
711 * The type of region if this is the root of a live region. Possible values are 'polite' and 'assertive'. | |
712 * @type {string} | |
713 * @see https://developer.chrome.com/extensions/automation#type-liveStatus | |
714 */ | |
715 chrome.automation.AutomationNode.prototype.liveStatus; | |
David Tseng
2017/01/10 23:24:33
All of the above are nullable.
dmazzoni
2017/01/11 22:20:42
Done.
| |
716 | |
717 /** | |
718 * The value of aria-relevant for a live region. | |
719 * @type {string} | |
720 * @see https://developer.chrome.com/extensions/automation#type-liveRelevant | |
721 */ | |
722 chrome.automation.AutomationNode.prototype.liveRelevant; | |
723 | |
724 /** | |
725 * The value of aria-atomic for a live region. | |
726 * @type {boolean} | |
727 * @see https://developer.chrome.com/extensions/automation#type-liveAtomic | |
728 */ | |
729 chrome.automation.AutomationNode.prototype.liveAtomic; | |
730 | |
731 /** | |
732 * The value of aria-busy for a live region. | |
733 * @type {boolean} | |
734 * @see https://developer.chrome.com/extensions/automation#type-liveBusy | |
735 */ | |
736 chrome.automation.AutomationNode.prototype.liveBusy; | |
737 | |
738 /** | |
739 * The type of live region if this node is inside a live region. | |
740 * @type {string} | |
741 * @see https://developer.chrome.com/extensions/automation#type-containerLiveSta tus | |
742 */ | |
743 chrome.automation.AutomationNode.prototype.containerLiveStatus; | |
744 | |
745 /** | |
746 * The value of aria-relevant if this node is inside a live region. | |
747 * @type {string} | |
748 * @see https://developer.chrome.com/extensions/automation#type-containerLiveRel evant | |
749 */ | |
750 chrome.automation.AutomationNode.prototype.containerLiveRelevant; | |
751 | |
752 /** | |
753 * The value of aria-atomic if this node is inside a live region. | |
754 * @type {boolean} | |
755 * @see https://developer.chrome.com/extensions/automation#type-containerLiveAto mic | |
756 */ | |
757 chrome.automation.AutomationNode.prototype.containerLiveAtomic; | |
758 | |
759 /** | |
760 * The value of aria-busy if this node is inside a live region. | |
761 * @type {boolean} | |
762 * @see https://developer.chrome.com/extensions/automation#type-containerLiveBus y | |
763 */ | |
764 chrome.automation.AutomationNode.prototype.containerLiveBusy; | |
765 | |
766 /** | |
767 * A map containing all HTML attributes and their values | |
768 * @see https://developer.chrome.com/extensions/automation#type-htmlAttributes | |
David Tseng
2017/01/10 23:24:33
No annotation. Should be Object<string, string>
dmazzoni
2017/01/11 22:20:42
Done.
Dan Beam
2017/01/11 23:04:26
also note, Object<string> is pretty much exactly t
| |
769 */ | |
770 chrome.automation.AutomationNode.prototype.htmlAttributes; | |
771 | |
772 /** | |
773 * The input type of a text field, such as "text" or "email". | |
774 * @type {string} | |
775 * @see https://developer.chrome.com/extensions/automation#type-inputType | |
776 */ | |
777 chrome.automation.AutomationNode.prototype.inputType; | |
778 | |
779 /** | |
780 * Walking the tree. | |
781 * @type {!Array<!chrome.automation.AutomationNode>} | |
782 * @see https://developer.chrome.com/extensions/automation#type-children | |
783 */ | |
784 chrome.automation.AutomationNode.prototype.children; | |
785 | |
786 /** | |
787 * @type {!chrome.automation.AutomationNode} | |
788 * @see https://developer.chrome.com/extensions/automation#type-parent | |
789 */ | |
790 chrome.automation.AutomationNode.prototype.parent; | |
791 | |
792 /** | |
793 * @type {!chrome.automation.AutomationNode} | |
794 * @see https://developer.chrome.com/extensions/automation#type-firstChild | |
795 */ | |
796 chrome.automation.AutomationNode.prototype.firstChild; | |
797 | |
798 /** | |
799 * @type {!chrome.automation.AutomationNode} | |
800 * @see https://developer.chrome.com/extensions/automation#type-lastChild | |
801 */ | |
802 chrome.automation.AutomationNode.prototype.lastChild; | |
803 | |
804 /** | |
805 * @type {!chrome.automation.AutomationNode} | |
806 * @see https://developer.chrome.com/extensions/automation#type-previousSibling | |
807 */ | |
808 chrome.automation.AutomationNode.prototype.previousSibling; | |
809 | |
810 /** | |
811 * @type {!chrome.automation.AutomationNode} | |
812 * @see https://developer.chrome.com/extensions/automation#type-nextSibling | |
813 */ | |
814 chrome.automation.AutomationNode.prototype.nextSibling; | |
815 | |
816 /** | |
817 * The index of this node in its parent node's list of children. If this is the root node, this will be undefined. | |
818 * @type {number} | |
819 * @see https://developer.chrome.com/extensions/automation#type-indexInParent | |
820 */ | |
821 chrome.automation.AutomationNode.prototype.indexInParent; | |
822 | |
823 /** | |
824 * Does the default action based on this node's role. This is generally the same | |
825 * action that would result from clicking the node such as expanding a treeitem, | |
826 * toggling a checkbox, selecting a radiobutton, or activating a button. | |
827 * @see https://developer.chrome.com/extensions/automation#method-doDefault | |
828 */ | |
829 chrome.automation.AutomationNode.prototype.doDefault = function() {}; | |
830 | |
831 /** | |
832 * Places focus on this node. | |
833 * @see https://developer.chrome.com/extensions/automation#method-focus | |
834 */ | |
835 chrome.automation.AutomationNode.prototype.focus = function() {}; | |
836 | |
837 /** | |
838 * Request a data url for the contents of an image, optionally resized. Pass | |
839 * zero for maxWidth and/or maxHeight for the original size. | |
840 * @param {number} maxWidth | |
841 * @param {number} maxHeight | |
842 * @see https://developer.chrome.com/extensions/automation#method-getImageData | |
843 */ | |
844 chrome.automation.AutomationNode.prototype.getImageData = function(maxWidth, max Height) {}; | |
845 | |
846 /** | |
847 * Scrolls this node to make it visible. | |
848 * @see https://developer.chrome.com/extensions/automation#method-makeVisible | |
849 */ | |
850 chrome.automation.AutomationNode.prototype.makeVisible = function() {}; | |
851 | |
852 /** | |
853 * Sets selection within a text field. | |
854 * @param {number} startIndex | |
855 * @param {number} endIndex | |
856 * @see https://developer.chrome.com/extensions/automation#method-setSelection | |
857 */ | |
858 chrome.automation.AutomationNode.prototype.setSelection = function(startIndex, e ndIndex) {}; | |
859 | |
860 /** | |
861 * Clears focus and sets this node as the starting point for the next time the | |
862 * user presses Tab or Shift+Tab. | |
863 * @see https://developer.chrome.com/extensions/automation#method-setSequentialF ocusNavigationStartingPoint | |
864 */ | |
865 chrome.automation.AutomationNode.prototype.setSequentialFocusNavigationStartingP oint = function() {}; | |
866 | |
867 /** | |
868 * Adds a listener for the given event type and event phase. | |
869 * @param {!chrome.automation.EventType} eventType | |
870 * @param {function(!chrome.automation.AutomationEvent):void} listener A | |
871 * listener for events on an <code>AutomationNode</code>. | |
872 * @param {boolean} capture | |
873 * @see https://developer.chrome.com/extensions/automation#method-addEventListen er | |
874 */ | |
875 chrome.automation.AutomationNode.prototype.addEventListener = function(eventType , listener, capture) {}; | |
876 | |
877 /** | |
878 * Removes a listener for the given event type and event phase. | |
879 * @param {!chrome.automation.EventType} eventType | |
880 * @param {function(!chrome.automation.AutomationEvent):void} listener A | |
881 * listener for events on an <code>AutomationNode</code>. | |
882 * @param {boolean} capture | |
883 * @see https://developer.chrome.com/extensions/automation#method-removeEventLis tener | |
884 */ | |
885 chrome.automation.AutomationNode.prototype.removeEventListener = function(eventT ype, listener, capture) {}; | |
886 | |
887 /** | |
888 * <p>Gets the first node in this node's subtree which matches the given CSS | |
889 * selector and is within the same DOM context.</p><p>If this node doesn't | |
890 * correspond directly with an HTML node in the DOM, querySelector will be run | |
891 * on this node's nearest HTML node ancestor. Note that this may result in the | |
892 * query returning a node which is not a descendant of this node.</p><p>If the | |
893 * selector matches a node which doesn't directly correspond to an automation | |
894 * node (for example an element within an ARIA widget, where the ARIA widget | |
895 * forms one node of the automation tree, or an element which is hidden from | |
896 * accessibility via hiding it using CSS or using aria-hidden), this will return | |
897 * the nearest ancestor which does correspond to an automation node.</p> | |
898 * @param {string} selector | |
899 * @param {function(!chrome.automation.AutomationNode):void} callback Called | |
900 * when the result for a <code>query</code> is available. | |
901 * @see https://developer.chrome.com/extensions/automation#method-domQuerySelect or | |
902 */ | |
903 chrome.automation.AutomationNode.prototype.domQuerySelector = function(selector, callback) {}; | |
904 | |
905 /** | |
906 * Finds the first AutomationNode in this node's subtree which matches the given | |
907 * search parameters. | |
908 * @param {!chrome.automation.FindParams} params | |
909 * @return {!chrome.automation.AutomationNode} | |
910 * @see https://developer.chrome.com/extensions/automation#method-find | |
911 */ | |
912 chrome.automation.AutomationNode.prototype.find = function(params) {}; | |
913 | |
914 /** | |
915 * Finds all the AutomationNodes in this node's subtree which matches the given | |
916 * search parameters. | |
917 * @param {!chrome.automation.FindParams} params | |
918 * @return {!Array<!chrome.automation.AutomationNode>} | |
919 * @see https://developer.chrome.com/extensions/automation#method-findAll | |
920 */ | |
921 chrome.automation.AutomationNode.prototype.findAll = function(params) {}; | |
922 | |
923 /** | |
924 * Returns whether this node matches the given $(ref:automation.FindParams). | |
925 * @param {!chrome.automation.FindParams} params | |
926 * @return {boolean} | |
927 * @see https://developer.chrome.com/extensions/automation#method-matches | |
928 */ | |
929 chrome.automation.AutomationNode.prototype.matches = function(params) {}; | |
930 | |
931 | |
932 /** | |
933 * Get the automation tree for the tab with the given tabId, or the current tab | |
934 * if no tabID is given, enabling automation if necessary. Returns a tree with a | |
935 * placeholder root node; listen for the "loadComplete" event to get a | |
936 * notification that the tree has fully loaded (the previous root node reference | |
937 * will stop working at or before this point). | |
335 * @param {number} tabId | 938 * @param {number} tabId |
336 * @param {function(chrome.automation.AutomationNode):void} callback | 939 * @param {function(!chrome.automation.AutomationNode):void} callback Called |
940 * when the <code>AutomationNode</code> for the page is available. | |
941 * @see https://developer.chrome.com/extensions/automation#method-getTree | |
337 */ | 942 */ |
338 chrome.automation.getTree = function(tabId, callback) {}; | 943 chrome.automation.getTree = function(tabId, callback) {}; |
339 | 944 |
340 /** @param {function(!chrome.automation.AutomationNode):void} callback */ | 945 /** |
946 * Get the automation tree for the whole desktop which consists of all on screen | |
947 * views. Note this API is currently only supported on Chrome OS. | |
948 * @param {function(!chrome.automation.AutomationNode):void} callback Called | |
949 * when the <code>AutomationNode</code> for the page is available. | |
950 * @see https://developer.chrome.com/extensions/automation#method-getDesktop | |
951 */ | |
341 chrome.automation.getDesktop = function(callback) {}; | 952 chrome.automation.getDesktop = function(callback) {}; |
342 | 953 |
343 /** @param {function(!chrome.automation.AutomationNode):void} callback */ | 954 /** |
955 * Get the automation node that currently has focus, globally. Will return null | |
956 * if none of the nodes in any loaded trees have focus. | |
957 * @param {function(!chrome.automation.AutomationNode):void} callback Called | |
958 * with the <code>AutomationNode</code> that currently has focus. | |
959 * @see https://developer.chrome.com/extensions/automation#method-getFocus | |
960 */ | |
344 chrome.automation.getFocus = function(callback) {}; | 961 chrome.automation.getFocus = function(callback) {}; |
345 | 962 |
346 /** | 963 /** |
347 * @param {string} filter | 964 * Add a tree change observer. Tree change observers are static/global, they |
348 * @param {function(chrome.automation.TreeChange) : void} | 965 * listen to changes across all trees. Pass a filter to determine what specific |
349 * observer | 966 * tree changes to listen to, and note that listnening to all tree changes can |
967 * be expensive. | |
968 * @param {!chrome.automation.TreeChangeObserverFilter} filter | |
969 * @param {function(!chrome.automation.TreeChange):void} observer A listener for | |
970 * changes on the <code>AutomationNode</code> tree. | |
971 * @see https://developer.chrome.com/extensions/automation#method-addTreeChangeO bserver | |
350 */ | 972 */ |
351 chrome.automation.addTreeChangeObserver = function(filter, observer) {}; | 973 chrome.automation.addTreeChangeObserver = function(filter, observer) {}; |
352 | 974 |
353 /** | 975 /** |
354 * @param {function(chrome.automation.TreeChange) : void} observer | 976 * Remove a tree change observer. |
977 * @param {function(!chrome.automation.TreeChange):void} observer A listener for | |
978 * changes on the <code>AutomationNode</code> tree. | |
979 * @see https://developer.chrome.com/extensions/automation#method-removeTreeChan geObserver | |
355 */ | 980 */ |
356 chrome.automation.removeTreeChangeObserver = function(observer) {}; | 981 chrome.automation.removeTreeChangeObserver = function(observer) {}; |
357 | 982 |
358 // | 983 /** |
359 // End auto generated externs; do not edit. | 984 * Sets the selection in a tree. This creates a selection in a single tree |
360 // | 985 * (anchorObject and focusObject must have the same root). Everything in the |
361 | 986 * tree between the two node/offset pairs gets included in the selection. The |
362 | 987 * anchor is where the user started the selection, while the focus is the point |
363 | 988 * at which the selection gets extended e.g. when dragging with a mouse or using |
364 /** | 989 * the keyboard. For nodes with the role staticText, the offset gives the |
365 * @type {chrome.automation.RoleType} | 990 * character offset within the value where the selection starts or ends, |
366 */ | 991 * respectively. |
367 chrome.automation.AutomationNode.prototype.role; | 992 * @param {!chrome.automation.SetDocumentSelectionParams} params |
368 | 993 * @see https://developer.chrome.com/extensions/automation#method-setDocumentSel ection |
369 | 994 */ |
370 /** | 995 chrome.automation.setDocumentSelection = function(params) {}; |
371 * @type {!Object<chrome.automation.StateType, boolean>} | |
372 */ | |
373 chrome.automation.AutomationNode.prototype.state; | |
374 | |
375 | |
376 /** | |
377 * @type {chrome.automation.NameFromType} | |
378 */ | |
379 chrome.automation.AutomationNode.prototype.nameFrom; | |
380 | |
381 | |
382 /** | |
383 * @type {chrome.automation.DescriptionFromType} | |
384 */ | |
385 chrome.automation.AutomationNode.prototype.descriptionFrom; | |
386 | |
387 | |
388 /** | |
389 * @type {number} | |
390 */ | |
391 chrome.automation.AutomationNode.prototype.indexInParent; | |
392 | |
393 | |
394 /** | |
395 * @type {string} | |
396 */ | |
397 chrome.automation.AutomationNode.prototype.name; | |
398 | |
399 /** | |
400 * @type {string} | |
401 */ | |
402 chrome.automation.AutomationNode.prototype.description; | |
403 | |
404 | |
405 /** | |
406 * @type {string} | |
407 */ | |
408 chrome.automation.AutomationNode.prototype.url; | |
409 | |
410 | |
411 /** | |
412 * @type {string} | |
413 */ | |
414 chrome.automation.AutomationNode.prototype.docUrl; | |
415 | |
416 | |
417 /** | |
418 * @type {string} | |
419 */ | |
420 chrome.automation.AutomationNode.prototype.value; | |
421 | |
422 | |
423 /** | |
424 * @type {number} | |
425 */ | |
426 chrome.automation.AutomationNode.prototype.textSelStart; | |
427 | |
428 | |
429 /** | |
430 * @type {number} | |
431 */ | |
432 chrome.automation.AutomationNode.prototype.textSelEnd; | |
433 | |
434 | |
435 /** | |
436 * @type {Array<number>} | |
437 */ | |
438 chrome.automation.AutomationNode.prototype.wordStarts; | |
439 | |
440 | |
441 /** | |
442 * @type {Array<number>} | |
443 */ | |
444 chrome.automation.AutomationNode.prototype.wordEnds; | |
445 | |
446 | |
447 /** | |
448 * @type {chrome.automation.AutomationRootNode} | |
449 */ | |
450 chrome.automation.AutomationNode.prototype.root; | |
451 | |
452 | |
453 /** | |
454 * @type {chrome.automation.AutomationNode} | |
455 */ | |
456 chrome.automation.AutomationNode.prototype.firstChild; | |
457 | |
458 | |
459 /** | |
460 * @type {chrome.automation.AutomationNode} | |
461 */ | |
462 chrome.automation.AutomationNode.prototype.lastChild; | |
463 | |
464 | |
465 /** | |
466 * @type {chrome.automation.AutomationNode} | |
467 */ | |
468 chrome.automation.AutomationNode.prototype.nextSibling; | |
469 | |
470 | |
471 /** | |
472 * @type {chrome.automation.AutomationNode} | |
473 */ | |
474 chrome.automation.AutomationNode.prototype.previousSibling; | |
475 | |
476 | |
477 /** | |
478 * @type {chrome.automation.AutomationNode} | |
479 */ | |
480 chrome.automation.AutomationNode.prototype.parent; | |
481 | |
482 | |
483 /** | |
484 * @type {!Array<chrome.automation.AutomationNode>} | |
485 */ | |
486 chrome.automation.AutomationNode.prototype.children; | |
487 | |
488 | |
489 /** | |
490 * @type {{top: number, left: number, height: number, width: number}|undefined} | |
491 */ | |
David Tseng
2017/01/10 23:24:33
Ditto.
dmazzoni
2017/01/11 22:20:42
This one is good, the new type is {chrome.automati
| |
492 chrome.automation.AutomationNode.prototype.location; | |
493 | |
494 | |
495 /** | |
496 * @param {number} start | |
497 * @param {number} end | |
498 * @return { | |
499 * ({top: number, left: number, height: number, width: number})|undefined} | |
500 */ | |
David Tseng
2017/01/10 23:24:32
Ditto.
dmazzoni
2017/01/11 22:20:42
Same
| |
501 chrome.automation.AutomationNode.prototype.boundsForRange = | |
502 function(start, end) {}; | |
503 | |
504 | |
505 chrome.automation.AutomationNode.prototype.makeVisible = function() {}; | |
506 | |
507 | |
508 /** | |
509 * @param {chrome.automation.EventType} eventType | |
510 * @param {function(!chrome.automation.AutomationEvent) : void} callback | |
511 * @param {boolean} capture | |
512 */ | |
513 chrome.automation.AutomationNode.prototype.addEventListener = | |
514 function(eventType, callback, capture) {}; | |
515 | |
516 | |
517 /** | |
518 * @param {chrome.automation.EventType} eventType | |
519 * @param {function(!chrome.automation.AutomationEvent) : void} callback | |
520 * @param {boolean} capture | |
521 */ | |
522 chrome.automation.AutomationNode.prototype.removeEventListener = | |
523 function(eventType, callback, capture) {}; | |
524 | |
525 | |
526 /** | |
527 * @type {chrome.automation.AutomationNode} | |
528 */ | |
529 chrome.automation.TreeChange.prototype.target; | |
530 | |
531 | |
532 /** | |
533 * @type {chrome.automation.TreeChangeType} | |
534 */ | |
535 chrome.automation.TreeChange.prototype.type; | |
536 | |
537 | |
538 chrome.automation.AutomationNode.prototype.doDefault = function() {}; | |
539 | |
540 | |
541 chrome.automation.AutomationNode.prototype.focus = function() {}; | |
542 | |
543 | |
544 chrome.automation.AutomationNode.prototype.showContextMenu = function() {}; | |
545 | |
546 | |
547 chrome.automation.AutomationNode.prototype | |
548 .setSequentialFocusNavigationStartingPoint = function() {}; | |
549 | |
550 | |
551 /** | |
552 * @param {number} start | |
553 * @param {number} end | |
554 */ | |
555 chrome.automation.AutomationNode.prototype.setSelection = | |
556 function(start, end) {}; | |
557 | |
558 /** @type {string} */ | |
559 chrome.automation.AutomationNode.prototype.containerLiveStatus; | |
560 | |
561 /** @type {string} */ | |
562 chrome.automation.AutomationNode.prototype.containerLiveRelevant; | |
563 | |
564 /** @type {boolean} */ | |
565 chrome.automation.AutomationNode.prototype.containerLiveAtomic; | |
566 | |
567 /** @type {boolean} */ | |
568 chrome.automation.AutomationNode.prototype.containerLiveBusy; | |
David Tseng
2017/01/10 23:24:33
Nullable for these live region attributes as well.
dmazzoni
2017/01/11 22:20:42
Done.
| |
569 | |
570 /** @type {string} */ | |
571 chrome.automation.AutomationNode.prototype.language; | |
572 | |
573 /** @type {string} */ | |
574 chrome.automation.AutomationNode.prototype.liveStatus; | |
575 | |
576 /** @type {string} */ | |
577 chrome.automation.AutomationNode.prototype.liveRelevant; | |
578 | |
579 /** @type {boolean} */ | |
580 chrome.automation.AutomationNode.prototype.liveAtomic; | |
581 | |
582 /** @type {boolean} */ | |
583 chrome.automation.AutomationNode.prototype.liveBusy; | |
584 | |
585 | |
586 /** | |
587 * @param {Object} findParams | |
588 */ | |
589 chrome.automation.AutomationNode.prototype.find = function(findParams) {}; | |
590 | |
591 /** | |
592 * @param {Object} findParams | |
593 * @return {Array<chrome.automation.AutomationNode>} | |
594 */ | |
595 chrome.automation.AutomationNode.prototype.findAll = function(findParams) {}; | |
596 | |
597 /** | |
598 * @type {string} | |
599 */ | |
600 chrome.automation.AutomationNode.prototype.inputType; | |
601 | |
602 /** | |
603 * @type {(chrome.automation.AutomationNode|undefined)} | |
604 */ | |
605 chrome.automation.AutomationNode.prototype.anchorObject; | |
606 | |
607 /** | |
608 * @param {{anchorObject: !chrome.automation.AutomationNode, | |
609 * anchorOffset: number, | |
610 * focusObject: !chrome.automation.AutomationNode, | |
611 * focusOffset: number}} selectionParams | |
612 */ | |
613 chrome.automation.setDocumentSelection = function(selectionParams) {}; | |
614 | |
615 /** | |
616 * @type {(number|undefined)} | |
617 */ | |
618 chrome.automation.anchorOffset; | |
619 | |
620 /** | |
621 * @type {(chrome.automation.AutomationNode|undefined)} | |
622 */ | |
623 chrome.automation.AutomationNode.prototype.focusObject; | |
624 | |
625 /** | |
626 * @type {(Array<number>|undefined)} | |
627 */ | |
628 chrome.automation.AutomationNode.prototype.lineBreaks; | |
629 | |
630 /** | |
631 * @type {(number|undefined)} | |
632 */ | |
633 chrome.automation.focusOffset; | |
634 | |
635 /** | |
636 * @type {(chrome.automation.AutomationNode|undefined)} | |
637 */ | |
638 chrome.automation.AutomationNode.prototype.activeDescendant; | |
639 | |
640 /** @type {number} */ | |
641 chrome.automation.AutomationNode.prototype.tableCellColumnIndex; | |
642 | |
643 /** @type {number} */ | |
644 chrome.automation.AutomationNode.prototype.tableCellRowIndex; | |
645 | |
646 /** @type {number} */ | |
647 chrome.automation.AutomationNode.prototype.tableColumnCount; | |
648 | |
649 /** @type {number} */ | |
650 chrome.automation.AutomationNode.prototype.tableRowCount; | |
651 | |
652 /** @type {number} */ | |
653 chrome.automation.AutomationNode.prototype.hierarchicalLevel; | |
654 | |
655 /** @type {Array<number>} */ | |
656 chrome.automation.AutomationNode.prototype.markerTypes; | |
657 /** @type {Array<number>} */ | |
658 chrome.automation.AutomationNode.prototype.markerStarts; | |
659 /** @type {Array<number>} */ | |
660 chrome.automation.AutomationNode.prototype.markerEnds; | |
661 | |
662 /** @type {boolean} */ | |
663 chrome.automation.AutomationNode.prototype.ariaReadonly; | |
664 | |
665 /** @type {chrome.automation.AutomationNode} */ | |
666 chrome.automation.AutomationNode.prototype.nextOnLine; | |
667 /** @type {chrome.automation.AutomationNode} */ | |
668 chrome.automation.AutomationNode.prototype.previousOnLine; | |
669 | |
670 /** @type {Object<string, string>} */ | |
671 chrome.automation.AutomationNode.prototype.htmlAttributes; | |
672 | |
673 /** | |
674 * @extends {chrome.automation.AutomationNode} | |
675 * @constructor | |
676 */ | |
677 chrome.automation.AutomationRootNode = function() {}; | |
678 | |
679 /** | |
680 * @type {chrome.automation.AutomationNode} | |
681 */ | |
682 chrome.automation.AutomationRootNode.prototype.anchorObject; | |
683 | |
684 /** | |
685 * @type {number} | |
686 */ | |
687 chrome.automation.AutomationRootNode.prototype.anchorOffset; | |
688 | |
689 /** | |
690 * @type {chrome.automation.AutomationNode} | |
691 */ | |
692 chrome.automation.AutomationRootNode.prototype.focusObject; | |
693 | |
694 /** | |
695 * @type {number} | |
696 */ | |
697 chrome.automation.AutomationRootNode.prototype.focusOffset; | |
OLD | NEW |