Artem Titov 739351d476 Roll chromium_revision 95336cb92b..191d55580e (557816:557824)
Change log: 95336cb92b..191d55580e
Full diff: 95336cb92b..191d55580e

Roll chromium third_party 4e16929f46..3a8f2a9e1e
Change log: 4e16929f46..3a8f2a9e1e

Changed dependencies:
* src/tools: c44a3f5eca..f524a53b81
DEPS diff: 95336cb92b..191d55580e/DEPS

No update to Clang.

TBR=titovartem@google.com,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: Ic9c4a62b050383646e9fcf5cc07a5653c14ac06e
Reviewed-on: https://webrtc-review.googlesource.com/76120
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23205}
2018-05-11 11:17:05 +00:00

1748 lines
50 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// SSSSSSSSSSSSSSS TTTTTTTTTTTTTTTTTTTTTTT OOOOOOOOO PPPPPPPPPPPPPPPPP
// SS:::::::::::::::ST:::::::::::::::::::::T OO:::::::::OO P::::::::::::::::P
// S:::::SSSSSS::::::ST:::::::::::::::::::::T OO:::::::::::::OO P::::::PPPPPP:::::P
// S:::::S SSSSSSST:::::TT:::::::TT:::::TO:::::::OOO:::::::OPP:::::P P:::::P
// S:::::S TTTTTT T:::::T TTTTTTO::::::O O::::::O P::::P P:::::P
// S:::::S T:::::T O:::::O O:::::O P::::P P:::::P
// S::::SSSS P::::PPPPPP:::::P
// SS::::::SSSSS This file is generated. To update it, P:::::::::::::PP
// SSS::::::::SS run roll_closure_compiler. P::::PPPPPPPPP
// SSSSSS::::S P::::P
// S:::::S T:::::T O:::::O O:::::O P::::P
// S:::::S T:::::T O::::::O O::::::O P::::P
// SSSSSSS S:::::S TT:::::::TT O:::::::OOO:::::::OPP::::::PP
// S::::::SSSSSS:::::S T:::::::::T OO:::::::::::::OO P::::::::P
// S:::::::::::::::SS T:::::::::T OO:::::::::OO P::::::::P
// SSSSSSSSSSSSSSS TTTTTTTTTTT OOOOOOOOO PPPPPPPPPP
/*
* Copyright 2016 The Closure Compiler Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Closure compiler externs for the Polymer library.
* Originally part of the Polymer Project. Original license below.
*
* @externs
* @license
* Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
* This code may only be used under the BSD style license found at
* http://polymer.github.io/LICENSE.txt. The complete set of authors may be
* found at http://polymer.github.io/AUTHORS.txt. The complete set of
* contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt. Code
* distributed by Google as part of the polymer project is also subject to an
* additional IP rights grant found at http://polymer.github.io/PATENTS.txt.
*/
if (Math.random() < 1) {
throw "polymer externs should not be executed";
}
/**
* @param {!{is: string}} descriptor The Polymer descriptor of the element.
* @see https://github.com/Polymer/polymer/blob/0.8-preview/PRIMER.md#custom-element-registration
*/
var Polymer = function(descriptor) {};
/**
* Re-evaluates and applies custom CSS properties based on dynamic
* changes to this element's scope, such as adding or removing classes.
*
* For performance reasons, Polymer's custom CSS property shim relies
* on this explicit signal from the user to indicate when changes have
* been made that affect the values of custom properties.
*
* @param {Object=} properties Properties object which is mixed into
* the document root `customStyle` property. This argument provides a
* shortcut for setting `customStyle` and then calling `updateStyles`.
*
* @see http://polymer.github.io/polymer/
*/
Polymer.updateStyles = function(properties) {};
/** @constructor @extends {HTMLElement} */
var PolymerElement = function() {};
/**
* A mapping from ID to element in this Polymer Element's local DOM.
* @type {!Object}
*/
PolymerElement.prototype.$;
/**
* True if the element has been attached to the DOM.
* @type {boolean}
*/
PolymerElement.prototype.isAttached;
/**
* The root node of the element.
* @type {!Node}
*/
PolymerElement.prototype.root;
/**
* The root node for the element.
* Only exists if running under Shady Dom.
* You usually want to use `this.root`.
*
* @type {?Node|undefined}
*/
PolymerElement.prototype.shadyRoot;
/**
* Returns the first node in this elements local DOM that matches selector.
* @param {string} selector
* @return {Element} Element found by the selector, or null if not found.
*/
PolymerElement.prototype.$$ = function(selector) {};
/** @type {string} The Custom element tag name. */
PolymerElement.prototype.is;
/** @type {string} The native element this element extends. */
PolymerElement.prototype.extends;
/**
* An array of objects whose properties get added to this element.
* @see https://www.polymer-project.org/1.0/docs/devguide/behaviors.html
* @type {!Array<!Object>|undefined}
*/
PolymerElement.prototype.behaviors;
/**
* A string-separated list of dependent properties that should result in a
* change function being called. These observers differ from single-property
* observers in that the change handler is called asynchronously.
*
* @type {!Object<string, string>|undefined}
*/
PolymerElement.prototype.observers;
/** On create callback. */
PolymerElement.prototype.created = function() {};
/** On ready callback. */
PolymerElement.prototype.ready = function() {};
/** On registered callback. */
PolymerElement.prototype.registered = function() {};
/** On attached to the DOM callback. */
PolymerElement.prototype.attached = function() {};
/** On detached from the DOM callback. */
PolymerElement.prototype.detached = function() {};
/**
* Callback fired when an attribute on the element has been changed.
*
* @param {string} name The name of the attribute that changed.
*/
PolymerElement.prototype.attributeChanged = function(name) {};
/** @typedef {!{
* type: !Function,
* reflectToAttribute: (boolean|undefined),
* readOnly: (boolean|undefined),
* notify: (boolean|undefined),
* value: *,
* computed: (string|undefined),
* observer: (string|undefined)
* }} */
PolymerElement.PropertyConfig;
/** @typedef {!Object<string, (!Function|!PolymerElement.PropertyConfig)>} */
PolymerElement.Properties;
/** @type {!PolymerElement.Properties} */
PolymerElement.prototype.properties;
/** @type {!Object<string, *>} */
PolymerElement.prototype.hostAttributes;
/**
* An object that maps events to event handler function names.
* @type {!Object<string, string>}
*/
PolymerElement.prototype.listeners;
/**
* Force this element to distribute its children to its local dom.
* A user should call `distributeContent` if distribution has been
* invalidated due to changes to selectors on child elements that
* effect distribution that were not made via `Polymer.dom`.
* For example, if an element contains an insertion point with
* `<content select=".foo">` and a `foo` class is added to a child,
* then `distributeContent` must be called to update
* local dom distribution.
* @param {boolean} updateInsertionPoints Shady DOM does not detect
* <content> insertion that is nested in a sub-tree being appended.
* Set to true to distribute to newly added nested <content>'s.
*/
PolymerElement.prototype.distributeContent = function(updateInsertionPoints) {};
/**
* Return the element whose local dom within which this element is contained.
* @type {?Element}
*/
PolymerElement.prototype.domHost;
/**
* Notifies the event binding system of a change to a property.
* @param {string} path The path to set.
* @param {*=} value The value to send in the update notification.
* @param {boolean=} fromAbove When true, specifies that the change came from
* above this element and thus upward notification is not necessary.
* @return {boolean} True if notification actually took place, based on a dirty
* check of whether the new value was already known.
*/
PolymerElement.prototype.notifyPath = function(path, value, fromAbove) {};
/**
* @param {string} path Path that should be notified.
* @param {!Array<!PolymerSplice>} splices Array of splice records indicating
* ordered changes that occurred to the array.
*/
PolymerElement.prototype.notifySplices = function(path, splices) {};
/**
* Convienence method for setting a value to a path and notifying any
* elements bound to the same path.
*
* Note, if any part in the path except for the last is undefined,
* this method does nothing (this method does not throw when
* dereferencing undefined paths).
*
* @param {(string|Array<(string|number)>)} path Path to the value
* to read. The path may be specified as a string (e.g. `foo.bar.baz`)
* or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that
* bracketed expressions are not supported; string-based path parts
* *must* be separated by dots. Note that when dereferencing array
* indicies, the index may be used as a dotted part directly
* (e.g. `users.12.name` or `['users', 12, 'name']`).
* @param {*} value Value to set at the specified path.
* @param {Object=} root Root object from which the path is evaluated.
*/
PolymerElement.prototype.set = function(path, value, root) {};
/**
* Convienence method for reading a value from a path.
*
* Note, if any part in the path is undefined, this method returns
* `undefined` (this method does not throw when dereferencing undefined
* paths).
*
* @param {(string|Array<(string|number)>)} path Path to the value
* to read. The path may be specified as a string (e.g. `foo.bar.baz`)
* or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that
* bracketed expressions are not supported; string-based path parts
* *must* be separated by dots. Note that when dereferencing array
* indicies, the index may be used as a dotted part directly
* (e.g. `users.12.name` or `['users', 12, 'name']`).
* @param {Object=} root Root object from which the path is evaluated.
* @return {*} Value at the path, or `undefined` if any part of the path
* is undefined.
*/
PolymerElement.prototype.get = function(path, root) {};
/**
* Adds items onto the end of the array at the path specified.
*
* The arguments after `path` and return value match that of
* `Array.prototype.push`.
*
* This method notifies other paths to the same array that a
* splice occurred to the array.
*
* @param {string} path Path to array.
* @param {...*} var_args Items to push onto array
* @return {number} New length of the array.
*/
PolymerElement.prototype.push = function(path, var_args) {};
/**
* Removes an item from the end of array at the path specified.
*
* The arguments after `path` and return value match that of
* `Array.prototype.pop`.
*
* This method notifies other paths to the same array that a
* splice occurred to the array.
*
* @param {string} path Path to array.
* @return {*} Item that was removed.
*/
PolymerElement.prototype.pop = function(path) {};
/**
* Starting from the start index specified, removes 0 or more items
* from the array and inserts 0 or more new itms in their place.
*
* The arguments after `path` and return value match that of
* `Array.prototype.splice`.
*
* This method notifies other paths to the same array that a
* splice occurred to the array.
*
* @param {string} path Path to array.
* @param {number} start Index from which to start removing/inserting.
* @param {number} deleteCount Number of items to remove.
* @param {...*} var_args Items to insert into array.
* @return {!Array} Array of removed items.
*/
PolymerElement.prototype.splice = function(path, start, deleteCount, var_args) {};
/**
* Removes an item from the beginning of array at the path specified.
*
* The arguments after `path` and return value match that of
* `Array.prototype.pop`.
*
* This method notifies other paths to the same array that a
* splice occurred to the array.
*
* @param {string} path Path to array.
* @return {*} Item that was removed.
*/
PolymerElement.prototype.shift = function(path) {};
/**
* Adds items onto the beginning of the array at the path specified.
*
* The arguments after `path` and return value match that of
* `Array.prototype.push`.
*
* This method notifies other paths to the same array that a
* splice occurred to the array.
*
* @param {string} path Path to array.
* @param {...*} var_args Items to insert info array
* @return {number} New length of the array.
*/
PolymerElement.prototype.unshift = function(path, var_args) {};
/**
* Returns a list of element children distributed to this element's
* `<content>`.
*
* If this element contans more than one `<content>` in its
* local DOM, an optional selector may be passed to choose the desired
* content. This method differs from `getContentChildNodes` in that only
* elements are returned.
*
* @param {string=} slctr CSS selector to choose the desired
* `<content>`. Defaults to `content`.
* @return {!Array<!HTMLElement>} List of distributed nodes for the
* `<content>`.
*/
PolymerElement.prototype.getContentChildren = function(slctr) {};
/**
* Returns a list of nodes that are the effective childNodes. The effective
* childNodes list is the same as the element's childNodes except that
* any `<content>` elements are replaced with the list of nodes distributed
* to the `<content>`, the result of its `getDistributedNodes` method.
*
* @return {!Array<!Node>} List of effective child nodes.
*/
PolymerElement.prototype.getEffectiveChildNodes = function() {};
/**
* Returns a list of elements that are the effective children. The effective
* children list is the same as the element's children except that
* any `<content>` elements are replaced with the list of elements
* distributed to the `<content>`.
*
* @return {!Array<!Node>} List of effective children.
*/
PolymerElement.prototype.getEffectiveChildren = function() {};
/**
* Returns a string of text content that is the concatenation of the
* text content's of the element's effective childNodes (the elements
* returned by <a href="#getEffectiveChildNodes>getEffectiveChildNodes</a>.
*
* @return {string} A concatenated string of all effective childNode text
* content.
*/
PolymerElement.prototype.getEffectiveTextContent = function() {};
/**
* Returns the first effective child that match selector.
*
* @param {string} selector
* @return {?HTMLElement}
*/
PolymerElement.prototype.queryEffectiveChildren = function(selector) {};
/**
* Returns a list of effective children that match selector.
*
* @param {string} selector
* @return {!Array<!HTMLElement>}
*/
PolymerElement.prototype.queryAllEffectiveChildren = function(selector) {};
/**
* Fire an event.
*
* @param {string} type An event name.
* @param {*=} detail
* @param {{
* bubbles: (boolean|undefined),
* cancelable: (boolean|undefined),
* node: (!EventTarget|undefined)}=} options
* @return {Object} event
*/
PolymerElement.prototype.fire = function(type, detail, options) {};
/**
* Toggles the named boolean class on the host element, adding the class if
* bool is truthy and removing it if bool is falsey. If node is specified, sets
* the class on node instead of the host element.
* @param {string} name
* @param {boolean=} bool
* @param {HTMLElement=} node
*/
PolymerElement.prototype.toggleClass = function(name, bool, node) {};
/**
* Toggles the named boolean attribute on the host element, adding the attribute
* if bool is truthy and removing it if bool is falsey. If node is specified,
* sets the attribute on node instead of the host element.
* @param {string} name
* @param {boolean=} bool
* @param {HTMLElement=} node
*/
PolymerElement.prototype.toggleAttribute = function(name, bool, node) {};
/**
* Moves a boolean attribute from oldNode to newNode, unsetting the attribute
* (if set) on oldNode and setting it on newNode.
* @param {string} name
* @param {!HTMLElement} newNode
* @param {!HTMLElement} oldNode
*/
PolymerElement.prototype.attributeFollows = function(name, newNode, oldNode) {};
/**
* Convenience method to add an event listener on a given element, late bound to
* a named method on this element.
* @param {!EventTarget} node Element to add event listener to.
* @param {string} eventName Name of event to listen for.
* @param {string} methodName Name of handler method on this to call.
*/
PolymerElement.prototype.listen = function(node, eventName, methodName) {};
/**
* Convenience method to remove an event listener from a given element.
* @param {?EventTarget} node Element to remove event listener from.
* @param {string} eventName Name of event to stop listening for.
* @param {string} methodName Name of handler method on this to remove.
*/
PolymerElement.prototype.unlisten = function(node, eventName, methodName) {};
/**
* Override scrolling behavior to all direction, one direction, or none.
*
* Valid scroll directions:
* 'all': scroll in any direction
* 'x': scroll only in the 'x' direction
* 'y': scroll only in the 'y' direction
* 'none': disable scrolling for this node
*
* @param {string=} direction Direction to allow scrolling Defaults to all.
* @param {HTMLElement=} node Element to apply scroll direction setting.
* Defaults to this.
*/
PolymerElement.prototype.setScrollDirection = function(direction, node) {};
/**
* @param {!Function} method
* @param {number=} wait
* @return {number} A handle which can be used to cancel the job.
*/
PolymerElement.prototype.async = function(method, wait) {};
/**
* @param {...*} var_args
*/
PolymerElement.prototype.factoryImpl = function(var_args) {};
/**
* Apply style scoping to the specified container and all its descendants.
* @param {!Element} container Element to scope.
* @param {boolean} shouldObserve When true, monitors the container for changes
* and re-applies scoping for any future changes.
*/
PolymerElement.prototype.scopeSubtree = function(container, shouldObserve) {};
/**
* Aliases one data path as another, such that path notifications from one
* are routed to the other.
*
* @param {string} to Target path to link.
* @param {string} from Source path to link.
*/
PolymerElement.prototype.linkPaths = function(to, from) {}
/**
* Removes a data path alias previously established with `linkPaths`.
*
* Note, the path to unlink should be the target (`to`) used when
* linking the paths.
*
* @param {string} path Target path to unlink.
*/
PolymerElement.prototype.unlinkPaths = function(path) {}
/**
* Copies own properties (including accessor descriptors) from a source
* object to a target object.
*
* @param {?Object} target Target object to copy properties to.
* @param {?Object} source Source object to copy properties from.
* @return {?Object} Target object that was passed as first argument or source
* object if the target was null.
*/
PolymerElement.prototype.extend = function(target, source) {};
/** @const */
Polymer.Base = {};
/**
* Used by the promise-polyfill on its own.
*
* @param {!Function} method
* @param {number=} wait
* @return {number} A handle which can be used to cancel the job.
*/
Polymer.Base.async = function(method, wait) {};
/**
* @param {string} tag
* @param {!Object=} props
* @return {!Element}
*/
Polymer.Base.create = function(tag, props) {};
/**
* Copies own properties (including accessor descriptors) from a source
* object to a target object.
*
* @param {?Object} target Target object to copy properties to.
* @param {?Object} source Source object to copy properties from.
* @return {?Object} Target object that was passed as first argument or source
* object if the target was null.
*/
Polymer.Base.extend = function(target, source) {};
/**
* Returns a property descriptor object for the property specified.
*
* This method allows introspecting the configuration of a Polymer element's
* properties as configured in its `properties` object. Note, this method
* normalizes shorthand forms of the `properties` object into longhand form.
*
* @param {string} property Name of property to introspect.
* @return {Object} Property descriptor for specified property.
*/
Polymer.Base.getPropertyInfo = function(property) {};
/**
* Dynamically imports an HTML document.
* @param {string} href
* @param {Function=} onload
* @param {Function=} onerror
* @param {boolean=} async
*/
Polymer.Base.importHref = function(href, onload, onerror, async) {};
/**
* Copies props from a source object to a target object.
*
* Note, this method uses a simple `for...in` strategy for enumerating
* properties. To ensure only `ownProperties` are copied from source
* to target and that accessor implementations are copied, use `extend`.
*
* @param {!Object} target Target object to copy properties to.
* @param {?Object} source Source object to copy properties from.
* @return {!Object} Target object that was passed as first argument.
*/
Polymer.Base.mixin = function(target, source) {};
/**
* @param {string|!Array<string|number>} path
* @param {!Object=} root
* @return {*}
*/
Polymer.Base.get = function(path, root) {};
/**
* @param {string} type
* @param {*=} detail
* @param {!Object=} options
* @return {!CustomEvent}
*/
Polymer.Base.fire = function(type, detail, options) {};
/**
* For Polymer internal use only, except for
* github.com/Polymer/polymer/issues/4138
* @type {!function (!Node, ?string, *, ?Object)}
*/
Polymer.Base._computeFinalAnnotationValue;
/**
* @param {...*} var_args
* For Polymer-internal use only.
*/
Polymer.Base._warn = function(var_args) {};
/**
* @param {...*} var_args
* For Polymer-internal use only.
*/
Polymer.Base._error = function(var_args) {};
/** @const */
Polymer.Gestures = {};
/**
* @param {!Node} node
* @param {string} evType
* @param {?Function} handler
* @return {boolean}
* @deprecated Use addListener.
*/
Polymer.Gestures.add = function(node, evType, handler) {};
/**
* @param {!Node} node
* @param {string} evType
* @param {?Function} handler
* @return {boolean}
*/
Polymer.Gestures.addListener = function(node, evType, handler) {};
/**
* Gets the original target of the given event.
*
* Cheaper than Polymer.dom(ev).path[0];
* See https://github.com/Polymer/polymer/blob/master/src/standard/gestures.html#L191
*
* @param {Event} ev .
* @return {Element} The original target of the event.
*/
Polymer.Gestures.findOriginalTarget = function(ev) {};
/**
* @type {!Object}
*/
Polymer.Gestures.gestures = {};
/**
* @param {Node} node
* @param {string} value
*/
Polymer.Gestures.setTouchAction = function(node, value) {};
/**
* @type {!Object}
*/
Polymer.Gestures.gestures.tap = {};
/**
* Reset the tap gesture's state manually
* @type {function()}
*/
Polymer.Gestures.gestures.tap.reset = function() {};
/**
* @param {number} handle
*/
PolymerElement.prototype.cancelAsync = function(handle) {};
/**
* Call debounce to collapse multiple requests for a named task into one
* invocation, which is made after the wait time has elapsed with no new
* request. If no wait time is given, the callback is called at microtask timing
* (guaranteed to be before paint).
* @param {string} jobName
* @param {!Function} callback
* @param {number=} wait
*/
PolymerElement.prototype.debounce = function(jobName, callback, wait) {};
/**
* Cancels an active debouncer without calling the callback.
* @param {string} jobName
*/
PolymerElement.prototype.cancelDebouncer = function(jobName) {};
/**
* Calls the debounced callback immediately and cancels the debouncer.
* @param {string} jobName
*/
PolymerElement.prototype.flushDebouncer = function(jobName) {};
/**
* @param {string} jobName
* @return {boolean} True if the named debounce task is waiting to run.
*/
PolymerElement.prototype.isDebouncerActive = function(jobName) {};
/**
* Applies a CSS transform to the specified node, or this element if no node is
* specified. transform is specified as a string.
* @param {string} transform
* @param {HTMLElement=} node
*/
PolymerElement.prototype.transform = function(transform, node) {};
/**
* Transforms the specified node, or this element if no node is specified.
* @param {number|string} x
* @param {number|string} y
* @param {number|string} z
* @param {HTMLElement=} node
*/
PolymerElement.prototype.translate3d = function(x, y, z, node) {};
/**
* Dynamically imports an HTML document.
* @param {string} href
* @param {Function=} onload
* @param {Function=} onerror
* @param {boolean=} async
*/
PolymerElement.prototype.importHref = function(href, onload, onerror, async) {};
/**
* Checks whether an element is in this element's light DOM tree.
* @param {?Node} node The element to be checked.
* @return {boolean} true if node is in this element's light DOM tree.
*/
PolymerElement.prototype.isLightDescendant = function(node) {};
/**
* Checks whether an element is in this element's local DOM tree.
* @param {?Node} node The element to be checked.
* @return {boolean} true if node is in this element's local DOM tree.
*/
PolymerElement.prototype.isLocalDescendant = function(node) {};
/**
* Delete an element from an array.
* @param {!Array|string} array Path to array from which to remove the item (or
* the array itself).
* @param {*} item Item to remove
* @return {!Array} The array with the item removed.
*/
PolymerElement.prototype.arrayDelete = function(array, item) {};
/**
* Resolve a url to make it relative to the current doc.
* @param {string} url
* @return {string}
*/
PolymerElement.prototype.resolveUrl = function(url) {};
/**
* Re-evaluates and applies custom CSS properties based on dynamic
* changes to this element's scope, such as adding or removing classes
* in this element's local DOM.
*
* For performance reasons, Polymer's custom CSS property shim relies
* on this explicit signal from the user to indicate when changes have
* been made that affect the values of custom properties.
*
* @param {Object=} properties Properties object which, if provided is mixed
* into the element's `customStyle` property. This argument provides a
* shortcut for setting `customStyle` and then calling `updateStyles`.
*/
PolymerElement.prototype.updateStyles = function(properties) {};
/**
* @type {!Object<string, string|undefined>}
*/
PolymerElement.prototype.customStyle;
/**
* Convenience method for creating an element and configuring it.
* @param {string} tagName HTML tag name
* @param {IObject<string, *>=} properties Object of properties to configure on the instance
* @return {!Element}
*/
PolymerElement.prototype.create = function(tagName, properties) {};
/**
* Returns the computed style value for the given property.
* @param {string} property
* @return {string} the computed value
*/
PolymerElement.prototype.getComputedStyleValue = function(property) {};
/**
* Logs a message to the console.
*
* @param {...*} var_args
* @protected
*/
PolymerElement.prototype._log = function(var_args) {};
/**
* Logs a message to the console with a 'warn' level.
*
* @param {...*} var_args
* @protected
*/
PolymerElement.prototype._warn = function(var_args) {};
/**
* Logs a message to the console with an 'error' level.
*
* @param {...*} var_args
* @protected
*/
PolymerElement.prototype._error = function(var_args) {};
/**
* Formats string arguments together for a console log.
*
* @param {...*} var_args
* @return {!Array} The formatted array of args to a log function.
* @protected
*/
PolymerElement.prototype._logf = function(var_args) {};
/** @type {boolean} True after this.ready() has run */
PolymerElement.prototype._readied;
/**
* Do not call this function.
*
* @param {string} path .
* @param {*} value .
*/
PolymerElement.prototype._notifyPathUp = function(path, value) {};
/**
* Do not call this function.
*
* @param {string} path .
* @param {*} value .
*/
PolymerElement.prototype._pathEffector = function(path, value) {};
/**
* Do not call this function.
*
* @param {string} path .
* @param {*} value .
*/
PolymerElement.prototype._propertySetter = function(path, value) {};
/**
* Do not call this function.
*
* @param {string} path .
*/
PolymerElement.prototype._notifyChange = function(path) {};
/**
* A Polymer DOM API for manipulating DOM such that local DOM and light DOM
* trees are properly maintained.
*
* @constructor
*/
var PolymerDomApi = function() {};
/**
* @param {?Node} node
* @return {boolean}
*/
PolymerDomApi.prototype.deepContains = function(node) {};
/** @param {!Node} node */
PolymerDomApi.prototype.appendChild = function(node) {};
/**
* @param {!Node} oldNode
* @param {!Node} newNode
*/
PolymerDomApi.prototype.replaceChild = function(oldNode, newNode) {};
/**
* @param {!Node} node
* @param {?Node} beforeNode
*/
PolymerDomApi.prototype.insertBefore = function(node, beforeNode) {};
/** @param {!Node} node */
PolymerDomApi.prototype.removeChild = function(node) {};
/** @type {!Array<!HTMLElement>} */
PolymerDomApi.prototype.children;
/** @type {!Array<!Node>} */
PolymerDomApi.prototype.childNodes;
/** @type {?Node} */
PolymerDomApi.prototype.parentNode;
/** @type {?Node} */
PolymerDomApi.prototype.firstChild;
/** @type {?Node} */
PolymerDomApi.prototype.lastChild;
/** @type {?HTMLElement} */
PolymerDomApi.prototype.firstElementChild;
/** @type {?HTMLElement} */
PolymerDomApi.prototype.lastElementChild;
/** @type {?Node} */
PolymerDomApi.prototype.previousSibling;
/** @type {?Node} */
PolymerDomApi.prototype.nextSibling;
/** @type {?HTMLElement} */
PolymerDomApi.prototype.previousElementSibling;
/** @type {?HTMLElement} */
PolymerDomApi.prototype.nextElementSibling;
/** @type {string} */
PolymerDomApi.prototype.textContent;
/** @type {string} */
PolymerDomApi.prototype.innerHTML;
/** @type {?HTMLElement} */
PolymerDomApi.prototype.activeElement;
/**
* @param {string} selector
* @return {?HTMLElement}
*/
PolymerDomApi.prototype.querySelector = function(selector) {};
/**
* @param {string} selector
* @return {!Array<!HTMLElement>}
*/
PolymerDomApi.prototype.querySelectorAll = function(selector) {};
/** @return {!Array<!Node>} */
PolymerDomApi.prototype.getDistributedNodes = function() {};
/** @return {!Array<!Node>} */
PolymerDomApi.prototype.getDestinationInsertionPoints = function() {};
/** @return {?Node} */
PolymerDomApi.prototype.getOwnerRoot = function() {};
/**
* @param {string} attribute
* @param {string|number|boolean} value Values are converted to strings with
* ToString, so we accept number and boolean since both convert easily to
* strings.
*/
PolymerDomApi.prototype.setAttribute = function(attribute, value) {};
/** @param {string} attribute */
PolymerDomApi.prototype.removeAttribute = function(attribute) {};
/**
* @typedef {function(!PolymerDomApi.ObserveInfo)}
*/
PolymerDomApi.ObserveCallback;
/**
* @typedef {{
* target: !Node,
* addedNodes: !Array<!Node>,
* removedNodes: !Array<!Node>
* }}
*/
PolymerDomApi.ObserveInfo;
/**
* A virtual type for observer callback handles.
*
* @private @constructor
*/
PolymerDomApi.ObserveHandle = function() {};
/**
* Notifies callers about changes to the element's effective child nodes,
* the same list as returned by `getEffectiveChildNodes`.
*
* @param {!PolymerDomApi.ObserveCallback} callback The supplied callback
* is called with an `info` argument which is an object that provides
* the `target` on which the changes occurred, a list of any nodes
* added in the `addedNodes` array, and nodes removed in the
* `removedNodes` array.
*
* @return {!PolymerDomApi.ObserveHandle} Handle which is the argument to
* `unobserveNodes`.
*/
PolymerDomApi.prototype.observeNodes = function(callback) {};
/**
* Stops observing changes to the element's effective child nodes.
*
* @param {!PolymerDomApi.ObserveHandle} handle The handle for the
* callback that should no longer receive notifications. This
* handle is returned from `observeNodes`.
*/
PolymerDomApi.prototype.unobserveNodes = function(handle) {};
/** @type {?DOMTokenList} */
PolymerDomApi.prototype.classList;
/**
* @param {string} selector
* @return {!Array<!HTMLElement>}
*/
PolymerDomApi.prototype.queryDistributedElements = function(selector) {};
/**
* Returns a list of effective child nodes for this element.
*
* @return {!Array<!HTMLElement>}
*/
PolymerDomApi.prototype.getEffectiveChildNodes = function() {};
/**
* A Polymer Event API.
*
* @constructor
*/
var PolymerEventApi = function() {};
/** @type {?EventTarget} */
PolymerEventApi.prototype.rootTarget;
/** @type {?EventTarget} */
PolymerEventApi.prototype.localTarget;
/** @type {?Array<!Element>|undefined} */
PolymerEventApi.prototype.path;
/** @type {Event} */
PolymerEventApi.prototype.event;
/** @const */
Polymer.Async = {};
/**
* @param {function()} callback
* @param {number=} waitTime
* @return {number}
*/
Polymer.Async.run = function (callback, waitTime) {};
/**
* @param {number} handle
*/
Polymer.Async.cancel = function(handle) {};
/**
* polymer-onerror experiment relies on this private API, so expose it only
* to let the compilation work. Do not use in user code.
*/
Polymer.Async._atEndOfMicrotask = function() {};
/**
* Returns a Polymer-friendly API for manipulating DOM of a specified node or
* an event API for a specified event..
*
* @param {?Node|?Event} nodeOrEvent
* @return {!PolymerDomApi|!PolymerEventApi}
*/
Polymer.dom = function(nodeOrEvent) {};
Polymer.dom.flush = function() {};
/** @constructor */
Polymer.Debouncer = function() {};
Polymer.Debouncer.prototype = {
/**
* @param {function()} callback
* @param {number} wait
*/
go: function(callback, wait) {},
stop: function() {},
complete: function() {}
};
/** @param {!Polymer.Debouncer} debouncer */
Polymer.dom.addDebouncer = function(debouncer) {};
/**
* Returns whether the given object is an instance of a Polymer element.
* @param {*} object
* @return {boolean}
*/
Polymer.isInstance = function(object) {};
/** @const */
Polymer.CaseMap = {};
/**
* Convert a string from dash to camel-case.
* @param {string} dash
* @return {string} The string in camel-case.
*/
Polymer.CaseMap.dashToCamelCase = function(dash) {};
/**
* Convert a string from camel-case to dash format.
* @param {string} camel
* @return {string} The string in dash format.
*/
Polymer.CaseMap.camelToDashCase = function(camel) {};
/**
* A Polymer data structure abstraction.
*
* @param {?Array} userArray
* @constructor
*/
Polymer.Collection = function(userArray) {};
Polymer.Collection.prototype.initMap = function() {};
/**
* @param {*} item
*/
Polymer.Collection.prototype.add = function(item) {};
/**
* @param {number|string} key
*/
Polymer.Collection.prototype.removeKey = function(key) {};
/**
* @param {*} item
* @return {number|string} The key of the item removed.
*/
Polymer.Collection.prototype.remove = function(item) {};
/**
* @param {*} item
* @return {number|string} The key of the item.
*/
Polymer.Collection.prototype.getKey = function(item) {};
/**
* @return {!Array<number|string>} The key of the item removed.
*/
Polymer.Collection.prototype.getKeys = function() {};
/**
* @param {number|string} key
* @param {*} item
*/
Polymer.Collection.prototype.setItem = function(key, item) {};
/**
* @param {number|string} key
* @return {*} The item for the given key if present.
*/
Polymer.Collection.prototype.getItem = function(key) {};
/**
* @return {!Array} The items in the collection
*/
Polymer.Collection.prototype.getItems = function() {};
/**
* @param {!Array} userArray
* @return {!Polymer.Collection} A new Collection wrapping the given array.
*/
Polymer.Collection.get = function(userArray) {};
/**
* @param {!Array} userArray
* @param {!Array<!PolymerSplice>} splices
* @return {!Array<!PolymerKeySplice>} KeySplices with added and removed keys
*/
Polymer.Collection.applySplices = function(userArray, splices) {};
/**
* Settings pulled from
* https://github.com/Polymer/polymer/blob/master/lib/utils/settings.html
* @const
*/
Polymer.Settings = {};
/** @type {string} */
Polymer.Settings.dom;
/** @type {boolean} */
Polymer.Settings.wantShadow;
/** @type {boolean} */
Polymer.Settings.hasShadow;
/** @type {boolean} */
Polymer.Settings.nativeShadow;
/** @type {boolean} */
Polymer.Settings.useShadow;
/** @type {boolean} */
Polymer.Settings.useNativeShadow;
/** @type {boolean} */
Polymer.Settings.useNativeImports;
/** @type {boolean} */
Polymer.Settings.useNativeCustomElements;
/** @type {boolean} */
Polymer.Settings.useNativeCSSProperties;
/**
* @see https://github.com/Polymer/polymer/blob/master/src/lib/template/templatizer.html
* @polymerBehavior
*/
Polymer.Templatizer = {
ctor: function() {},
/**
* @param {?Object=} model
* @return {?Element}
*/
stamp: function(model) {},
/**
* @param {?Element} template
* @param {boolean=} mutableData In Polymer 1.x, passing this argument is a
* no-op.
*/
templatize: function(template, mutableData) {},
/**
* Returns the template "model" associated with a given element, which
* serves as the binding scope for the template instance the element is
* contained in. A template model is an instance of `Polymer.Base`, and
* should be used to manipulate data associated with this template instance.
*
* Example:
*
* var model = modelForElement(el);
* if (model.index < 10) {
* model.set('item.checked', true);
* }
*
* @param {?HTMLElement} el Element for which to return a template model.
* @return {(!PolymerElement)|undefined} Model representing the binding scope for
* the element.
*/
modelForElement: function(el) {},
/**
* @param {function()} fn
* @protected
*/
_debounceTemplate: function(fn) {}
};
/**
* A node produced by Templatizer which has a templateInstance property.
*
* @constructor
* @extends {HTMLElement}
*/
var TemplatizerNode = function() {};
/** @type {?PolymerElement} */
TemplatizerNode.prototype._templateInstance;
/**
* @see https://github.com/Polymer/polymer/blob/1.x/src/lib/template/dom-if.html
* @extends {PolymerElement}
* @constructor
*/
var DomIf = function() {};
/**
* Forces the element to render its content. Normally rendering is
* asynchronous to a provoking change. This is done for efficiency so
* that multiple changes trigger only a single render. The render method
* should be called if, for example, template rendering is required to
* validate application state.
*/
DomIf.prototype.render = function() {};
/**
* @see https://github.com/Polymer/polymer/blob/master/src/lib/template/dom-repeat.html
* @extends {PolymerElement}
* @constructor
*/
var DomRepeatElement = function() {};
/**
* Forces the element to render its content. Normally rendering is
* asynchronous to a provoking change. This is done for efficiency so
* that multiple changes trigger only a single render. The render method
* should be called if, for example, template rendering is required to
* validate application state.
*/
DomRepeatElement.prototype.render = function() {};
/**
* Returns the item associated with a given element stamped by
* this `dom-repeat`.
*
* @param {!HTMLElement} el Element for which to return the item.
* @return {*} Item associated with the element.
*/
DomRepeatElement.prototype.itemForElement = function(el) {};
/**
* Returns the `Polymer.Collection` key associated with a given
* element stamped by this `dom-repeat`.
*
* @param {!HTMLElement} el Element for which to return the key.
* @return {*} Key associated with the element.
*/
DomRepeatElement.prototype.keyForElement = function(el) {};
/**
* Returns the inst index for a given element stamped by this `dom-repeat`.
* If `sort` is provided, the index will reflect the sorted order (rather
* than the original array order).
*
* @param {!HTMLElement} el Element for which to return the index.
* @return {*} Row index associated with the element (note this may
* not correspond to the array index if a user `sort` is applied).
*/
DomRepeatElement.prototype.indexForElement = function(el) {};
/**
* Count of currently rendered items after `filter` (if any) has been applied.
* If "chunking mode" is enabled, `renderedItemCount` is updated each time a
* set of template instances is rendered.
*
* @type {number}
*/
DomRepeatElement.prototype.renderedItemCount;
/**
* @see https://github.com/Polymer/polymer/blob/master/src/lib/template/array-selector.html
* @extends {PolymerElement}
* @constructor
*/
var ArraySelectorElement = function() {};
/**
* Returns whether the item is currently selected.
*
* @param {*} item Item from `items` array to test
* @return {boolean} Whether the item is selected
*/
ArraySelectorElement.prototype.isSelected = function(item) {};
/**
* Clears the selection state.
*/
ArraySelectorElement.prototype.clearSelection = function() {};
/**
* Deselects the given item if it is already selected.
*
* @param {*} item Item from `items` array to deselect
*/
ArraySelectorElement.prototype.deselect = function(item) {};
/**
* Selects the given item. When `toggle` is true, this will automatically
* deselect the item if already selected.
*
* @param {*} item Item from `items` array to select
*/
ArraySelectorElement.prototype.select = function(item) {};
/**
* An Event type fired when moving while finger/button is down.
* state - a string indicating the tracking state:
* + start: fired when tracking is first detected (finger/button down and
* moved past a pre-set distance threshold)
* + track: fired while tracking
* + end: fired when tracking ends
* x - clientX coordinate for event
* y - clientY coordinate for event
* dx - change in pixels horizontally since the first track event
* dy - change in pixels vertically since the first track event
* ddx - change in pixels horizontally since last track event
* ddy - change in pixels vertically since last track event
* hover() - a function that may be called to determine the element currently
* being hovered
*
* @typedef {{
* state: string,
* x: number,
* y: number,
* dx: number,
* dy: number,
* ddx: number,
* ddy: number,
* hover: (function(): Node)
* }}
*/
var PolymerTrackEvent;
/**
* An Event type fired when a finger does down, up, or taps.
* x - clientX coordinate for event
* y - clientY coordinate for event
* sourceEvent - the original DOM event that caused the down action
*
* @typedef {{
* x: number,
* y: number,
* sourceEvent: Event
* }}
*/
var PolymerTouchEvent;
/**
* @typedef {{
* index: number,
* removed: !Array,
* addedCount: number,
* object: !Array,
* type: string,
* }}
*/
var PolymerSplice;
/**
* @typedef {{
* added: !Array<string|number>,
* removed: !Array<string|number>
* }}
*/
var PolymerKeySplice;
/**
* @typedef {{
* indexSplices: ?Array<!PolymerSplice>,
* keySplices: ?Array<!PolymerKeySplice>
* }}
*/
var PolymerSpliceChange;
/**
* The type of the object received by an observer function when deep
* sub-property observation is enabled. See:
* https://www.polymer-project.org/1.0/docs/devguide/properties.html#deep-observation
*
* @typedef {{
* path: string,
* value: (?Object|undefined),
* base: (?Object|undefined)
* }}
*/
var PolymerDeepPropertyChange;
/**
* The interface that iconsets should obey. Iconsets are registered by setting
* their name in the IronMeta 'iconset' db, and a value of type Polymer.Iconset.
*
* Used by iron-icon but needs to live here since iron-icon, iron-iconset, etc don't
* depend on each other at all and talk only through iron-meta.
*
* @interface
*/
Polymer.Iconset = function() {};
/**
* Applies an icon to the given element as a css background image. This
* method does not size the element, and it's usually necessary to set
* the element's height and width so that the background image is visible.
*
* @param {Element} element The element to which the icon is applied.
* @param {string} icon The name of the icon to apply.
* @param {string=} theme (optional) The name or index of the icon to apply.
* @param {number=} scale (optional, defaults to 1) Icon scaling factor.
*/
Polymer.Iconset.prototype.applyIcon = function(
element, icon, theme, scale) {};
/**
* Remove an icon from the given element by undoing the changes effected
* by `applyIcon`.
*
* @param {Element} element The element from which the icon is removed.
*/
Polymer.Iconset.prototype.removeIcon = function(element) {};
Polymer.ResolveUrl = {};
/**
* @param {string} cssText Some CSS text taken from ownerDocument.
* @param {!Document} ownerDocument The source of the css.
* @return {string} The given CSS text with its URLs rewritten to be based on
* the primary document of this window rather than the given ownerDocument.
*/
Polymer.ResolveUrl.resolveCss = function(cssText, ownerDocument) {}
/**
* @param {!Element} element An element whose URL attributes need to be renormed.
* @param {!Document} ownerDocument The document whose URL is the base of the
* element's current attributes.
*/
Polymer.ResolveUrl.resolveAttrs = function(element, ownerDocument) {}
/**
* @param {string} url A url that needs to be renormed.
* @param {?string} baseURI The current base of URL for the URL.
* @return {string} The given url rewritten to be based on
* the primary document of this window rather than the given url.
*/
Polymer.ResolveUrl.resolveUrl = function(url, baseURI) {}
/** @const */
Polymer.RenderStatus = {};
/**
* Makes callback when first render occurs or immediately if render has occured.
* @param {!function()} cb Callback function to be invoked.
*/
Polymer.RenderStatus.whenReady = function(cb) {}
/**
* Queue up function call on next render.
* @param {!Element} element The element on which the function call is made.
* @param {!function()} fn The function called on next render.
* @param {...*} args The function arguments.
*/
Polymer.RenderStatus.afterNextRender = function(element, fn, args) {}
/**
* Static analysis for Polymer.
* @const
*/
var hydrolysis = {};
/**
* A database of Polymer metadata defined in HTML
* @param {boolean} attachAST If true, attach a parse5 compliant AST
* @param {Object=} opt_loader An optional FileLoader used to load
* external resources
*/
hydrolysis.Analyzer = function(attachAST, opt_loader) {};
/**
* Shorthand for transitively loading and processing all imports
* beginning at href.
* @param {string} href The root import to begin loading from.
* @param {Object=} opt_options Any additional options for the load.
*/
hydrolysis.Analyzer.analyze = function(href, opt_options) {};
/**
* Contains information useful for debugging. Should not be used in production
* code and the API may change on short notice.
* @const
*/
Polymer.telemetry = {};
/**
* Number of elements instantiated so far.
* @type {number}
*/
Polymer.telemetry.instanceCount;
/**
* Array of all registered element prototypes. Being prototypes, not all runtime
* properties will be available, but eg. `is` is always there.
* @type {!Array<!PolymerElement>}
*/
Polymer.telemetry.registrations;
/** @const */
Polymer.AppLayout = {};
/** @constructor */
Polymer.AppLayout.LocalDomWithBackground = function(){};
/** @type {!HTMLElement} */
Polymer.AppLayout.LocalDomWithBackground.prototype.backgroundFrontLayer;
/** @type {!HTMLElement} */
Polymer.AppLayout.LocalDomWithBackground.prototype.backgroundRearLayer;
/** @type {!HTMLElement} */
Polymer.AppLayout.LocalDomWithBackground.prototype.background;
/**
* @constructor
* @extends {PolymerElement}
*/
Polymer.AppLayout.ElementWithBackground = function(){};
// TODO(ajo): Follow up with app-layout team and remove private api from this prototype
Polymer.AppLayout.ElementWithBackground.prototype = {
/** @type {!Polymer.AppLayout.LocalDomWithBackground} */
$: null,
/** @return {boolean} True if there's content below the current element */
isContentBelow: function(){},
/** Updates the elements scroll state */
_updateScrollState: function(){},
/** @return {boolean} true if the element is on screen */
isOnScreen: function(){},
/** @type {number} Internal bookkeeping to track screen position */
_deltaHeight: 0,
/** @return {?Element} Element in local dom by id. */
_getDOMRef: function(title){}
}
/** @const */
Polymer.ArraySplice = {};
/**
* Returns an array of splice records indicating the minimum edits required
* to transform the `previous` array into the `current` array.
*
* Splice records are ordered by index and contain the following fields:
* - `index`: index where edit started
* - `removed`: array of removed items from this index
* - `addedCount`: number of items added at this index
*
* This function is based on the Levenshtein "minimum edit distance"
* algorithm. Note that updates are treated as removal followed by addition.
*
* The worst-case time complexity of this algorithm is `O(l * p)`
* l: The length of the current array
* p: The length of the previous array
*
* However, the worst-case complexity is reduced by an `O(n)` optimization
* to detect any shared prefix & suffix between the two arrays and only
* perform the more expensive minimum edit distance calculation over the
* non-shared portions of the arrays.
*
* @param {!Array} current The "changed" array for which splices will be
* calculated.
* @param {!Array} previous The "unchanged" original array to compare
* `current` against to determine the splices.
* @return {!Array} Returns an array of splice record objects. Each of these
* contains: `index` the location where the splice occurred; `removed`
* the array of removed items from this location; `addedCount` the number
* of items added at this location.
*/
Polymer.ArraySplice.calculateSplices = function(current, previous) {};
/**
* @constructor @extends {PolymerElement}
*/
Polymer.DomModule = function() {};
/**
* Retrieves the dom specified by `selector` in the module specified by
* `id`. For example, this.import('foo', 'img');
* @param {string} id
* @param {string=} opt_selector
* @return {?HTMLElement} Returns the dom which matches `selector` in the module
* at the specified `id`.
*/
Polymer.DomModule.import = function(id, opt_selector) {};
/** @const */
Polymer.Path = {
/**
* @param {string=} base
* @param {string=} newBase
* @param {string=} path
* @return {string}
*/
translate: function(base, newBase, path) {},
/**
* @param {string=} base
* @param {string=} wildcard
* @param {string=} path
* @return {boolean}
*/
matches: function(base, wildcard, path) {}
};
/**
* For compatibility with both Polymer 1.0 and 2.0, code may check for certain
* objects and properties which don't exist in Polymer 1.0.
*
* We give those objects and properties the `undefined` type here, because
* the dependency tree will either contain these externs and Polymer 1.0 or
* it will contain Polymer 2.0 which defines the full types.
*/
/** @type {undefined} */
var ShadyDOM;
Polymer.flush;
Polymer.enqueueDebouncer;
Polymer.Async.animationFrame;
Polymer.Async.idlePeriod;
Polymer.Async.microTask;
Polymer.Debouncer.debounce;
Polymer.Templatizer.mutableData;
Polymer.Templatizer.parentModel;
Polymer.Templatizer.forwardHostProp;
Polymer.Templatizer.notifyInstanceProp;
Polymer.Templatizer._setPendingPropertyOrPath;
Polymer.Templatizer._setPendingProperty;
Polymer.Templatizer._instanceProps;
/**
* @param {number} index
* @return {boolean}
*/
ArraySelectorElement.prototype.isIndexSelected = function(index) {};