diff options
Diffstat (limited to 'chromium/third_party/trace-viewer/src/ui.js')
-rw-r--r-- | chromium/third_party/trace-viewer/src/ui.js | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/chromium/third_party/trace-viewer/src/ui.js b/chromium/third_party/trace-viewer/src/ui.js deleted file mode 100644 index 131b14e3b05..00000000000 --- a/chromium/third_party/trace-viewer/src/ui.js +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright (c) 2012 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. - -'use strict'; - -base.exportTo('ui', function() { - - /** - * Decorates elements as an instance of a class. - * @param {string|!Element} source The way to find the element(s) to decorate. - * If this is a string then {@code querySeletorAll} is used to find the - * elements to decorate. - * @param {!Function} constr The constructor to decorate with. The constr - * needs to have a {@code decorate} function. - */ - function decorate(source, constr) { - var elements; - if (typeof source == 'string') - elements = base.doc.querySelectorAll(source); - else - elements = [source]; - - for (var i = 0, el; el = elements[i]; i++) { - if (!(el instanceof constr)) - constr.decorate(el); - } - } - - /** - * Defines a tracing UI component, a function that can be called to construct - * the component. - * - * Base class: - * <pre> - * var List = ui.define('list'); - * List.prototype = { - * __proto__: HTMLUListElement.prototype, - * decorate: function() { - * ... - * }, - * ... - * }; - * </pre> - * - * Derived class: - * <pre> - * var CustomList = ui.define('custom-list', List); - * CustomList.prototype = { - * __proto__: List.prototype, - * decorate: function() { - * ... - * }, - * ... - * }; - * </pre> - * - * @param {string} tagName The tagName of the newly created subtype. If - * subclassing, this is used for debugging. If not subclassing, then it is - * the tag name that will be created by the component. - * @param {function=} opt_parentConstructor The parent class for this new - * element, if subclassing is desired. If provided, the parent class must - * be also a function created by ui.define. - * @return {function(Object=):Element} The newly created component - * constructor. - */ - function define(tagName, opt_parentConstructor) { - if (typeof tagName == 'function') { - throw new Error('Passing functions as tagName is deprecated. Please ' + - 'use (tagName, opt_parentConstructor) to subclass'); - } - - var tagName = tagName.toLowerCase(); - if (opt_parentConstructor && !opt_parentConstructor.tagName) - throw new Error('opt_parentConstructor was not created by ui.define'); - - /** - * Creates a new UI element constructor. - * Arguments passed to the constuctor are provided to the decorate method. - * You will need to call the parent elements decorate method from within - * your decorate method and pass any required parameters. - * @constructor - */ - function f() { - if (opt_parentConstructor && - f.prototype.__proto__ != opt_parentConstructor.prototype) { - throw new Error( - tagName + ' prototye\'s __proto__ field is messed up. ' + - 'It MUST be the prototype of ' + opt_parentConstructor.tagName); - } - - // Walk up the parent constructors until we can find the type of tag - // to create. - var tag = tagName; - if (opt_parentConstructor) { - var parent = opt_parentConstructor; - while (parent && parent.tagName) { - tag = parent.tagName; - parent = parent.parentConstructor; - } - } - - var el = base.doc.createElement(tag); - f.decorate.call(this, el, arguments); - return el; - } - - try { - // f.name is not directly writable. So make it writable anyway. - Object.defineProperty( - f, 'name', - {value: tagName, writable: false, configurable: false}); - } catch (e) { - // defineProperty throws a TypeError about name already being defined - // although, it also correctly sets the value to tagName. - } - - /** - * Decorates an element as a UI element class. - * @param {!Element} el The element to decorate. - */ - f.decorate = function(el) { - el.__proto__ = f.prototype; - el.decorate.apply(el, arguments[1]); - el.constructor = f; - }; - - f.tagName = tagName; - f.parentConstructor = (opt_parentConstructor ? opt_parentConstructor : - undefined); - f.toString = function() { - if (!f.parentConstructor) - return f.tagName; - return f.parentConstructor.toString() + '::' + f.tagName; - }; - - return f; - } - - function elementIsChildOf(el, potentialParent) { - if (el == potentialParent) - return false; - - var cur = el; - while (cur.parentNode) { - if (cur == potentialParent) - return true; - cur = cur.parentNode; - } - return false; - }; - - return { - decorate: decorate, - define: define, - elementIsChildOf: elementIsChildOf - }; -}); |