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..587581843fe20267949f6b2ce0e9e5e74d76ee7d 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,247 +18,14 @@ chrome.automation = {}; |
/** |
* @enum {string} |
- */ |
-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: '', |
-}; |
- |
-/** |
- * @enum {string} |
- */ |
-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: '', |
-}; |
- |
-/** |
- * @enum {string} |
- */ |
-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' |
-}; |
- |
-/** |
- * @enum {string} |
+ * @see https://developer.chrome.com/extensions/automation#type-TreeChangeType |
*/ |
chrome.automation.TreeChangeType = { |
- nodeCreated: 'nodeCreated', |
- subtreeCreated: 'subtreeCreated', |
- nodeChanged: 'nodeChanged', |
- nodeRemoved: 'nodeRemoved', |
+ NODE_CREATED: 'nodeCreated', |
+ SUBTREE_CREATED: 'subtreeCreated', |
+ NODE_CHANGED: 'nodeChanged', |
+ TEXT_CHANGED: 'textChanged', |
+ NODE_REMOVED: 'nodeRemoved', |
}; |
/** |
@@ -270,428 +35,124 @@ chrome.automation.TreeChangeType = { |
* width: number, |
* height: number |
* }} |
+ * @see https://developer.chrome.com/extensions/automation#type-Rect |
*/ |
chrome.automation.Rect; |
/** |
* @typedef {{ |
- * role: (!chrome.automation.RoleType|undefined), |
+ * role: (string|undefined), |
* state: (Object|undefined), |
* attributes: (Object|undefined) |
* }} |
+ * @see https://developer.chrome.com/extensions/automation#type-FindParams |
*/ |
chrome.automation.FindParams; |
/** |
- * @constructor |
- * @param {chrome.automation.EventType} type |
- * @param {chrome.automation.AutomationNode} node |
- * @param {string} eventFrom |
- */ |
-chrome.automation.AutomationEvent = function(type, node, eventFrom) {}; |
- |
-/** |
- * @type {!chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationEvent.prototype.target; |
- |
-/** |
- * @type {!chrome.automation.EventType} |
- */ |
-chrome.automation.AutomationEvent.prototype.type; |
- |
-/** |
- * @type {string} |
+ * @typedef {{ |
+ * anchorObject: Object, |
+ * anchorOffset: number, |
+ * focusObject: Object, |
+ * focusOffset: number |
+ * }} |
+ * @see https://developer.chrome.com/extensions/automation#type-SetDocumentSelectionParams |
*/ |
-chrome.automation.AutomationEvent.prototype.eventFrom; |
+chrome.automation.SetDocumentSelectionParams; |
/** |
- * @type {number} |
+ * * @constructor |
+ * @see https://developer.chrome.com/extensions/automation#type-AutomationEvent |
*/ |
-chrome.automation.AutomationEvent.prototype.mouseX; |
- |
-/** |
- * @type {number} |
- */ |
-chrome.automation.AutomationEvent.prototype.mouseY; |
- |
-chrome.automation.AutomationEvent.prototype.stopPropagation = function() {}; |
+chrome.automation.AutomationEvent = 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; |
/** |
- * @constructor |
- */ |
-chrome.automation.AutomationNode = function() {}; |
- |
- |
-/** |
- * @param {number} tabId |
- * @param {function(chrome.automation.AutomationNode):void} callback |
- */ |
-chrome.automation.getTree = function(tabId, callback) {}; |
- |
-/** @param {function(!chrome.automation.AutomationNode):void} callback */ |
-chrome.automation.getDesktop = function(callback) {}; |
- |
-/** @param {function(!chrome.automation.AutomationNode):void} callback */ |
-chrome.automation.getFocus = function(callback) {}; |
- |
-/** |
- * @param {string} filter |
- * @param {function(chrome.automation.TreeChange) : void} |
- * observer |
- */ |
-chrome.automation.addTreeChangeObserver = function(filter, observer) {}; |
- |
-/** |
- * @param {function(chrome.automation.TreeChange) : void} observer |
- */ |
-chrome.automation.removeTreeChangeObserver = function(observer) {}; |
- |
-// |
-// End auto generated externs; do not edit. |
-// |
- |
- |
- |
-/** |
- * @type {chrome.automation.RoleType} |
- */ |
-chrome.automation.AutomationNode.prototype.role; |
- |
- |
-/** |
- * @type {!Object<chrome.automation.StateType, boolean>} |
- */ |
-chrome.automation.AutomationNode.prototype.state; |
- |
- |
-/** |
- * @type {chrome.automation.NameFromType} |
- */ |
-chrome.automation.AutomationNode.prototype.nameFrom; |
- |
- |
-/** |
- * @type {chrome.automation.DescriptionFromType} |
- */ |
-chrome.automation.AutomationNode.prototype.descriptionFrom; |
- |
- |
-/** |
- * @type {number} |
- */ |
-chrome.automation.AutomationNode.prototype.indexInParent; |
- |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.name; |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.description; |
- |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.url; |
- |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.docUrl; |
- |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.value; |
- |
- |
-/** |
- * @type {number} |
- */ |
-chrome.automation.AutomationNode.prototype.textSelStart; |
- |
- |
-/** |
- * @type {number} |
- */ |
-chrome.automation.AutomationNode.prototype.textSelEnd; |
- |
- |
-/** |
- * @type {Array<number>} |
- */ |
-chrome.automation.AutomationNode.prototype.wordStarts; |
- |
- |
-/** |
- * @type {Array<number>} |
- */ |
-chrome.automation.AutomationNode.prototype.wordEnds; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationRootNode} |
- */ |
-chrome.automation.AutomationNode.prototype.root; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationNode.prototype.firstChild; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationNode.prototype.lastChild; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationNode.prototype.nextSibling; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationNode.prototype.previousSibling; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.AutomationNode.prototype.parent; |
- |
- |
-/** |
- * @type {!Array<chrome.automation.AutomationNode>} |
- */ |
-chrome.automation.AutomationNode.prototype.children; |
- |
- |
-/** |
- * @type {{top: number, left: number, height: number, width: number}|undefined} |
- */ |
-chrome.automation.AutomationNode.prototype.location; |
- |
- |
-/** |
- * @param {number} start |
- * @param {number} end |
- * @return { |
- * ({top: number, left: number, height: number, width: number})|undefined} |
- */ |
-chrome.automation.AutomationNode.prototype.boundsForRange = |
- function(start, end) {}; |
- |
- |
-chrome.automation.AutomationNode.prototype.makeVisible = function() {}; |
- |
- |
-/** |
- * @param {chrome.automation.EventType} eventType |
- * @param {function(!chrome.automation.AutomationEvent) : void} callback |
- * @param {boolean} capture |
- */ |
-chrome.automation.AutomationNode.prototype.addEventListener = |
- function(eventType, callback, capture) {}; |
- |
- |
-/** |
- * @param {chrome.automation.EventType} eventType |
- * @param {function(!chrome.automation.AutomationEvent) : void} callback |
- * @param {boolean} capture |
- */ |
-chrome.automation.AutomationNode.prototype.removeEventListener = |
- function(eventType, callback, capture) {}; |
- |
- |
-/** |
- * @type {chrome.automation.AutomationNode} |
- */ |
-chrome.automation.TreeChange.prototype.target; |
- |
- |
-/** |
- * @type {chrome.automation.TreeChangeType} |
- */ |
-chrome.automation.TreeChange.prototype.type; |
- |
- |
-chrome.automation.AutomationNode.prototype.doDefault = function() {}; |
- |
- |
-chrome.automation.AutomationNode.prototype.focus = function() {}; |
- |
- |
-chrome.automation.AutomationNode.prototype.showContextMenu = function() {}; |
- |
- |
-chrome.automation.AutomationNode.prototype |
- .setSequentialFocusNavigationStartingPoint = function() {}; |
- |
- |
-/** |
- * @param {number} start |
- * @param {number} end |
- */ |
-chrome.automation.AutomationNode.prototype.setSelection = |
- function(start, end) {}; |
- |
-/** @type {string} */ |
-chrome.automation.AutomationNode.prototype.containerLiveStatus; |
- |
-/** @type {string} */ |
-chrome.automation.AutomationNode.prototype.containerLiveRelevant; |
- |
-/** @type {boolean} */ |
-chrome.automation.AutomationNode.prototype.containerLiveAtomic; |
- |
-/** @type {boolean} */ |
-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; |
- |
-/** @type {boolean} */ |
-chrome.automation.AutomationNode.prototype.liveAtomic; |
- |
-/** @type {boolean} */ |
-chrome.automation.AutomationNode.prototype.liveBusy; |
- |
- |
-/** |
- * @param {Object} findParams |
- */ |
-chrome.automation.AutomationNode.prototype.find = function(findParams) {}; |
- |
-/** |
- * @param {Object} findParams |
- * @return {Array<chrome.automation.AutomationNode>} |
- */ |
-chrome.automation.AutomationNode.prototype.findAll = function(findParams) {}; |
- |
-/** |
- * @type {string} |
- */ |
-chrome.automation.AutomationNode.prototype.inputType; |
- |
-/** |
- * @type {(chrome.automation.AutomationNode|undefined)} |
- */ |
-chrome.automation.AutomationNode.prototype.anchorObject; |
- |
-/** |
- * @param {{anchorObject: !chrome.automation.AutomationNode, |
- * anchorOffset: number, |
- * focusObject: !chrome.automation.AutomationNode, |
- * focusOffset: number}} selectionParams |
- */ |
-chrome.automation.setDocumentSelection = function(selectionParams) {}; |
- |
-/** |
- * @type {(number|undefined)} |
- */ |
-chrome.automation.anchorOffset; |
- |
-/** |
- * @type {(chrome.automation.AutomationNode|undefined)} |
- */ |
-chrome.automation.AutomationNode.prototype.focusObject; |
- |
-/** |
- * @type {(Array<number>|undefined)} |
+ * @enum {string} |
+ * @see https://developer.chrome.com/extensions/automation#type-TreeChangeObserverFilter |
*/ |
-chrome.automation.AutomationNode.prototype.lineBreaks; |
+chrome.automation.TreeChangeObserverFilter = { |
+ NO_TREE_CHANGES: 'noTreeChanges', |
+ LIVE_REGION_TREE_CHANGES: 'liveRegionTreeChanges', |
+ TEXT_MARKER_CHANGES: 'textMarkerChanges', |
+ ALL_TREE_CHANGES: 'allTreeChanges', |
+}; |
/** |
- * @type {(number|undefined)} |
+ * * @constructor |
+ * @see https://developer.chrome.com/extensions/automation#type-AutomationNode |
*/ |
-chrome.automation.focusOffset; |
+chrome.automation.AutomationNode = function() {}; |
/** |
- * @type {(chrome.automation.AutomationNode|undefined)} |
+ * 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.AutomationNode.prototype.activeDescendant; |
- |
-/** @type {number} */ |
-chrome.automation.AutomationNode.prototype.tableCellColumnIndex; |
- |
-/** @type {number} */ |
-chrome.automation.AutomationNode.prototype.tableCellRowIndex; |
- |
-/** @type {number} */ |
-chrome.automation.AutomationNode.prototype.tableColumnCount; |
- |
-/** @type {number} */ |
-chrome.automation.AutomationNode.prototype.tableRowCount; |
- |
-/** @type {number} */ |
-chrome.automation.AutomationNode.prototype.hierarchicalLevel; |
- |
-/** @type {Array<number>} */ |
-chrome.automation.AutomationNode.prototype.markerTypes; |
-/** @type {Array<number>} */ |
-chrome.automation.AutomationNode.prototype.markerStarts; |
-/** @type {Array<number>} */ |
-chrome.automation.AutomationNode.prototype.markerEnds; |
- |
-/** @type {boolean} */ |
-chrome.automation.AutomationNode.prototype.ariaReadonly; |
- |
-/** @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; |
+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) {}; |