| Index: netlog_viewer/util.js
|
| diff --git a/netlog_viewer/util.js b/netlog_viewer/util.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..57048ddfe68f71999e429eff94f0c92839819073
|
| --- /dev/null
|
| +++ b/netlog_viewer/util.js
|
| @@ -0,0 +1,176 @@
|
| +// 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.
|
| +
|
| +/**
|
| + * Sets the width (in pixels) on a DOM node.
|
| + * @param {!HtmlNode} node The node whose width is being set.
|
| + * @param {number} widthPx The width in pixels.
|
| + */
|
| +function setNodeWidth(node, widthPx) {
|
| + node.style.width = widthPx.toFixed(0) + 'px';
|
| +}
|
| +
|
| +/**
|
| + * Sets the height (in pixels) on a DOM node.
|
| + * @param {!HtmlNode} node The node whose height is being set.
|
| + * @param {number} heightPx The height in pixels.
|
| + */
|
| +function setNodeHeight(node, heightPx) {
|
| + node.style.height = heightPx.toFixed(0) + 'px';
|
| +}
|
| +
|
| +/**
|
| + * Sets the position and size of a DOM node (in pixels).
|
| + * @param {!HtmlNode} node The node being positioned.
|
| + * @param {number} leftPx The left position in pixels.
|
| + * @param {number} topPx The top position in pixels.
|
| + * @param {number} widthPx The width in pixels.
|
| + * @param {number} heightPx The height in pixels.
|
| + */
|
| +function setNodePosition(node, leftPx, topPx, widthPx, heightPx) {
|
| + node.style.left = leftPx.toFixed(0) + 'px';
|
| + node.style.top = topPx.toFixed(0) + 'px';
|
| + setNodeWidth(node, widthPx);
|
| + setNodeHeight(node, heightPx);
|
| +}
|
| +
|
| +/**
|
| + * Sets the visibility for a DOM node.
|
| + * @param {!HtmlNode} node The node being positioned.
|
| + * @param {boolean} isVisible Whether to show the node or not.
|
| + */
|
| +function setNodeDisplay(node, isVisible) {
|
| + node.style.display = isVisible ? '' : 'none';
|
| +}
|
| +
|
| +/**
|
| + * Adds a node to |parentNode|, of type |tagName|.
|
| + * @param {!HtmlNode} parentNode The node that will be the parent of the new
|
| + * element.
|
| + * @param {string} tagName the tag name of the new element.
|
| + * @return {!HtmlElement} The newly created element.
|
| + */
|
| +function addNode(parentNode, tagName) {
|
| + var elem = parentNode.ownerDocument.createElement(tagName);
|
| + parentNode.appendChild(elem);
|
| + return elem;
|
| +}
|
| +
|
| +/**
|
| + * Adds |text| to node |parentNode|.
|
| + * @param {!HtmlNode} parentNode The node to add text to.
|
| + * @param {string} text The text to be added.
|
| + * @return {!Object} The newly created text node.
|
| + */
|
| +function addTextNode(parentNode, text) {
|
| + var textNode = parentNode.ownerDocument.createTextNode(text);
|
| + parentNode.appendChild(textNode);
|
| + return textNode;
|
| +}
|
| +
|
| +/**
|
| + * Adds a node to |parentNode|, of type |tagName|. Then adds
|
| + * |text| to the new node.
|
| + * @param {!HtmlNode} parentNode The node that will be the parent of the new
|
| + * element.
|
| + * @param {string} tagName the tag name of the new element.
|
| + * @param {string} text The text to be added.
|
| + * @return {!HtmlElement} The newly created element.
|
| + */
|
| +function addNodeWithText(parentNode, tagName, text) {
|
| + var elem = parentNode.ownerDocument.createElement(tagName);
|
| + parentNode.appendChild(elem);
|
| + addTextNode(elem, text);
|
| + return elem;
|
| +}
|
| +
|
| +/**
|
| + * Returns the key such that map[key] == value, or the string '?' if
|
| + * there is no such key.
|
| + * @param {!Object} map The object being used as a lookup table.
|
| + * @param {Object} value The value to be found in |map|.
|
| + * @return {string} The key for |value|, or '?' if there is no such key.
|
| + */
|
| +function getKeyWithValue(map, value) {
|
| + for (var key in map) {
|
| + if (map[key] == value)
|
| + return key;
|
| + }
|
| + return '?';
|
| +}
|
| +
|
| +/**
|
| + * Returns a new map with the keys and values of the input map inverted.
|
| + * @param {!Object} map The object to have its keys and values reversed. Not
|
| + * modified by the function call.
|
| + * @return {Object} The new map with the reversed keys and values.
|
| + */
|
| +function makeInverseMap(map) {
|
| + var reversed = {};
|
| + for (var key in map)
|
| + reversed[map[key]] = key;
|
| + return reversed;
|
| +}
|
| +
|
| +/**
|
| + * Looks up |key| in |map|, and returns the resulting entry, if there is one.
|
| + * Otherwise, returns |key|. Intended primarily for use with incomplete
|
| + * tables, and for reasonable behavior with system enumerations that may be
|
| + * extended in the future.
|
| + * @param {!Object} map The table in which |key| is looked up.
|
| + * @param {string} key The key to look up.
|
| + * @return {Object|string} map[key], if it exists, or |key| if it doesn't.
|
| + */
|
| +function tryGetValueWithKey(map, key) {
|
| + if (key in map)
|
| + return map[key];
|
| + return key;
|
| +}
|
| +
|
| +/**
|
| + * Builds a string by repeating |str| |count| times.
|
| + * @param {string} str The string to be repeated.
|
| + * @param {number} count The number of times to repeat |str|.
|
| + * @return {string} The constructed string
|
| + */
|
| +function makeRepeatedString(str, count) {
|
| + var out = [];
|
| + for (var i = 0; i < count; ++i)
|
| + out.push(str);
|
| + return out.join('');
|
| +}
|
| +
|
| +/**
|
| + * Clones a basic POD object. Only a new top level object will be cloned. It
|
| + * will continue to reference the same values as the original object.
|
| + * @param {Object} object The object to be cloned.
|
| + * @return {Object} A copy of |object|.
|
| + */
|
| +function shallowCloneObject(object) {
|
| + if (!(object instanceof Object))
|
| + return object;
|
| + var copy = {};
|
| + for (var key in object) {
|
| + copy[key] = object[key];
|
| + }
|
| + return copy;
|
| +}
|
| +
|
| +/**
|
| + * Helper to make sure singleton classes are not instantiated more than once.
|
| + * @param {Function} ctor The constructor function being checked.
|
| + */
|
| +function assertFirstConstructorCall(ctor) {
|
| + // This is the variable which is set by cr.addSingletonGetter().
|
| + if (ctor.hasCreateFirstInstance_) {
|
| + throw Error('The class ' + ctor.name + ' is a singleton, and should ' +
|
| + 'only be accessed using ' + ctor.name + '.getInstance().');
|
| + }
|
| + ctor.hasCreateFirstInstance_ = true;
|
| +}
|
| +
|
| +function hasTouchScreen() {
|
| + return 'ontouchstart' in window;
|
| +}
|
| +
|
|
|