blob: 6f532a96ac2d02a0bbfd915c340d4631b00699b5 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Definitions for the Chromium extensions API used by ChromeVox.
*
* @externs
*/
/**
* @const
*/
chrome.app = {};
/**
* @const
*/
chrome.extension = {};
/** @type {!Object|undefined} */
chrome.extension.lastError = {};
/**
* @type {string|undefined}
*/
chrome.extension.lastError.message;
/** @type {boolean|undefined} */
chrome.extension.inIncognitoContext;
/**
* @param {string|Object.<string>=} opt_extensionIdOrConnectInfo Either the
* extensionId to connect to, in which case connectInfo params can be
* passed in the next optional argument, or the connectInfo params.
* @param {Object.<string>=} opt_connectInfo The connectInfo object,
* if arg1 was the extensionId to connect to.
* @return {Port} New port.
*/
chrome.extension.connect = function(
opt_extensionIdOrConnectInfo, opt_connectInfo) {};
/**
* @return {Window} The global JS object for the background page.
*/
chrome.extension.getBackgroundPage = function() {};
/**
* @param {string} path A path to a resource within an extension expressed
* relative to it's install directory.
* @return {string} The fully-qualified URL to the resource.
*/
chrome.extension.getURL = function(path) {};
/**
* @param {function(boolean): void} callback Callback function.
*/
chrome.extension.isAllowedIncognitoAccess = function(callback) {};
/**
* @param {string|*} extensionIdOrRequest Either the extensionId to send the
* request to, in which case the request is passed as the next arg, or the
* request.
* @param {*=} opt_request The request value, if arg1 was the extensionId.
* @param {function(*): void=} opt_callback The callback function which
* takes a JSON response object sent by the handler of the request.
*/
chrome.extension.sendMessage = function(
extensionIdOrRequest, opt_request, opt_callback) {};
/** @type {ChromeEvent} */
chrome.extension.onConnect;
/** @type {ChromeEvent} */
chrome.extension.onConnectExternal;
/** @type {ChromeEvent} */
chrome.extension.onMessage;
/**
* @const
*/
chrome.runtime = {};
/** @type {!Object|undefined} */
chrome.runtime.lastError = {};
/**
* @type {string|undefined}
*/
chrome.runtime.lastError.message;
/** @type {string} */
chrome.runtime.id;
/**
* @param {function(!Window=): void} callback Callback function.
*/
chrome.runtime.getBackgroundPage = function(callback) {};
/**
* Manifest information returned from chrome.runtime.getManifest. See
* http://developer.chrome.com/extensions/manifest.html. Note that there are
* several other fields not included here. They should be added to these externs
* as needed.
* @constructor
*/
chrome.runtime.Manifest = function() {};
/** @type {string} */
chrome.runtime.Manifest.prototype.name;
/** @type {string} */
chrome.runtime.Manifest.prototype.version;
/** @type {number|undefined} */
chrome.runtime.Manifest.prototype.manifest_version;
/** @type {string|undefined} */
chrome.runtime.Manifest.prototype.description;
/** @type {!chrome.runtime.Manifest.Oauth2|undefined} */
chrome.runtime.Manifest.prototype.oauth2;
/**
* Oauth2 info in the manifest.
* See http://developer.chrome.com/apps/app_identity.html#update_manifest.
* @constructor
*/
chrome.runtime.Manifest.Oauth2 = function() {};
/** @type {string} */
chrome.runtime.Manifest.Oauth2.prototype.client_id;
/**@type {!Array.<string>} */
chrome.runtime.Manifest.Oauth2.prototype.scopes;
/**
* http://developer.chrome.com/extensions/runtime.html#method-getManifest
* @return {!chrome.runtime.Manifest} The full manifest file of the app or
* extension.
*/
chrome.runtime.getManifest = function() {};
/**
* @param {string} path A path to a resource within an extension expressed
* relative to it's install directory.
* @return {string} The fully-qualified URL to the resource.
*/
chrome.runtime.getURL = function(path) {};
/**
* @param {string|!Object.<string>=} opt_extensionIdOrConnectInfo Either the
* extensionId to connect to, in which case connectInfo params can be
* passed in the next optional argument, or the connectInfo params.
* @param {!Object.<string>=} opt_connectInfo The connectInfo object,
* if arg1 was the extensionId to connect to.
* @return {!Port} New port.
*/
chrome.runtime.connect = function(
opt_extensionIdOrConnectInfo, opt_connectInfo) {};
/**
* @param {string|*} extensionIdOrMessage Either the extensionId to send the
* message to, in which case the message is passed as the next arg, or the
* message itself.
* @param {(*|Object|function(*): void)=} opt_messageOrOptsOrCallback
* One of:
* The message, if arg1 was the extensionId.
* The options for message sending, if arg1 was the message and this
* argument is not a function.
* The callback, if arg1 was the message and this argument is a function.
* @param {(Object|function(*): void)=} opt_optsOrCallback
* Either the options for message sending, if arg2 was the message,
* or the callback.
* @param {function(*): void=} opt_callback The callback function which
* takes a JSON response object sent by the handler of the request.
*/
chrome.runtime.sendMessage = function(
extensionIdOrMessage, opt_messageOrOptsOrCallback, opt_optsOrCallback,
opt_callback) {};
/**
*
* @param {function(!Object)} callback
*/
chrome.runtime.getPlatformInfo = function(callback) {};
/** @type {!chrome.runtime.PortEvent} */
chrome.runtime.onConnect;
/** @type {!chrome.runtime.PortEvent} */
chrome.runtime.onConnectExternal;
/** @type {!chrome.runtime.MessageSenderEvent} */
chrome.runtime.onMessage;
/** @type {!chrome.runtime.MessageSenderEvent} */
chrome.runtime.onMessageExternal;
/**
* Event whose listeners take a Port parameter.
* @constructor
*/
chrome.runtime.PortEvent = function() {};
/**
* @param {function(!Port): void} callback Callback.
*/
chrome.runtime.PortEvent.prototype.addListener = function(callback) {};
/**
* @param {function(!Port): void} callback Callback.
*/
chrome.runtime.PortEvent.prototype.removeListener = function(callback) {};
/**
* @param {function(!Port): void} callback Callback.
* @return {boolean}
*/
chrome.runtime.PortEvent.prototype.hasListener = function(callback) {};
/**
* @return {boolean}
*/
chrome.runtime.PortEvent.prototype.hasListeners = function() {};
/**
* Event whose listeners take a MessageSender and additional parameters.
* @constructor
*/
chrome.runtime.MessageSenderEvent = function() {};
/**
* @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
* callback Callback.
*/
chrome.runtime.MessageSenderEvent.prototype.addListener = function(callback) {};
/**
* @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
* callback Callback.
*/
chrome.runtime.MessageSenderEvent.prototype.removeListener = function(callback)
{};
/**
* @param {function(*, !MessageSender, function(*): void): (boolean|undefined)}
* callback Callback.
* @return {boolean}
*/
chrome.runtime.MessageSenderEvent.prototype.hasListener = function(callback) {};
/**
* @return {boolean}
*/
chrome.runtime.MessageSenderEvent.prototype.hasListeners = function() {};
/**
* @const
*/
chrome.tabs = {};
/**
* @param {number?} windowId Window Id.
* @param {Object?} options parameters of image capture, such as the format of
* the resulting image.
* @param {function(string): void} callback Callback function which accepts
* the data URL string of a JPEG encoding of the visible area of the
* captured tab. May be assigned to the 'src' property of an HTML Image
* element for display.
*/
chrome.tabs.captureVisibleTab = function(windowId, options, callback) {};
/**
* @param {number} tabId Tab Id.
* @param {Object.<string>=} opt_connectInfo Info Object.
*/
chrome.tabs.connect = function(tabId, opt_connectInfo) {};
/**
* @param {Object} createProperties Info object.
* @param {function(Tab): void=} opt_callback The callback function.
*/
chrome.tabs.create = function(createProperties, opt_callback) {};
/**
* @param {number?} tabId Tab id.
* @param {function(string): void} callback Callback function.
*/
chrome.tabs.detectLanguage = function(tabId, callback) {};
/**
* @param {number?} tabId Tab id.
* @param {Object?} details An object which may have 'code', 'file',
* or 'allFrames' keys.
* @param {function(): void=} opt_callback Callback function.
*/
chrome.tabs.executeScript = function(tabId, details, opt_callback) {};
/**
* @param {number} tabId Tab id.
* @param {function(Tab): void} callback Callback.
*/
chrome.tabs.get = function(tabId, callback) {};
/**
* Note: as of 2012-04-12, this function is no longer documented on
* the public web pages, but there are still existing usages
*
* @param {number?} windowId Window id.
* @param {function(Array.<Tab>): void} callback Callback.
*/
chrome.tabs.getAllInWindow = function(windowId, callback) {};
/**
* @param {function(Tab): void} callback Callback.
*/
chrome.tabs.getCurrent = function(callback) {};
/**
* Note: as of 2012-04-12, this function is no longer documented on
* the public web pages, but there are still existing usages.
*
* @param {number?} windowId Window id.
* @param {function(Tab): void} callback Callback.
*/
chrome.tabs.getSelected = function(windowId, callback) {};
/**
* @param {Object.<string, (number|Array.<number>)>} highlightInfo
* An object with 'windowId' (number) and 'tabs'
* (number or array of numbers) keys.
* @param {function(Window): void} callback Callback function invoked
* with each appropriate Window.
*/
chrome.tabs.highlight = function(highlightInfo, callback) {};
/**
* @param {number?} tabId Tab id.
* @param {Object?} details An object which may have 'code', 'file',
* or 'allFrames' keys.
* @param {function(): void=} opt_callback Callback function.
*/
chrome.tabs.insertCSS = function(tabId, details, opt_callback) {};
/**
* @param {number} tabId Tab id.
* @param {Object.<string, number>} moveProperties An object with 'index'
* and optional 'windowId' keys.
* @param {function(Tab): void=} opt_callback Callback.
*/
chrome.tabs.move = function(tabId, moveProperties, opt_callback) {};
/**
* @param {Object.<string, (number|string)>} queryInfo An object which may have
* 'active', 'pinned', 'highlighted', 'status', 'title', 'url', 'windowId',
* and 'windowType' keys.
* @param {function(Array.<Tab>): void=} opt_callback Callback.
* @return {!Array.<Tab>}
*/
chrome.tabs.query = function(queryInfo, opt_callback) {};
/**
* @param {number=} opt_tabId Tab id.
* @param {Object.<string, boolean>=} opt_reloadProperties An object which
* may have a 'bypassCache' key.
* @param {function(): void=} opt_callback The callback function invoked
* after the tab has been reloaded.
*/
chrome.tabs.reload = function(opt_tabId, opt_reloadProperties, opt_callback) {};
/**
* @param {number|Array.<number>} tabIds A tab ID or an array of tab IDs.
* @param {function(Tab): void=} opt_callback Callback.
*/
chrome.tabs.remove = function(tabIds, opt_callback) {};
/**
* @param {number} tabId Tab id.
* @param {*} request The request value of any type.
* @param {function(*): void=} opt_callback The callback function which
* takes a JSON response object sent by the handler of the request.
*/
chrome.tabs.sendMessage = function(tabId, request, opt_callback) {};
/**
* @param {number} tabId Tab id.
* @param {*} request The request value of any type.
* @param {function(*): void=} opt_callback The callback function which
* takes a JSON response object sent by the handler of the request.
*/
chrome.tabs.sendRequest = function(tabId, request, opt_callback) {};
/**
* @param {number} tabId Tab id.
* @param {Object.<string, (string|boolean)>} updateProperties An object which
* may have 'url' or 'selected' key.
* @param {function(Tab): void=} opt_callback Callback.
*/
chrome.tabs.update = function(tabId, updateProperties, opt_callback) {};
/** @type {ChromeEvent} */
chrome.tabs.onActiveChanged;
/** @type {ChromeEvent} */
chrome.tabs.onActivated;
/** @type {ChromeEvent} */
chrome.tabs.onAttached;
/** @type {ChromeEvent} */
chrome.tabs.onCreated;
/** @type {ChromeEvent} */
chrome.tabs.onDetached;
/** @type {ChromeEvent} */
chrome.tabs.onHighlightChanged;
/** @type {ChromeEvent} */
chrome.tabs.onMoved;
/** @type {ChromeEvent} */
chrome.tabs.onRemoved;
/** @type {ChromeEvent} */
chrome.tabs.onUpdated;
/** @type {ChromeEvent} */
chrome.tabs.onReplaced;
/**
* @const
*/
chrome.windows = {};
/**
* @param {Object=} opt_createData May have many keys to specify parameters.
* Or the callback.
* @param {function(ChromeWindow): void=} opt_callback Callback.
*/
chrome.windows.create = function(opt_createData, opt_callback) {};
/**
* @param {number} id Window id.
* @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
* @param {function(!ChromeWindow): void=} opt_callback Callback when
* opt_getInfo is an object.
*/
chrome.windows.get = function(id, opt_getInfo, opt_callback) {};
/**
* @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
* @param {function(!Array.<!ChromeWindow>): void=} opt_callback Callback.
*/
chrome.windows.getAll = function(opt_getInfo, opt_callback) {};
/**
* @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
* @param {function(ChromeWindow): void=} opt_callback Callback.
*/
chrome.windows.getCurrent = function(opt_getInfo, opt_callback) { };
/**
* @param {Object=} opt_getInfo May have 'populate' key. Or the callback.
* @param {function(ChromeWindow): void=} opt_callback Callback.
*/
chrome.windows.getLastFocused = function(opt_getInfo, opt_callback) { };
/**
* @param {number} tabId Tab Id.
* @param {function(): void=} opt_callback Callback.
*/
chrome.windows.remove = function(tabId, opt_callback) {};
/**
* @param {number} tabId Tab Id.
* @param {Object} updateProperties An object which may have many keys for
* various options.
* @param {function(): void=} opt_callback Callback.
*/
chrome.windows.update = function(tabId, updateProperties, opt_callback) {};
/** @type {ChromeEvent} */
chrome.windows.onCreated;
/** @type {ChromeEvent} */
chrome.windows.onFocusChanged;
/** @type {ChromeEvent} */
chrome.windows.onRemoved;
/**
* @type {number}
*/
chrome.windows.WINDOW_ID_NONE;
/**
* @type {number}
*/
chrome.windows.WINDOW_ID_CURRENT;
/**
* @const
*/
chrome.i18n = {};
/**
* @param {function(Array.<string>): void} callback The callback function which
* accepts an array of the accept languages of the browser, such as
* 'en-US','en','zh-CN'.
*/
chrome.i18n.getAcceptLanguages = function(callback) {};
/**
* @param {string} messageName
* @param {(string|Array.<string>)=} opt_args
* @return {string}
*/
chrome.i18n.getMessage = function(messageName, opt_args) {};
/**
* Chrome Text-to-Speech API.
* @const
*/
chrome.tts = {};
/**
* An event from the TTS engine to communicate the status of an utterance.
* @constructor
*/
function TtsEvent() {}
/** @type {string} */
TtsEvent.prototype.type;
/** @type {number} */
TtsEvent.prototype.charIndex;
/** @type {string} */
TtsEvent.prototype.errorMessage;
/**
* A description of a voice available for speech synthesis.
* @constructor
*/
function TtsVoice() {}
/** @type {string} */
TtsVoice.prototype.voiceName;
/** @type {string} */
TtsVoice.prototype.lang;
/** @type {string} */
TtsVoice.prototype.gender;
/** @type {string} */
TtsVoice.prototype.extensionId;
/** @type {Array.<string>} */
TtsVoice.prototype.eventTypes;
/**
* Gets an array of all available voices.
* @param {function(Array.<TtsVoice>)=} opt_callback An optional callback
* function.
*/
chrome.tts.getVoices = function(opt_callback) {};
/**
* Checks if the engine is currently speaking.
* @param {function(boolean)=} opt_callback The callback function.
*/
chrome.tts.isSpeaking = function(opt_callback) {};
/**
* Speaks text using a text-to-speech engine.
* @param {string} utterance The text to speak, either plain text or a complete,
* well-formed SSML document. Speech engines that do not support SSML will
* strip away the tags and speak the text. The maximum length of the text is
* 32,768 characters.
* @param {Object=} opt_options The speech options.
* @param {function()=} opt_callback Called right away, before speech finishes.
*/
chrome.tts.speak = function(utterance, opt_options, opt_callback) {};
/**
* Stops any current speech.
*/
chrome.tts.stop = function() {};
/**
* @const
*/
chrome.history = {};
/**
* @param {Object.<string, string>} details Object with a 'url' key.
*/
chrome.history.addUrl = function(details) {};
/**
* @param {function(): void} callback Callback function.
*/
chrome.history.deleteAll = function(callback) {};
/**
* @param {Object.<string, string>} range Object with 'startTime'
* and 'endTime' keys.
* @param {function(): void} callback Callback function.
*/
chrome.history.deleteRange = function(range, callback) {};
/**
* @param {Object.<string, string>} details Object with a 'url' key.
*/
chrome.history.deleteUrl = function(details) {};
/**
* @param {Object.<string, string>} details Object with a 'url' key.
* @param {function(!Array.<!VisitItem>): void} callback Callback function.
* @return {!Array.<!VisitItem>}
*/
chrome.history.getVisits = function(details, callback) {};
/**
* @param {Object.<string, string>} query Object with a 'text' (string)
* key and optional 'startTime' (number), 'endTime' (number) and
* 'maxResults' keys.
* @param {function(!Array.<!HistoryItem>): void} callback Callback function.
* @return {!Array.<!HistoryItem>}
*/
chrome.history.search = function(query, callback) {};
/** @type {ChromeEvent} */
chrome.history.onVisitRemoved;
/** @type {ChromeEvent} */
chrome.history.onVisited;
/**
* @const
*/
chrome.permissions = {};
/**
* @typedef {{
* permissions: (Array.<string>|undefined),
* origins: (Array.<string>|undefined)
* }}
* @see http://developer.chrome.com/extensions/permissions.html#type-Permissions
*/
chrome.permissions.Permissions;
/**
* @param {!chrome.permissions.Permissions} permissions
* @param {function(boolean): void} callback Callback function.
*/
chrome.permissions.contains = function(permissions, callback) {};
/**
* @param {function(!chrome.permissions.Permissions): void} callback
* Callback function.
*/
chrome.permissions.getAll = function(callback) {};
/**
* @param {!chrome.permissions.Permissions} permissions
* @param {function(boolean): void=} opt_callback Callback function.
*/
chrome.permissions.remove = function(permissions, opt_callback) {};
/**
* @param {!chrome.permissions.Permissions} permissions
* @param {function(boolean): void=} opt_callback Callback function.
*/
chrome.permissions.request = function(permissions, opt_callback) {};
/** @type {!ChromeEvent} */
chrome.permissions.onAdded;
/** @type {!ChromeEvent} */
chrome.permissions.onRemoved;
/**
*/
chrome.power = {};
/**
* @param {string} level A string describing the degree to which power
* management should be disabled, should be either "system" or "display".
*/
chrome.power.requestKeepAwake = function(level) {};
/**
* Releases a request previously made via requestKeepAwake().
*/
chrome.power.releaseKeepAwake = function() {};
/**
* @constructor
*/
function Tab() {}
/** @type {number} */
Tab.prototype.id;
/** @type {number} */
Tab.prototype.index;
/** @type {number} */
Tab.prototype.windowId;
/** @type {number} */
Tab.prototype.openerTabId;
/** @type {boolean} */
Tab.prototype.highlighted;
/** @type {boolean} */
Tab.prototype.active;
/** @type {boolean} */
Tab.prototype.pinned;
/** @type {string} */
Tab.prototype.url;
/** @type {string} */
Tab.prototype.title;
/** @type {string} */
Tab.prototype.favIconUrl;
/** @type {string} */
Tab.prototype.status;
/** @type {boolean} */
Tab.prototype.incognito;
/**
* @constructor
*/
function ChromeWindow() {}
/** @type {number} */
ChromeWindow.prototype.id;
/** @type {boolean} */
ChromeWindow.prototype.focused;
/** @type {number} */
ChromeWindow.prototype.top;
/** @type {number} */
ChromeWindow.prototype.left;
/** @type {number} */
ChromeWindow.prototype.width;
/** @type {number} */
ChromeWindow.prototype.height;
/** @type {Array.<Tab>} */
ChromeWindow.prototype.tabs;
/** @type {boolean} */
ChromeWindow.prototype.incognito;
/** @type {string} */
ChromeWindow.prototype.type;
/** @type {string} */
ChromeWindow.prototype.state;
/** @type {boolean} */
ChromeWindow.prototype.alwaysOnTop;
/**
* @constructor
*/
function ChromeEvent() {}
/** @param {Function} callback */
ChromeEvent.prototype.addListener = function(callback) {};
/** @param {Function} callback */
ChromeEvent.prototype.removeListener = function(callback) {};
/**
* @param {Function} callback
* @return {boolean}
*/
ChromeEvent.prototype.hasListener = function(callback) {};
/** @return {boolean} */
ChromeEvent.prototype.hasListeners = function() {};
/**
* @constructor
*/
function Port() {}
/** @type {string} */
Port.prototype.name;
/** @type {ChromeEvent} */
Port.prototype.onDisconnect;
/** @type {ChromeEvent} */
Port.prototype.onMessage;
/** @type {MessageSender} */
Port.prototype.sender;
/**
* @param {Object.<string>} obj Message object.
*/
Port.prototype.postMessage = function(obj) {};
/**
* Note: as of 2012-04-12, this function is no longer documented on
* the public web pages, but there are still existing usages.
*/
Port.prototype.disconnect = function() {};
/**
* @constructor
*/
function MessageSender() {}
/** @type {!Tab|undefined} */
MessageSender.prototype.tab;
/** @type {string|undefined} */
MessageSender.prototype.id;
/** @type {string|undefined} */
MessageSender.prototype.url;
/** @type {string|undefined} */
MessageSender.prototype.tlsChannelId;
/**
* @constructor
*/
function BookmarkTreeNode() {}
/** @type {string} */
BookmarkTreeNode.prototype.id;
/** @type {string} */
BookmarkTreeNode.prototype.parentId;
/** @type {number} */
BookmarkTreeNode.prototype.index;
/** @type {string} */
BookmarkTreeNode.prototype.url;
/** @type {string} */
BookmarkTreeNode.prototype.title;
/** @type {number} */
BookmarkTreeNode.prototype.dateAdded;
/** @type {number} */
BookmarkTreeNode.prototype.dateGroupModified;
/** @type {Array.<BookmarkTreeNode>} */
BookmarkTreeNode.prototype.children;
/**
* @constructor
*/
function Cookie() {}
/** @type {string} */
Cookie.prototype.name;
/** @type {string} */
Cookie.prototype.value;
/** @type {string} */
Cookie.prototype.domain;
/** @type {boolean} */
Cookie.prototype.hostOnly;
/** @type {string} */
Cookie.prototype.path;
/** @type {boolean} */
Cookie.prototype.secure;
/** @type {boolean} */
Cookie.prototype.httpOnly;
/** @type {boolean} */
Cookie.prototype.session;
/** @type {number} */
Cookie.prototype.expirationDate;
/** @type {string} */
Cookie.prototype.storeId;
/**
* @constructor
*/
function Debuggee() {}
/** @type {number} */
Debuggee.prototype.tabId;
/**
* @constructor
*/
function HistoryItem() {}
/** @type {string} */
HistoryItem.prototype.id;
/** @type {string} */
HistoryItem.prototype.url;
/** @type {string} */
HistoryItem.prototype.title;
/** @type {number} */
HistoryItem.prototype.lastVisitTime;
/** @type {number} */
HistoryItem.prototype.visitCount;
/** @type {number} */
HistoryItem.prototype.typedCount;
/**
* @constructor
*/
function VisitItem() {}
/** @type {string} */
VisitItem.prototype.id;
/** @type {string} */
VisitItem.prototype.visitId;
/** @type {number} */
VisitItem.prototype.visitTime;
/** @type {string} */
VisitItem.prototype.referringVisitId;
/** @type {string} */
VisitItem.prototype.transition;
/**
* @const
*/
chrome.storage = {};
/**
* @const
*/
chrome.storage.local = {};
/**
* @param {string|!Object|null} keys
* @param {function(Object, string)} callback
*/
chrome.storage.local.get = function(keys, callback) {};
/**
* @param {Object} items
* @param {function()=} opt_callback
*/
chrome.storage.local.set = function(items, opt_callback) {};
/**
* @param {string|!Object|null} keys
* @param {function()=} opt_callback
*/
chrome.storage.local.remove = function(keys, opt_callback) {};
/**
* @type {ChromeEvent}
*/
chrome.storage.onChanged;
/**
* @const
*/
chrome.automation = {};
/**
* @constructor
*/
chrome.automation.AutomationNode = function() {};
/**
* @type {chrome.automation.RoleType}
*/
chrome.automation.AutomationNode.prototype.role;
/**
* @type {{
* name: string,
* value: string,
* wordStarts: Array.<number>,
* wordEnds: Array.<number>
* }}
*/
chrome.automation.AutomationNode.prototype.attributes;
/**
* @type {!chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.root;
/**
* @return {chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.firstChild = function() {};
/**
* @return {chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.lastChild = function() {};
/**
* @return {chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.nextSibling = function() {};
/**
* @return {chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.previousSibling = function() {};
/**
* @return {chrome.automation.AutomationNode}
*/
chrome.automation.AutomationNode.prototype.parent = function() {};
/**
* @return {!Array.<chrome.automation.AutomationNode>}
*/
chrome.automation.AutomationNode.prototype.children = function() {};
/**
* @type {{top: number, left: number, height: number, width: number}}
*/
chrome.automation.AutomationNode.prototype.location;
/**
* @param {chrome.automation.EventType} eventType
* @param {function(chrome.automation.AutomationNode) : void} callback
* @param {boolean} capture
*/
chrome.automation.AutomationNode.prototype.addEventListener =
function(eventType, callback, capture) {};
/**
* @param {chrome.automation.EventType} eventType
* @param {function(chrome.automation.AutomationNode) : void} callback
* @param {boolean} capture
*/
chrome.automation.AutomationNode.prototype.removeEventListener =
function(eventType, callback, capture) {};
chrome.automation.AutomationNode.prototype.focus = function() {};
/**
* @param {function(chrome.automation.AutomationNode)} callback
*/
chrome.automation.getDesktop = function(callback) {};
/**
* @param {function(chrome.automation.AutomationNode)} callback
*/
chrome.automation.getTree = function(callback) {};
/**
* @const
*/
chrome.commands = {};
/**
* @type {ChromeEvent}
*/
chrome.commands.onCommand;
// Begin auto generated externs; do not edit.
// The following was generated from tools/json_schema_compiler/compiler.py.
/**
* Possible events fired on an $(ref:automation.AutomationNode).
* @enum {string}
*/
chrome.automation.EventType = {
activedescendantchanged: 'activedescendantchanged',
alert: 'alert',
ariaAttributeChanged: 'ariaAttributeChanged',
autocorrectionOccured: 'autocorrectionOccured',
blur: 'blur',
checkedStateChanged: 'checkedStateChanged',
childrenChanged: 'childrenChanged',
focus: 'focus',
hide: 'hide',
hover: 'hover',
invalidStatusChanged: 'invalidStatusChanged',
layoutComplete: 'layoutComplete',
liveRegionChanged: 'liveRegionChanged',
loadComplete: 'loadComplete',
locationChanged: 'locationChanged',
menuEnd: 'menuEnd',
menuListItemSelected: 'menuListItemSelected',
menuListValueChanged: 'menuListValueChanged',
menuPopupEnd: 'menuPopupEnd',
menuPopupStart: 'menuPopupStart',
menuStart: 'menuStart',
rowCollapsed: 'rowCollapsed',
rowCountChanged: 'rowCountChanged',
rowExpanded: 'rowExpanded',
scrollPositionChanged: 'scrollPositionChanged',
scrolledToAnchor: 'scrolledToAnchor',
selectedChildrenChanged: 'selectedChildrenChanged',
selectedTextChanged: 'selectedTextChanged',
selection: 'selection',
selectionAdd: 'selectionAdd',
selectionRemove: 'selectionRemove',
show: 'show',
textChanged: 'textChanged',
textInserted: 'textInserted',
textRemoved: 'textRemoved',
textSelectionChanged: 'textSelectionChanged',
valueChanged: 'valueChanged'
};
/**
* Describes the purpose of an $(ref:automation.AutomationNode).
* @enum {string}
*/
chrome.automation.RoleType = {
alertDialog: 'alertDialog',
alert: 'alert',
annotation: 'annotation',
application: 'application',
article: 'article',
banner: 'banner',
browser: 'browser',
busyIndicator: 'busyIndicator',
button: 'button',
buttonDropDown: 'buttonDropDown',
canvas: 'canvas',
cell: 'cell',
checkBox: 'checkBox',
client: 'client',
colorWell: 'colorWell',
columnHeader: 'columnHeader',
column: 'column',
comboBox: 'comboBox',
complementary: 'complementary',
contentInfo: 'contentInfo',
definition: 'definition',
descriptionListDetail: 'descriptionListDetail',
descriptionListTerm: 'descriptionListTerm',
desktop: 'desktop',
dialog: 'dialog',
directory: 'directory',
disclosureTriangle: 'disclosureTriangle',
div: 'div',
document: 'document',
drawer: 'drawer',
editableText: 'editableText',
embeddedObject: 'embeddedObject',
footer: 'footer',
form: 'form',
grid: 'grid',
group: 'group',
growArea: 'growArea',
heading: 'heading',
helpTag: 'helpTag',
horizontalRule: 'horizontalRule',
iframe: 'iframe',
ignored: 'ignored',
imageMapLink: 'imageMapLink',
imageMap: 'imageMap',
image: 'image',
incrementor: 'incrementor',
inlineTextBox: 'inlineTextBox',
labelText: 'labelText',
legend: 'legend',
link: 'link',
listBoxOption: 'listBoxOption',
listBox: 'listBox',
listItem: 'listItem',
listMarker: 'listMarker',
list: 'list',
locationBar: 'locationBar',
log: 'log',
main: 'main',
marquee: 'marquee',
mathElement: 'mathElement',
math: 'math',
matte: 'matte',
menuBar: 'menuBar',
menuButton: 'menuButton',
menuItem: 'menuItem',
menuListOption: 'menuListOption',
menuListPopup: 'menuListPopup',
menu: 'menu',
navigation: 'navigation',
note: 'note',
outline: 'outline',
pane: 'pane',
paragraph: 'paragraph',
popUpButton: 'popUpButton',
presentational: 'presentational',
progressIndicator: 'progressIndicator',
radioButton: 'radioButton',
radioGroup: 'radioGroup',
region: 'region',
rootWebArea: 'rootWebArea',
rowHeader: 'rowHeader',
row: 'row',
rulerMarker: 'rulerMarker',
ruler: 'ruler',
svgRoot: 'svgRoot',
scrollArea: 'scrollArea',
scrollBar: 'scrollBar',
seamlessWebArea: 'seamlessWebArea',
search: 'search',
sheet: 'sheet',
slider: 'slider',
sliderThumb: 'sliderThumb',
spinButtonPart: 'spinButtonPart',
spinButton: 'spinButton',
splitGroup: 'splitGroup',
splitter: 'splitter',
staticText: 'staticText',
status: 'status',
systemWide: 'systemWide',
tabGroup: 'tabGroup',
tabList: 'tabList',
tabPanel: 'tabPanel',
tab: 'tab',
tableHeaderContainer: 'tableHeaderContainer',
table: 'table',
textArea: 'textArea',
textField: 'textField',
timer: 'timer',
titleBar: 'titleBar',
toggleButton: 'toggleButton',
toolbar: 'toolbar',
treeGrid: 'treeGrid',
treeItem: 'treeItem',
tree: 'tree',
unknown: 'unknown',
tooltip: 'tooltip',
valueIndicator: 'valueIndicator',
webArea: 'webArea',
window: 'window'
};
/**
* Describes characteristics of an $(ref:automation.AutomationNode).
* @enum {string}
*/
chrome.automation.StateType = {
busy: 'busy',
checked: 'checked',
collapsed: 'collapsed',
default: 'default',
disabled: 'disabled',
editable: 'editable',
enabled: 'enabled',
expanded: 'expanded',
focusable: 'focusable',
focused: 'focused',
haspopup: 'haspopup',
hovered: 'hovered',
indeterminate: 'indeterminate',
invisible: 'invisible',
linked: 'linked',
multiselectable: 'multiselectable',
offscreen: 'offscreen',
pressed: 'pressed',
protected: 'protected',
readOnly: 'readOnly',
required: 'required',
selectable: 'selectable',
selected: 'selected',
vertical: 'vertical',
visited: 'visited'
};
// End auto generated externs; do not edit.