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

Unified Diff: third_party/closure_compiler/externs/automation.js

Issue 2601333002: Update json_schema_compiler to handle the Automation extension API (Closed)
Patch Set: Better solution Created 3 years, 12 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 side-by-side diff with in-line comments
Download patch
Index: third_party/closure_compiler/externs/automation.js
diff --git a/third_party/closure_compiler/externs/automation.js b/third_party/closure_compiler/externs/automation.js
index fd080cbb1195544e0318db209ba24e453fdde400..c281f411d5824770f08f9f6e8c120ce6e3d35e2c 100644
--- a/third_party/closure_compiler/externs/automation.js
+++ b/third_party/closure_compiler/externs/automation.js
@@ -3,12 +3,10 @@
// found in the LICENSE file.
// This file was generated by:
-// tools/json_schema_compiler/compiler.py -g externs
-// chrome/common/extensions/api/automation.idl
-//
-// Further edits were applied by hand due to bugs / limitations in
-// json_schema_compiler.
-//
+// tools/json_schema_compiler/compiler.py.
+// NOTE: The format of types has changed. 'FooType' is now
+// 'chrome.automation.FooType'.
+// Please run the closure compiler before committing changes.
// See https://chromium.googlesource.com/chromium/src/+/master/docs/closure_compilation.md
/** @fileoverview Externs generated from namespace: automation */
@@ -20,256 +18,251 @@ chrome.automation = {};
/**
* @enum {string}
+ * @see https://developer.chrome.com/extensions/automation#type-EventType
*/
chrome.automation.EventType = {
- activedescendantchanged: '',
- alert: '',
- ariaAttributeChanged: '',
- autocorrectionOccured: '',
- blur: '',
- checkedStateChanged: '',
- childrenChanged: '',
- documentSelectionChanged: '',
- expandedChanged: '',
- focus: '',
- hide: '',
- hover: '',
- invalidStatusChanged: '',
- layoutComplete: '',
- liveRegionChanged: '',
- loadComplete: '',
- locationChanged: '',
- menuEnd: '',
- menuListItemSelected: '',
- menuListValueChanged: '',
- menuPopupEnd: '',
- menuPopupStart: '',
- menuStart: '',
- mouseCanceled: '',
- mouseDragged: '',
- mouseMoved: '',
- mousePressed: '',
- mouseReleased: '',
- rowCollapsed: '',
- rowCountChanged: '',
- rowExpanded: '',
- scrollPositionChanged: '',
- scrolledToAnchor: '',
- selectedChildrenChanged: '',
- selection: '',
- selectionAdd: '',
- selectionRemove: '',
- show: '',
- textChanged: '',
- textSelectionChanged: '',
- treeChanged: '',
- valueChanged: '',
+ activedescendantchanged: 'activedescendantchanged',
+ alert: 'alert',
+ ariaAttributeChanged: 'ariaAttributeChanged',
+ autocorrectionOccured: 'autocorrectionOccured',
+ blur: 'blur',
+ checkedStateChanged: 'checkedStateChanged',
+ childrenChanged: 'childrenChanged',
+ clicked: 'clicked',
+ documentSelectionChanged: 'documentSelectionChanged',
+ expandedChanged: 'expandedChanged',
+ focus: 'focus',
+ imageFrameUpdated: 'imageFrameUpdated',
+ hide: 'hide',
+ hover: 'hover',
+ invalidStatusChanged: 'invalidStatusChanged',
+ layoutComplete: 'layoutComplete',
+ liveRegionCreated: 'liveRegionCreated',
+ liveRegionChanged: 'liveRegionChanged',
+ loadComplete: 'loadComplete',
+ locationChanged: 'locationChanged',
+ mediaStartedPlaying: 'mediaStartedPlaying',
+ mediaStoppedPlaying: 'mediaStoppedPlaying',
+ menuEnd: 'menuEnd',
+ menuListItemSelected: 'menuListItemSelected',
+ menuListValueChanged: 'menuListValueChanged',
+ menuPopupEnd: 'menuPopupEnd',
+ menuPopupStart: 'menuPopupStart',
+ menuStart: 'menuStart',
+ mouseCanceled: 'mouseCanceled',
+ mouseDragged: 'mouseDragged',
+ mouseMoved: 'mouseMoved',
+ mousePressed: 'mousePressed',
+ mouseReleased: 'mouseReleased',
+ rowCollapsed: 'rowCollapsed',
+ rowCountChanged: 'rowCountChanged',
+ rowExpanded: 'rowExpanded',
+ scrollPositionChanged: 'scrollPositionChanged',
+ scrolledToAnchor: 'scrolledToAnchor',
+ selectedChildrenChanged: 'selectedChildrenChanged',
+ selection: 'selection',
+ selectionAdd: 'selectionAdd',
+ selectionRemove: 'selectionRemove',
+ show: 'show',
+ textChanged: 'textChanged',
+ textSelectionChanged: 'textSelectionChanged',
+ treeChanged: 'treeChanged',
+ valueChanged: 'valueChanged',
};
/**
* @enum {string}
+ * @see https://developer.chrome.com/extensions/automation#type-RoleType
*/
chrome.automation.RoleType = {
- alertDialog: '',
- alert: '',
- annotation: '',
- application: '',
- article: '',
- banner: '',
- blockquote: '',
- busyIndicator: '',
- button: '',
- buttonDropDown: '',
- canvas: '',
- caption: '',
- cell: '',
- checkBox: '',
- client: '',
- colorWell: '',
- columnHeader: '',
- column: '',
- comboBox: '',
- complementary: '',
- contentInfo: '',
- date: '',
- dateTime: '',
- definition: '',
- descriptionListDetail: '',
- descriptionList: '',
- descriptionListTerm: '',
- desktop: '',
- details: '',
- dialog: '',
- directory: '',
- disclosureTriangle: '',
- div: '',
- document: '',
- embeddedObject: '',
- figcaption: '',
- figure: '',
- footer: '',
- form: '',
- grid: '',
- group: '',
- heading: '',
- iframe: '',
- iframePresentational: '',
- ignored: '',
- imageMapLink: '',
- imageMap: '',
- image: '',
- inlineTextBox: '',
- labelText: '',
- legend: '',
- lineBreak: '',
- link: '',
- listBoxOption: '',
- listBox: '',
- listItem: '',
- listMarker: '',
- list: '',
- locationBar: '',
- log: '',
- main: '',
- marquee: '',
- math: '',
- menuBar: '',
- menuButton: '',
- menuItem: '',
- menuItemCheckBox: '',
- menuItemRadio: '',
- menuListOption: '',
- menuListPopup: '',
- menu: '',
- meter: '',
- navigation: '',
- note: '',
- outline: '',
- pane: '',
- paragraph: '',
- popUpButton: '',
- pre: '',
- presentational: '',
- progressIndicator: '',
- radioButton: '',
- radioGroup: '',
- region: '',
- rootWebArea: '',
- rowHeader: '',
- row: '',
- ruby: '',
- ruler: '',
- svgRoot: '',
- scrollArea: '',
- scrollBar: '',
- seamlessWebArea: '',
- search: '',
- searchBox: '',
- slider: '',
- sliderThumb: '',
- spinButtonPart: '',
- spinButton: '',
- splitter: '',
- staticText: '',
- status: '',
- switch: '',
- tabGroup: '',
- tabList: '',
- tabPanel: '',
- tab: '',
- tableHeaderContainer: '',
- table: '',
- textField: '',
- time: '',
- timer: '',
- titleBar: '',
- toggleButton: '',
- toolbar: '',
- treeGrid: '',
- treeItem: '',
- tree: '',
- unknown: '',
- tooltip: '',
- webArea: '',
- webView: '',
- window: '',
+ abbr: 'abbr',
+ alertDialog: 'alertDialog',
+ alert: 'alert',
+ annotation: 'annotation',
+ application: 'application',
+ article: 'article',
+ audio: 'audio',
+ banner: 'banner',
+ blockquote: 'blockquote',
+ busyIndicator: 'busyIndicator',
+ button: 'button',
+ buttonDropDown: 'buttonDropDown',
+ canvas: 'canvas',
+ caption: 'caption',
+ cell: 'cell',
+ checkBox: 'checkBox',
+ client: 'client',
+ colorWell: 'colorWell',
+ columnHeader: 'columnHeader',
+ column: 'column',
+ comboBox: 'comboBox',
+ complementary: 'complementary',
+ contentInfo: 'contentInfo',
+ date: 'date',
+ dateTime: 'dateTime',
+ definition: 'definition',
+ descriptionListDetail: 'descriptionListDetail',
+ descriptionList: 'descriptionList',
+ descriptionListTerm: 'descriptionListTerm',
+ desktop: 'desktop',
+ details: 'details',
+ dialog: 'dialog',
+ directory: 'directory',
+ disclosureTriangle: 'disclosureTriangle',
+ div: 'div',
+ document: 'document',
+ embeddedObject: 'embeddedObject',
+ figcaption: 'figcaption',
+ figure: 'figure',
+ footer: 'footer',
+ form: 'form',
+ grid: 'grid',
+ group: 'group',
+ heading: 'heading',
+ iframe: 'iframe',
+ iframePresentational: 'iframePresentational',
+ ignored: 'ignored',
+ imageMapLink: 'imageMapLink',
+ imageMap: 'imageMap',
+ image: 'image',
+ inlineTextBox: 'inlineTextBox',
+ inputTime: 'inputTime',
+ labelText: 'labelText',
+ legend: 'legend',
+ lineBreak: 'lineBreak',
+ link: 'link',
+ listBoxOption: 'listBoxOption',
+ listBox: 'listBox',
+ listItem: 'listItem',
+ listMarker: 'listMarker',
+ list: 'list',
+ locationBar: 'locationBar',
+ log: 'log',
+ main: 'main',
+ mark: 'mark',
+ marquee: 'marquee',
+ math: 'math',
+ menuBar: 'menuBar',
+ menuButton: 'menuButton',
+ menuItem: 'menuItem',
+ menuItemCheckBox: 'menuItemCheckBox',
+ menuItemRadio: 'menuItemRadio',
+ menuListOption: 'menuListOption',
+ menuListPopup: 'menuListPopup',
+ menu: 'menu',
+ meter: 'meter',
+ navigation: 'navigation',
+ note: 'note',
+ outline: 'outline',
+ pane: 'pane',
+ paragraph: 'paragraph',
+ popUpButton: 'popUpButton',
+ pre: 'pre',
+ presentational: 'presentational',
+ progressIndicator: 'progressIndicator',
+ radioButton: 'radioButton',
+ radioGroup: 'radioGroup',
+ region: 'region',
+ rootWebArea: 'rootWebArea',
+ rowHeader: 'rowHeader',
+ row: 'row',
+ ruby: 'ruby',
+ ruler: 'ruler',
+ svgRoot: 'svgRoot',
+ scrollArea: 'scrollArea',
+ scrollBar: 'scrollBar',
+ seamlessWebArea: 'seamlessWebArea',
+ search: 'search',
+ searchBox: 'searchBox',
+ slider: 'slider',
+ sliderThumb: 'sliderThumb',
+ spinButtonPart: 'spinButtonPart',
+ spinButton: 'spinButton',
+ splitter: 'splitter',
+ staticText: 'staticText',
+ status: 'status',
+ switch: 'switch',
+ tabGroup: 'tabGroup',
+ tabList: 'tabList',
+ tabPanel: 'tabPanel',
+ tab: 'tab',
+ tableHeaderContainer: 'tableHeaderContainer',
+ table: 'table',
+ textField: 'textField',
+ time: 'time',
+ timer: 'timer',
+ titleBar: 'titleBar',
+ toggleButton: 'toggleButton',
+ toolbar: 'toolbar',
+ treeGrid: 'treeGrid',
+ treeItem: 'treeItem',
+ tree: 'tree',
+ unknown: 'unknown',
+ tooltip: 'tooltip',
+ video: 'video',
+ webArea: 'webArea',
+ webView: 'webView',
+ window: 'window',
};
/**
* @enum {string}
+ * @see https://developer.chrome.com/extensions/automation#type-StateType
*/
chrome.automation.StateType = {
- busy: '',
- checked: '',
- collapsed: '',
- default: '',
- disabled: '',
- editable: '',
- expanded: '',
- focusable: '',
- focused: '',
- haspopup: '',
- horizontal: '',
- hovered: '',
- indeterminate: '',
- invisible: '',
- linked: '',
- multiline: '',
- multiselectable: '',
- offscreen: '',
- pressed: '',
- protected: '',
- readOnly: '',
- required: '',
- richlyEditable: '',
- selectable: '',
- selected: '',
- vertical: '',
- visited: '',
-};
-
-/**
- * @enum {number}
- */
-chrome.automation.NameFromType = {
- 0: '',
- 1: 'uninitialized',
- 2: 'attribute',
- 3: 'contents',
- 4: 'placeholder',
- 5: 'relatedElement',
- 6: 'value'
-};
-
-/**
- * @enum {number}
- */
-chrome.automation.DescriptionFromType = {
- 0: '',
- 1: 'uninitialized',
- 2: 'attribute',
- 3: 'contents',
- 4: 'placeholder',
- 5: 'relatedElement'
+ busy: 'busy',
+ checked: 'checked',
+ collapsed: 'collapsed',
+ default: 'default',
+ disabled: 'disabled',
+ editable: 'editable',
+ expanded: 'expanded',
+ focusable: 'focusable',
+ focused: 'focused',
+ haspopup: 'haspopup',
+ horizontal: 'horizontal',
+ hovered: 'hovered',
+ invisible: 'invisible',
+ linked: 'linked',
+ multiline: 'multiline',
+ multiselectable: 'multiselectable',
+ offscreen: 'offscreen',
+ pressed: 'pressed',
+ protected: 'protected',
+ readOnly: 'readOnly',
+ required: 'required',
+ richlyEditable: 'richlyEditable',
+ selectable: 'selectable',
+ selected: 'selected',
+ vertical: 'vertical',
+ visited: 'visited',
};
/**
* @enum {string}
+ * @see https://developer.chrome.com/extensions/automation#type-TreeChangeType
*/
chrome.automation.TreeChangeType = {
nodeCreated: 'nodeCreated',
subtreeCreated: 'subtreeCreated',
nodeChanged: 'nodeChanged',
+ textChanged: 'textChanged',
nodeRemoved: 'nodeRemoved',
};
/**
+ * @see https://developer.chrome.com/extensions/automation#type-NameFromType
+ */
+chrome.automation.NameFromType;
+
+/**
* @typedef {{
* left: number,
* top: number,
* width: number,
* height: number
* }}
+ * @see https://developer.chrome.com/extensions/automation#type-Rect
*/
chrome.automation.Rect;
@@ -279,419 +272,722 @@ chrome.automation.Rect;
* state: (Object|undefined),
* attributes: (Object|undefined)
* }}
+ * @see https://developer.chrome.com/extensions/automation#type-FindParams
*/
chrome.automation.FindParams;
/**
+ * @typedef {{
+ * anchorObject: Object,
+ * anchorOffset: number,
+ * focusObject: Object,
+ * focusOffset: number
+ * }}
+ * @see https://developer.chrome.com/extensions/automation#type-SetDocumentSelectionParams
+ */
+chrome.automation.SetDocumentSelectionParams;
+
+/**
* @constructor
- * @param {chrome.automation.EventType} type
- * @param {chrome.automation.AutomationNode} node
- * @param {string} eventFrom
+ * @see https://developer.chrome.com/extensions/automation#type-AutomationEvent
*/
-chrome.automation.AutomationEvent = function(type, node, eventFrom) {};
+chrome.automation.AutomationEvent = function() {};
/**
+ * The $(ref:automation.AutomationNode) to which the event was targeted.
* @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-target
*/
chrome.automation.AutomationEvent.prototype.target;
/**
+ * The type of the event.
* @type {!chrome.automation.EventType}
+ * @see https://developer.chrome.com/extensions/automation#type-type
*/
chrome.automation.AutomationEvent.prototype.type;
/**
+ * The source of this event.
* @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-eventFrom
*/
chrome.automation.AutomationEvent.prototype.eventFrom;
/**
* @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-mouseX
*/
chrome.automation.AutomationEvent.prototype.mouseX;
/**
* @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-mouseY
*/
chrome.automation.AutomationEvent.prototype.mouseY;
+/**
+ * Stops this event from further processing except for any remaining listeners
+ * on $(ref:AutomationEvent.target).
+ * @see https://developer.chrome.com/extensions/automation#method-stopPropagation
+ */
chrome.automation.AutomationEvent.prototype.stopPropagation = function() {};
+
/**
* @typedef {{
- * target: chrome.automation.AutomationNode,
+ * target: !chrome.automation.AutomationNode,
* type: !chrome.automation.TreeChangeType
* }}
+ * @see https://developer.chrome.com/extensions/automation#type-TreeChange
*/
chrome.automation.TreeChange;
/**
+ * @enum {string}
+ * @see https://developer.chrome.com/extensions/automation#type-TreeChangeObserverFilter
+ */
+chrome.automation.TreeChangeObserverFilter = {
+ noTreeChanges: 'noTreeChanges',
+ liveRegionTreeChanges: 'liveRegionTreeChanges',
+ textMarkerChanges: 'textMarkerChanges',
+ allTreeChanges: 'allTreeChanges',
+};
+
+/**
* @constructor
+ * @see https://developer.chrome.com/extensions/automation#type-AutomationNode
*/
chrome.automation.AutomationNode = function() {};
-
/**
- * @param {number} tabId
- * @param {function(chrome.automation.AutomationNode):void} callback
+ * The root node of the tree containing this AutomationNode.
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-root
*/
-chrome.automation.getTree = function(tabId, callback) {};
-
-/** @param {function(!chrome.automation.AutomationNode):void} callback */
-chrome.automation.getDesktop = function(callback) {};
+chrome.automation.AutomationNode.prototype.root;
-/** @param {function(!chrome.automation.AutomationNode):void} callback */
-chrome.automation.getFocus = function(callback) {};
+/**
+ * Whether this AutomationNode is a root node.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-isRootNode
+ */
+chrome.automation.AutomationNode.prototype.isRootNode;
/**
- * @param {string} filter
- * @param {function(chrome.automation.TreeChange) : void}
- * observer
+ * The role of this node.
+ * @type {!chrome.automation.RoleType}
+ * @see https://developer.chrome.com/extensions/automation#type-role
*/
-chrome.automation.addTreeChangeObserver = function(filter, observer) {};
+chrome.automation.AutomationNode.prototype.role;
/**
- * @param {function(chrome.automation.TreeChange) : void} observer
+ * The $(ref:automation.StateType)s describing this node.
+ * @see https://developer.chrome.com/extensions/automation#type-state
*/
-chrome.automation.removeTreeChangeObserver = function(observer) {};
+chrome.automation.AutomationNode.prototype.state;
-//
-// End auto generated externs; do not edit.
-//
+/**
+ * The rendered location (as a bounding box) of this node in global screen coordinates.
+ * @type {!chrome.automation.Rect}
+ * @see https://developer.chrome.com/extensions/automation#type-location
+ */
+chrome.automation.AutomationNode.prototype.location;
+/**
+ * Computes the bounding box of a subrange of this node in global screen
+ * coordinates. Returns the same as |location| if range information is not
+ * available. The start and end indices are zero-based offsets into the node's
+ * "name" string attribute.
+ * @param {number} startIndex
+ * @param {number} endIndex
+ * @return {!chrome.automation.Rect}
+ * @see https://developer.chrome.com/extensions/automation#method-boundsForRange
+ */
+chrome.automation.AutomationNode.prototype.boundsForRange = function(startIndex, endIndex) {};
+/**
+ * The purpose of the node, other than the role, if any.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-description
+ */
+chrome.automation.AutomationNode.prototype.description;
/**
- * @type {chrome.automation.RoleType}
+ * The help text for the node, if any.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-help
*/
-chrome.automation.AutomationNode.prototype.role;
+chrome.automation.AutomationNode.prototype.help;
+/**
+ * The accessible name for this node, via the <a href="http://www.w3.org/TR/wai-aria/roles#namecalculation"> Accessible Name Calculation</a> process.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-name
+ */
+chrome.automation.AutomationNode.prototype.name;
/**
- * @type {!Object<chrome.automation.StateType, boolean>}
+ * The source of the name. Use NameFromType to convert this to a string.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-nameFrom
*/
-chrome.automation.AutomationNode.prototype.state;
+chrome.automation.AutomationNode.prototype.nameFrom;
+/**
+ * The value for this node: for example the <code>value</code> attribute of an <code>&lt;input&gt; element.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-value
+ */
+chrome.automation.AutomationNode.prototype.value;
/**
- * @type {chrome.automation.NameFromType}
+ * The HTML tag for this element, if this node is an HTML element.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-htmlTag
*/
-chrome.automation.AutomationNode.prototype.nameFrom;
+chrome.automation.AutomationNode.prototype.htmlTag;
+/**
+ * The level of a heading or tree item.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-hierarchicalLevel
+ */
+chrome.automation.AutomationNode.prototype.hierarchicalLevel;
/**
- * @type {chrome.automation.DescriptionFromType}
+ * The start and end index of each word in an inline text box.
+ * @type {!Array<number>}
+ * @see https://developer.chrome.com/extensions/automation#type-wordStarts
*/
-chrome.automation.AutomationNode.prototype.descriptionFrom;
+chrome.automation.AutomationNode.prototype.wordStarts;
+/**
+ * @type {!Array<number>}
+ * @see https://developer.chrome.com/extensions/automation#type-wordEnds
+ */
+chrome.automation.AutomationNode.prototype.wordEnds;
/**
- * @type {number}
+ * 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-controls</code></a>.
+ * @type {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#type-controls
*/
-chrome.automation.AutomationNode.prototype.indexInParent;
+chrome.automation.AutomationNode.prototype.controls;
+/**
+ * The nodes, if any, which form a description for this node.
+ * @type {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#type-describedBy
+ */
+chrome.automation.AutomationNode.prototype.describedBy;
/**
- * @type {string}
+ * 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>.
+ * @type {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#type-flowTo
*/
-chrome.automation.AutomationNode.prototype.name;
+chrome.automation.AutomationNode.prototype.flowTo;
/**
- * @type {string}
+ * The nodes, if any, which form a label for this element. Generally, the text from these elements will also be exposed as the element's accessible name, via the $(ref:automation.AutomationNode.name) attribute.
+ * @type {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#type-labelledBy
*/
-chrome.automation.AutomationNode.prototype.description;
+chrome.automation.AutomationNode.prototype.labelledBy;
+/**
+ * The node referred to by <code>aria-activedescendant</code>, where applicable
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-activeDescendant
+ */
+chrome.automation.AutomationNode.prototype.activeDescendant;
/**
+ * The URL that this link will navigate to.
* @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-url
*/
chrome.automation.AutomationNode.prototype.url;
-
/**
+ * The URL of this document.
* @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-docUrl
*/
chrome.automation.AutomationNode.prototype.docUrl;
-
/**
+ * The title of this document.
* @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-docTitle
*/
-chrome.automation.AutomationNode.prototype.value;
+chrome.automation.AutomationNode.prototype.docTitle;
+/**
+ * Whether this document has finished loading.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-docLoaded
+ */
+chrome.automation.AutomationNode.prototype.docLoaded;
/**
+ * The proportion (out of 1.0) that this doc has completed loading.
* @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-docLoadingProgress
*/
-chrome.automation.AutomationNode.prototype.textSelStart;
-
+chrome.automation.AutomationNode.prototype.docLoadingProgress;
/**
+ * Scrollable container attributes.
* @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollX
*/
-chrome.automation.AutomationNode.prototype.textSelEnd;
-
+chrome.automation.AutomationNode.prototype.scrollX;
/**
- * @type {Array<number>}
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollXMin
*/
-chrome.automation.AutomationNode.prototype.wordStarts;
-
+chrome.automation.AutomationNode.prototype.scrollXMin;
/**
- * @type {Array<number>}
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollXMax
*/
-chrome.automation.AutomationNode.prototype.wordEnds;
-
+chrome.automation.AutomationNode.prototype.scrollXMax;
/**
- * @type {chrome.automation.AutomationRootNode}
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollY
*/
-chrome.automation.AutomationNode.prototype.root;
-
+chrome.automation.AutomationNode.prototype.scrollY;
/**
- * @type {chrome.automation.AutomationNode}
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollYMin
*/
-chrome.automation.AutomationNode.prototype.firstChild;
-
+chrome.automation.AutomationNode.prototype.scrollYMin;
/**
- * @type {chrome.automation.AutomationNode}
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-scrollYMax
*/
-chrome.automation.AutomationNode.prototype.lastChild;
-
+chrome.automation.AutomationNode.prototype.scrollYMax;
/**
- * @type {chrome.automation.AutomationNode}
+ * The character index of the start of the selection within this editable text element; -1 if no selection.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-textSelStart
*/
-chrome.automation.AutomationNode.prototype.nextSibling;
-
+chrome.automation.AutomationNode.prototype.textSelStart;
/**
- * @type {chrome.automation.AutomationNode}
+ * The character index of the end of the selection within this editable text element; -1 if no selection.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-textSelEnd
*/
-chrome.automation.AutomationNode.prototype.previousSibling;
-
+chrome.automation.AutomationNode.prototype.textSelEnd;
/**
- * @type {chrome.automation.AutomationNode}
+ * The input type, like email or number.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-textInputType
*/
-chrome.automation.AutomationNode.prototype.parent;
-
+chrome.automation.AutomationNode.prototype.textInputType;
/**
- * @type {!Array<chrome.automation.AutomationNode>}
+ * An array of indexes of the start position of each text marker.
+ * @see https://developer.chrome.com/extensions/automation#type-markerStarts
*/
-chrome.automation.AutomationNode.prototype.children;
-
+chrome.automation.AutomationNode.prototype.markerStarts;
/**
- * @type {{top: number, left: number, height: number, width: number}|undefined}
+ * An array of indexes of the end position of each text marker.
+ * @see https://developer.chrome.com/extensions/automation#type-markerEnds
*/
-chrome.automation.AutomationNode.prototype.location;
-
+chrome.automation.AutomationNode.prototype.markerEnds;
/**
- * @param {number} start
- * @param {number} end
- * @return {
- * ({top: number, left: number, height: number, width: number})|undefined}
+ * An array of numerical types indicating the type of each text marker, such as a spelling error.
+ * @see https://developer.chrome.com/extensions/automation#type-markerTypes
*/
-chrome.automation.AutomationNode.prototype.boundsForRange =
- function(start, end) {};
-
-
-chrome.automation.AutomationNode.prototype.makeVisible = function() {};
-
+chrome.automation.AutomationNode.prototype.markerTypes;
/**
- * @param {chrome.automation.EventType} eventType
- * @param {function(!chrome.automation.AutomationEvent) : void} callback
- * @param {boolean} capture
+ * The anchor node of the tree selection, if any.
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-anchorObject
*/
-chrome.automation.AutomationNode.prototype.addEventListener =
- function(eventType, callback, capture) {};
+chrome.automation.AutomationNode.prototype.anchorObject;
+/**
+ * The anchor offset of the tree selection, if any.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-anchorOffset
+ */
+chrome.automation.AutomationNode.prototype.anchorOffset;
/**
- * @param {chrome.automation.EventType} eventType
- * @param {function(!chrome.automation.AutomationEvent) : void} callback
- * @param {boolean} capture
+ * The focus node of the tree selection, if any.
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-focusObject
*/
-chrome.automation.AutomationNode.prototype.removeEventListener =
- function(eventType, callback, capture) {};
+chrome.automation.AutomationNode.prototype.focusObject;
+/**
+ * The focus offset of the tree selection, if any.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-focusOffset
+ */
+chrome.automation.AutomationNode.prototype.focusOffset;
/**
- * @type {chrome.automation.AutomationNode}
+ * The current value for this range.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-valueForRange
*/
-chrome.automation.TreeChange.prototype.target;
+chrome.automation.AutomationNode.prototype.valueForRange;
+/**
+ * The minimum possible value for this range.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-minValueForRange
+ */
+chrome.automation.AutomationNode.prototype.minValueForRange;
/**
- * @type {chrome.automation.TreeChangeType}
+ * The maximum possible value for this range.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-maxValueForRange
*/
-chrome.automation.TreeChange.prototype.type;
+chrome.automation.AutomationNode.prototype.maxValueForRange;
+/**
+ * The number of rows in this table.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableRowCount
+ */
+chrome.automation.AutomationNode.prototype.tableRowCount;
-chrome.automation.AutomationNode.prototype.doDefault = function() {};
+/**
+ * The number of columns in this table.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableColumnCount
+ */
+chrome.automation.AutomationNode.prototype.tableColumnCount;
+/**
+ * The zero-based index of the column that this cell is in.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableCellColumnIndex
+ */
+chrome.automation.AutomationNode.prototype.tableCellColumnIndex;
-chrome.automation.AutomationNode.prototype.focus = function() {};
+/**
+ * The number of columns that this cell spans (default is 1).
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableCellColumnSpan
+ */
+chrome.automation.AutomationNode.prototype.tableCellColumnSpan;
+/**
+ * The zero-based index of the row that this cell is in.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableCellRowIndex
+ */
+chrome.automation.AutomationNode.prototype.tableCellRowIndex;
-chrome.automation.AutomationNode.prototype.showContextMenu = function() {};
+/**
+ * The number of rows that this cell spans (default is 1).
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-tableCellRowSpan
+ */
+chrome.automation.AutomationNode.prototype.tableCellRowSpan;
+/**
+ * The type of region if this is the root of a live region. Possible values are 'polite' and 'assertive'.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-liveStatus
+ */
+chrome.automation.AutomationNode.prototype.liveStatus;
-chrome.automation.AutomationNode.prototype
- .setSequentialFocusNavigationStartingPoint = function() {};
+/**
+ * The value of aria-relevant for a live region.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-liveRelevant
+ */
+chrome.automation.AutomationNode.prototype.liveRelevant;
+/**
+ * The value of aria-atomic for a live region.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-liveAtomic
+ */
+chrome.automation.AutomationNode.prototype.liveAtomic;
/**
- * @param {number} start
- * @param {number} end
+ * The value of aria-busy for a live region.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-liveBusy
*/
-chrome.automation.AutomationNode.prototype.setSelection =
- function(start, end) {};
+chrome.automation.AutomationNode.prototype.liveBusy;
-/** @type {string} */
+/**
+ * The type of live region if this node is inside a live region.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-containerLiveStatus
+ */
chrome.automation.AutomationNode.prototype.containerLiveStatus;
-/** @type {string} */
+/**
+ * The value of aria-relevant if this node is inside a live region.
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-containerLiveRelevant
+ */
chrome.automation.AutomationNode.prototype.containerLiveRelevant;
-/** @type {boolean} */
+/**
+ * The value of aria-atomic if this node is inside a live region.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-containerLiveAtomic
+ */
chrome.automation.AutomationNode.prototype.containerLiveAtomic;
-/** @type {boolean} */
+/**
+ * The value of aria-busy if this node is inside a live region.
+ * @type {boolean}
+ * @see https://developer.chrome.com/extensions/automation#type-containerLiveBusy
+ */
chrome.automation.AutomationNode.prototype.containerLiveBusy;
-/** @type {string} */
-chrome.automation.AutomationNode.prototype.language;
-
-/** @type {string} */
-chrome.automation.AutomationNode.prototype.liveStatus;
-
-/** @type {string} */
-chrome.automation.AutomationNode.prototype.liveRelevant;
+/**
+ * A map containing all HTML attributes and their values
+ * @see https://developer.chrome.com/extensions/automation#type-htmlAttributes
+ */
+chrome.automation.AutomationNode.prototype.htmlAttributes;
-/** @type {boolean} */
-chrome.automation.AutomationNode.prototype.liveAtomic;
+/**
+ * The input type of a text field, such as "text" or "email".
+ * @type {string}
+ * @see https://developer.chrome.com/extensions/automation#type-inputType
+ */
+chrome.automation.AutomationNode.prototype.inputType;
-/** @type {boolean} */
-chrome.automation.AutomationNode.prototype.liveBusy;
+/**
+ * Walking the tree.
+ * @type {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#type-children
+ */
+chrome.automation.AutomationNode.prototype.children;
+/**
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-parent
+ */
+chrome.automation.AutomationNode.prototype.parent;
/**
- * @param {Object} findParams
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-firstChild
*/
-chrome.automation.AutomationNode.prototype.find = function(findParams) {};
+chrome.automation.AutomationNode.prototype.firstChild;
/**
- * @param {Object} findParams
- * @return {Array<chrome.automation.AutomationNode>}
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-lastChild
*/
-chrome.automation.AutomationNode.prototype.findAll = function(findParams) {};
+chrome.automation.AutomationNode.prototype.lastChild;
/**
- * @type {string}
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-previousSibling
*/
-chrome.automation.AutomationNode.prototype.inputType;
+chrome.automation.AutomationNode.prototype.previousSibling;
/**
- * @type {(chrome.automation.AutomationNode|undefined)}
+ * @type {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#type-nextSibling
*/
-chrome.automation.AutomationNode.prototype.anchorObject;
+chrome.automation.AutomationNode.prototype.nextSibling;
/**
- * @param {{anchorObject: !chrome.automation.AutomationNode,
- * anchorOffset: number,
- * focusObject: !chrome.automation.AutomationNode,
- * focusOffset: number}} selectionParams
+ * The index of this node in its parent node's list of children. If this is the root node, this will be undefined.
+ * @type {number}
+ * @see https://developer.chrome.com/extensions/automation#type-indexInParent
*/
-chrome.automation.setDocumentSelection = function(selectionParams) {};
+chrome.automation.AutomationNode.prototype.indexInParent;
/**
- * @type {(number|undefined)}
+ * Does the default action based on this node's role. This is generally the same
+ * action that would result from clicking the node such as expanding a treeitem,
+ * toggling a checkbox, selecting a radiobutton, or activating a button.
+ * @see https://developer.chrome.com/extensions/automation#method-doDefault
*/
-chrome.automation.anchorOffset;
+chrome.automation.AutomationNode.prototype.doDefault = function() {};
/**
- * @type {(chrome.automation.AutomationNode|undefined)}
+ * Places focus on this node.
+ * @see https://developer.chrome.com/extensions/automation#method-focus
*/
-chrome.automation.AutomationNode.prototype.focusObject;
+chrome.automation.AutomationNode.prototype.focus = function() {};
/**
- * @type {(Array<number>|undefined)}
+ * Request a data url for the contents of an image, optionally resized. Pass
+ * zero for maxWidth and/or maxHeight for the original size.
+ * @param {number} maxWidth
+ * @param {number} maxHeight
+ * @see https://developer.chrome.com/extensions/automation#method-getImageData
*/
-chrome.automation.AutomationNode.prototype.lineBreaks;
+chrome.automation.AutomationNode.prototype.getImageData = function(maxWidth, maxHeight) {};
/**
- * @type {(number|undefined)}
+ * Scrolls this node to make it visible.
+ * @see https://developer.chrome.com/extensions/automation#method-makeVisible
*/
-chrome.automation.focusOffset;
+chrome.automation.AutomationNode.prototype.makeVisible = function() {};
/**
- * @type {(chrome.automation.AutomationNode|undefined)}
+ * Sets selection within a text field.
+ * @param {number} startIndex
+ * @param {number} endIndex
+ * @see https://developer.chrome.com/extensions/automation#method-setSelection
*/
-chrome.automation.AutomationNode.prototype.activeDescendant;
+chrome.automation.AutomationNode.prototype.setSelection = function(startIndex, endIndex) {};
-/** @type {number} */
-chrome.automation.AutomationNode.prototype.tableCellColumnIndex;
+/**
+ * Clears focus and sets this node as the starting point for the next time the
+ * user presses Tab or Shift+Tab.
+ * @see https://developer.chrome.com/extensions/automation#method-setSequentialFocusNavigationStartingPoint
+ */
+chrome.automation.AutomationNode.prototype.setSequentialFocusNavigationStartingPoint = function() {};
-/** @type {number} */
-chrome.automation.AutomationNode.prototype.tableCellRowIndex;
+/**
+ * Adds a listener for the given event type and event phase.
+ * @param {!chrome.automation.EventType} eventType
+ * @param {function(!chrome.automation.AutomationEvent):void} listener A
+ * listener for events on an <code>AutomationNode</code>.
+ * @param {boolean} capture
+ * @see https://developer.chrome.com/extensions/automation#method-addEventListener
+ */
+chrome.automation.AutomationNode.prototype.addEventListener = function(eventType, listener, capture) {};
-/** @type {number} */
-chrome.automation.AutomationNode.prototype.tableColumnCount;
+/**
+ * Removes a listener for the given event type and event phase.
+ * @param {!chrome.automation.EventType} eventType
+ * @param {function(!chrome.automation.AutomationEvent):void} listener A
+ * listener for events on an <code>AutomationNode</code>.
+ * @param {boolean} capture
+ * @see https://developer.chrome.com/extensions/automation#method-removeEventListener
+ */
+chrome.automation.AutomationNode.prototype.removeEventListener = function(eventType, listener, capture) {};
-/** @type {number} */
-chrome.automation.AutomationNode.prototype.tableRowCount;
+/**
+ * <p>Gets the first node in this node's subtree which matches the given CSS
+ * selector and is within the same DOM context.</p><p>If this node doesn't
+ * correspond directly with an HTML node in the DOM, querySelector will be run
+ * on this node's nearest HTML node ancestor. Note that this may result in the
+ * query returning a node which is not a descendant of this node.</p><p>If the
+ * selector matches a node which doesn't directly correspond to an automation
+ * node (for example an element within an ARIA widget, where the ARIA widget
+ * forms one node of the automation tree, or an element which is hidden from
+ * accessibility via hiding it using CSS or using aria-hidden), this will return
+ * the nearest ancestor which does correspond to an automation node.</p>
+ * @param {string} selector
+ * @param {function(!chrome.automation.AutomationNode):void} callback Called
+ * when the result for a <code>query</code> is available.
+ * @see https://developer.chrome.com/extensions/automation#method-domQuerySelector
+ */
+chrome.automation.AutomationNode.prototype.domQuerySelector = function(selector, callback) {};
-/** @type {number} */
-chrome.automation.AutomationNode.prototype.hierarchicalLevel;
+/**
+ * Finds the first AutomationNode in this node's subtree which matches the given
+ * search parameters.
+ * @param {!chrome.automation.FindParams} params
+ * @return {!chrome.automation.AutomationNode}
+ * @see https://developer.chrome.com/extensions/automation#method-find
+ */
+chrome.automation.AutomationNode.prototype.find = function(params) {};
-/** @type {Array<number>} */
-chrome.automation.AutomationNode.prototype.markerTypes;
-/** @type {Array<number>} */
-chrome.automation.AutomationNode.prototype.markerStarts;
-/** @type {Array<number>} */
-chrome.automation.AutomationNode.prototype.markerEnds;
+/**
+ * Finds all the AutomationNodes in this node's subtree which matches the given
+ * search parameters.
+ * @param {!chrome.automation.FindParams} params
+ * @return {!Array<!chrome.automation.AutomationNode>}
+ * @see https://developer.chrome.com/extensions/automation#method-findAll
+ */
+chrome.automation.AutomationNode.prototype.findAll = function(params) {};
-/** @type {boolean} */
-chrome.automation.AutomationNode.prototype.ariaReadonly;
+/**
+ * Returns whether this node matches the given $(ref:automation.FindParams).
+ * @param {!chrome.automation.FindParams} params
+ * @return {boolean}
+ * @see https://developer.chrome.com/extensions/automation#method-matches
+ */
+chrome.automation.AutomationNode.prototype.matches = function(params) {};
-/** @type {chrome.automation.AutomationNode} */
-chrome.automation.AutomationNode.prototype.nextOnLine;
-/** @type {chrome.automation.AutomationNode} */
-chrome.automation.AutomationNode.prototype.previousOnLine;
-/** @type {Object<string, string>} */
-chrome.automation.AutomationNode.prototype.htmlAttributes;
+/**
+ * Get the automation tree for the tab with the given tabId, or the current tab
+ * if no tabID is given, enabling automation if necessary. Returns a tree with a
+ * placeholder root node; listen for the "loadComplete" event to get a
+ * notification that the tree has fully loaded (the previous root node reference
+ * will stop working at or before this point).
+ * @param {number} tabId
+ * @param {function(!chrome.automation.AutomationNode):void} callback Called
+ * when the <code>AutomationNode</code> for the page is available.
+ * @see https://developer.chrome.com/extensions/automation#method-getTree
+ */
+chrome.automation.getTree = function(tabId, callback) {};
/**
- * @extends {chrome.automation.AutomationNode}
- * @constructor
+ * Get the automation tree for the whole desktop which consists of all on screen
+ * views. Note this API is currently only supported on Chrome OS.
+ * @param {function(!chrome.automation.AutomationNode):void} callback Called
+ * when the <code>AutomationNode</code> for the page is available.
+ * @see https://developer.chrome.com/extensions/automation#method-getDesktop
*/
-chrome.automation.AutomationRootNode = function() {};
+chrome.automation.getDesktop = function(callback) {};
/**
- * @type {chrome.automation.AutomationNode}
+ * Get the automation node that currently has focus, globally. Will return null
+ * if none of the nodes in any loaded trees have focus.
+ * @param {function(!chrome.automation.AutomationNode):void} callback Called
+ * with the <code>AutomationNode</code> that currently has focus.
+ * @see https://developer.chrome.com/extensions/automation#method-getFocus
*/
-chrome.automation.AutomationRootNode.prototype.anchorObject;
+chrome.automation.getFocus = function(callback) {};
/**
- * @type {number}
+ * Add a tree change observer. Tree change observers are static/global, they
+ * listen to changes across all trees. Pass a filter to determine what specific
+ * tree changes to listen to, and note that listnening to all tree changes can
+ * be expensive.
+ * @param {!chrome.automation.TreeChangeObserverFilter} filter
+ * @param {function(!chrome.automation.TreeChange):void} observer A listener for
+ * changes on the <code>AutomationNode</code> tree.
+ * @see https://developer.chrome.com/extensions/automation#method-addTreeChangeObserver
*/
-chrome.automation.AutomationRootNode.prototype.anchorOffset;
+chrome.automation.addTreeChangeObserver = function(filter, observer) {};
/**
- * @type {chrome.automation.AutomationNode}
+ * Remove a tree change observer.
+ * @param {function(!chrome.automation.TreeChange):void} observer A listener for
+ * changes on the <code>AutomationNode</code> tree.
+ * @see https://developer.chrome.com/extensions/automation#method-removeTreeChangeObserver
*/
-chrome.automation.AutomationRootNode.prototype.focusObject;
+chrome.automation.removeTreeChangeObserver = function(observer) {};
/**
- * @type {number}
+ * Sets the selection in a tree. This creates a selection in a single tree
+ * (anchorObject and focusObject must have the same root). Everything in the
+ * tree between the two node/offset pairs gets included in the selection. The
+ * anchor is where the user started the selection, while the focus is the point
+ * at which the selection gets extended e.g. when dragging with a mouse or using
+ * the keyboard. For nodes with the role staticText, the offset gives the
+ * character offset within the value where the selection starts or ends,
+ * respectively.
+ * @param {!chrome.automation.SetDocumentSelectionParams} params
+ * @see https://developer.chrome.com/extensions/automation#method-setDocumentSelection
*/
-chrome.automation.AutomationRootNode.prototype.focusOffset;
+chrome.automation.setDocumentSelection = function(params) {};

Powered by Google App Engine
This is Rietveld 408576698