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

Side by Side Diff: third_party/closure_compiler/externs/automation.js

Issue 2601333002: Update json_schema_compiler to handle the Automation extension API (Closed)
Patch Set: Fix select_to_speak Created 3 years, 11 months 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 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>&lt;input&gt; 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;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698