Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4177)

Unified Diff: chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js

Issue 177049: On Linux, move the passing of filedescriptors to a dedicated socketpair(). (Closed)
Patch Set: Removed *.d files from reference build Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js
diff --git a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js b/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js
index 5c1050a46d9293ba1a982d2a1f50da4ef864943b..5002dfb4fb89f8edcd9bc40acd9c178bc46d25a7 100644
--- a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js
+++ b/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inject.js
@@ -14,450 +14,131 @@ goog.provide('devtools.Injected');
* @constructor.
*/
devtools.Injected = function() {
- /**
- * Unique style id generator.
- * @type {number}
- * @private
- */
- this.lastStyleId_ = 1;
-
- /**
- * This array is not unused as it may seem. It stores references to the
- * styles so that they could be found for future editing.
- * @type {Array<CSSStyleDeclaration>}
- * @private
- */
- this.styles_ = [];
};
/**
- * Returns array of properties for a given node on a given path.
- * @param {Node} node Node to get property value for.
- * @param {Array.<string>} path Path to the nested object.
- * @param {number} protoDepth Depth of the actual proto to inspect.
- * @return {Array.<Object>} Array where each property is represented
- * by the tree entries [{string} type, {string} name, {Object} value].
+ * Dispatches given method with given args on the host object.
+ * @param {string} method Method name.
*/
-devtools.Injected.prototype.getProperties = function(node, path, protoDepth) {
- var result = [];
- var obj = node;
-
- // Follow the path.
- for (var i = 0; obj && i < path.length; ++i) {
- obj = obj[path[i]];
- }
-
- if (!obj) {
- return [];
- }
-
- // Get to the necessary proto layer.
- for (var i = 0; obj && i < protoDepth; ++i) {
- obj = obj.__proto__;
- }
-
- if (!obj) {
- return [];
- }
-
- // Go over properties, prepare results.
- for (var name in obj) {
- if (protoDepth != -1 && 'hasOwnProperty' in obj &&
- !obj.hasOwnProperty(name)) {
- continue;
- }
- var type = typeof obj[name];
- result.push(type);
- result.push(name);
- if (type == 'string') {
- var str = obj[name];
- result.push(str.length > 99 ? str.substr(0, 99) + '...' : str);
- } else if (type != 'object' && type != 'array' &&
- type != 'function') {
- result.push(obj[name]);
- } else {
- result.push(undefined);
- }
- }
- return result;
+devtools.Injected.prototype.InspectorController = function(method, var_args) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ return InspectorController[method].apply(InspectorController, args);
};
/**
- * Returns array of prototypes for a given node.
- * @param {Node} node Node to get prorotypes for.
- * @return {Array<string>} Array of proto names.
+ * Dispatches given method with given args on the InjectedScript.
+ * @param {string} method Method name.
*/
-devtools.Injected.prototype.getPrototypes = function(node) {
- var result = [];
- for (var prototype = node; prototype; prototype = prototype.__proto__) {
- var description = Object.prototype.toString.call(prototype);
- result.push(description.replace(/^\[object (.*)\]$/i, '$1'));
- }
+devtools.Injected.prototype.InjectedScript = function(method, var_args) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ var result = InjectedScript[method].apply(InjectedScript, args);
return result;
};
-/**
- * Returns style information that is used in devtools.js.
- * @param {Node} node Node to get prorotypes for.
- * @param {boolean} authorOnly Determines whether only author styles need to
- * be added.
- * @return {string} Style collection descriptor.
- */
-devtools.Injected.prototype.getStyles = function(node, authorOnly) {
- if (!node.nodeType == Node.ELEMENT_NODE) {
- return {};
- }
- var matchedRules = window.getMatchedCSSRules(node, '', false);
- var matchedCSSRulesObj = [];
- for (var i = 0; matchedRules && i < matchedRules.length; ++i) {
- var rule = matchedRules[i];
- var parentStyleSheet = rule.parentStyleSheet;
- var isUserAgent = parentStyleSheet && !parentStyleSheet.ownerNode &&
- !parentStyleSheet.href;
- var isUser = parentStyleSheet && parentStyleSheet.ownerNode &&
- parentStyleSheet.ownerNode.nodeName == '#document';
-
- var style = this.serializeStyle_(rule.style, !isUserAgent && !isUser);
- var ruleValue = {
- 'selector' : rule.selectorText,
- 'style' : style
- };
- if (parentStyleSheet) {
- ruleValue['parentStyleSheet'] = {
- 'href' : parentStyleSheet.href,
- 'ownerNodeName' : parentStyleSheet.ownerNode ?
- parentStyleSheet.ownerNode.name : null
- };
- }
- matchedCSSRulesObj.push(ruleValue);
- }
-
- var attributeStyles = {};
- var attributes = node.attributes;
- for (var i = 0; attributes && i < attributes.length; ++i) {
- if (attributes[i].style) {
- attributeStyles[attributes[i].name] =
- this.serializeStyle_(attributes[i].style, true);
- }
- }
- var result = {
- 'inlineStyle' : this.serializeStyle_(node.style, true),
- 'computedStyle' : this.serializeStyle_(
- window.getComputedStyle(node, '')),
- 'matchedCSSRules' : matchedCSSRulesObj,
- 'styleAttributes' : attributeStyles
- };
- return result;
-};
-
-
-/**
- * Returns style decoration object for given id.
- * @param {Node} node Node to get prorotypes for.
- * @param {number} id Style id.
- * @return {Object} Style object.
- * @private
- */
-devtools.Injected.prototype.getStyleForId_ = function(node, id) {
- var matchedRules = window.getMatchedCSSRules(node, '', false);
- for (var i = 0; matchedRules && i < matchedRules.length; ++i) {
- var rule = matchedRules[i];
- if (rule.style.__id == id) {
- return rule.style;
- }
- }
- var attributes = node.attributes;
- for (var i = 0; attributes && i < attributes.length; ++i) {
- if (attributes[i].style && attributes[i].style.__id == id) {
- return attributes[i].style;
- }
- }
- if (node.style.__id == id) {
- return node.style;
- }
- return null;
+// Plugging into upstreamed support.
+InjectedScript._window = function() {
+ return contentWindow;
};
-
-
-/**
- * Converts given style into serializable object.
- * @param {CSSStyleDeclaration} style Style to serialize.
- * @param {boolean} opt_bind Determins whether this style should be bound.
- * @return {Array<Object>} Serializable object.
- * @private
- */
-devtools.Injected.prototype.serializeStyle_ = function(style, opt_bind) {
- if (!style) {
- return [];
- }
- var id = style.__id;
- if (opt_bind && !id) {
- id = style.__id = this.lastStyleId_++;
- this.styles_.push(style);
- }
- var result = [
- id,
- style.width,
- style.height,
- style.__disabledProperties,
- style.__disabledPropertyValues,
- style.__disabledPropertyPriorities
- ];
- for (var i = 0; i < style.length; ++i) {
- var name = style[i];
- result.push([
- name,
- style.getPropertyPriority(name),
- style.isPropertyImplicit(name),
- style.getPropertyShorthand(name),
- style.getPropertyValue(name)
- ]);
- }
- return result;
-};
-
-
-/**
- * Toggles style with given id on/off.
- * @param {Node} node Node to get prorotypes for.
- * @param {number} styleId Id of style to toggle.
- * @param {boolean} enabled Determines value to toggle to,
- * @param {string} name Name of the property.
- */
-devtools.Injected.prototype.toggleNodeStyle = function(node, styleId, enabled,
- name) {
- var style = this.getStyleForId_(node, styleId);
- if (!style) {
- return false;
- }
-
- if (!enabled) {
- if (!style.__disabledPropertyValues ||
- !style.__disabledPropertyPriorities) {
- style.__disabledProperties = {};
- style.__disabledPropertyValues = {};
- style.__disabledPropertyPriorities = {};
- }
-
- style.__disabledPropertyValues[name] = style.getPropertyValue(name);
- style.__disabledPropertyPriorities[name] = style.getPropertyPriority(name);
-
- if (style.getPropertyShorthand(name)) {
- var longhandProperties = this.getLonghandProperties_(style, name);
- for (var i = 0; i < longhandProperties.length; ++i) {
- style.__disabledProperties[longhandProperties[i]] = true;
- style.removeProperty(longhandProperties[i]);
- }
- } else {
- style.__disabledProperties[name] = true;
- style.removeProperty(name);
- }
- } else if (style.__disabledProperties &&
- style.__disabledProperties[name]) {
- var value = style.__disabledPropertyValues[name];
- var priority = style.__disabledPropertyPriorities[name];
- style.setProperty(name, value, priority);
-
- delete style.__disabledProperties[name];
- delete style.__disabledPropertyValues[name];
- delete style.__disabledPropertyPriorities[name];
- }
- return true;
-};
-
-
-/**
- * Applies given text to a style.
- * @param {Node} node Node to get prorotypes for.
- * @param {number} styleId Id of style to toggle.
- * @param {string} name Style element name.
- * @param {string} styleText New style text.
- * @return {boolean} True iff style has been edited successfully.
- */
-devtools.Injected.prototype.applyStyleText = function(node, styleId,
- name, styleText) {
- var style = this.getStyleForId_(node, styleId);
- if (!style) {
- return false;
- }
-
- var styleTextLength = this.trimWhitespace_(styleText).length;
-
- // Create a new element to parse the user input CSS.
- var parseElement = document.createElement("span");
- parseElement.setAttribute("style", styleText);
-
- var tempStyle = parseElement.style;
- if (tempStyle.length || !styleTextLength) {
- // The input was parsable or the user deleted everything, so remove the
- // original property from the real style declaration. If this represents
- // a shorthand remove all the longhand properties.
- if (style.getPropertyShorthand(name)) {
- var longhandProperties = this.getLonghandProperties_(style, name);
- for (var i = 0; i < longhandProperties.length; ++i) {
- style.removeProperty(longhandProperties[i]);
- }
- } else {
- style.removeProperty(name);
- }
- }
- if (!tempStyle.length) {
- // The user typed something, but it didn't parse. Just abort and restore
- // the original title for this property.
+Object.type = function(obj, win)
+{
+ if (obj === null)
+ return "null";
+
+ var type = typeof obj;
+ if (type !== "object" && type !== "function")
+ return type;
+
+ win = win || window;
+
+ if (obj instanceof win.Node)
+ return (obj.nodeType === undefined ? type : "node");
+ if (obj instanceof win.String)
+ return "string";
+ if (obj instanceof win.Array)
+ return "array";
+ if (obj instanceof win.Boolean)
+ return "boolean";
+ if (obj instanceof win.Number)
+ return "number";
+ if (obj instanceof win.Date)
+ return "date";
+ if (obj instanceof win.RegExp)
+ return "regexp";
+ if (obj instanceof win.Error)
+ return "error";
+ return type;
+}
+
+// Temporarily moved into the injected context.
+Object.hasProperties = function(obj)
+{
+ if (typeof obj === "undefined" || typeof obj === "null")
+ return false;
+ for (var name in obj)
+ return true;
return false;
- }
-
- // Iterate of the properties on the test element's style declaration and
- // add them to the real style declaration. We take care to move shorthands.
- var foundShorthands = {};
- var uniqueProperties = this.getUniqueStyleProperties_(tempStyle);
- for (var i = 0; i < uniqueProperties.length; ++i) {
- var name = uniqueProperties[i];
- var shorthand = tempStyle.getPropertyShorthand(name);
-
- if (shorthand && shorthand in foundShorthands) {
- continue;
+}
+
+Object.describe = function(obj, abbreviated)
+{
+ var type1 = Object.type(obj);
+ var type2 = (obj == null) ? "null" : obj.constructor.name;
+
+ switch (type1) {
+ case "object":
+ case "node":
+ return type2;
+ case "array":
+ return "[" + obj.toString() + "]";
+ case "string":
+ if (obj.length > 100)
+ return "\"" + obj.substring(0, 100) + "\u2026\"";
+ return "\"" + obj + "\"";
+ case "function":
+ var objectText = String(obj);
+ if (!/^function /.test(objectText))
+ objectText = (type2 == "object") ? type1 : type2;
+ else if (abbreviated)
+ objectText = /.*/.exec(obj)[0].replace(/ +$/g, "");
+ return objectText;
+ case "regexp":
+ return String(obj).replace(/([\\\/])/g, "\\$1").replace(/\\(\/[gim]*)$/, "$1").substring(1);
+ default:
+ return String(obj);
}
-
- if (shorthand) {
- var value = this.getShorthandValue_(tempStyle, shorthand);
- var priority = this.getShorthandPriority_(tempStyle, shorthand);
- foundShorthands[shorthand] = true;
- } else {
- var value = tempStyle.getPropertyValue(name);
- var priority = tempStyle.getPropertyPriority(name);
+}
+
+Function.prototype.bind = function(thisObject)
+{
+ var func = this;
+ var args = Array.prototype.slice.call(arguments, 1);
+ return function() { return func.apply(thisObject, args.concat(Array.prototype.slice.call(arguments, 0))) };
+}
+
+String.prototype.escapeCharacters = function(chars)
+{
+ var foundChar = false;
+ for (var i = 0; i < chars.length; ++i) {
+ if (this.indexOf(chars.charAt(i)) !== -1) {
+ foundChar = true;
+ break;
+ }
}
- // Set the property on the real style declaration.
- style.setProperty((shorthand || name), value, priority);
- }
- return true;
-};
+ if (!foundChar)
+ return this;
-/**
- * Sets style property with given name to a value.
- * @param {Node} node Node to get prorotypes for.
- * @param {string} name Style element name.
- * @param {string} value Value.
- * @return {boolean} True iff style has been edited successfully.
- */
-devtools.Injected.prototype.setStyleProperty = function(node,
- name, value) {
- node.style.setProperty(name, value, "");
- return true;
-};
-
-
-/**
- * Taken from utilities.js as is for injected evaluation.
- */
-devtools.Injected.prototype.getLonghandProperties_ = function(style,
- shorthandProperty) {
- var properties = [];
- var foundProperties = {};
-
- for (var i = 0; i < style.length; ++i) {
- var individualProperty = style[i];
- if (individualProperty in foundProperties ||
- style.getPropertyShorthand(individualProperty) != shorthandProperty) {
- continue;
+ var result = "";
+ for (var i = 0; i < this.length; ++i) {
+ if (chars.indexOf(this.charAt(i)) !== -1)
+ result += "\\";
+ result += this.charAt(i);
}
- foundProperties[individualProperty] = true;
- properties.push(individualProperty);
- }
- return properties;
-};
-
-
-/**
- * Taken from utilities.js as is for injected evaluation.
- */
-devtools.Injected.prototype.getShorthandValue_ = function(style,
- shorthandProperty) {
- var value = style.getPropertyValue(shorthandProperty);
- if (!value) {
- // Some shorthands (like border) return a null value, so compute a
- // shorthand value.
- // FIXME: remove this when http://bugs.webkit.org/show_bug.cgi?id=15823
- // is fixed.
-
- var foundProperties = {};
- for (var i = 0; i < style.length; ++i) {
- var individualProperty = style[i];
- if (individualProperty in foundProperties ||
- style.getPropertyShorthand(individualProperty) !==
- shorthandProperty) {
- continue;
- }
- var individualValue = style.getPropertyValue(individualProperty);
- if (style.isPropertyImplicit(individualProperty) ||
- individualValue === "initial") {
- continue;
- }
-
- foundProperties[individualProperty] = true;
-
- if (!value) {
- value = "";
- } else if (value.length) {
- value += " ";
- }
- value += individualValue;
- }
- }
- return value;
-};
-
-
-/**
- * Taken from utilities.js as is for injected evaluation.
- */
-devtools.Injected.prototype.getShorthandPriority_ = function(style,
- shorthandProperty) {
- var priority = style.getPropertyPriority(shorthandProperty);
- if (!priority) {
- for (var i = 0; i < style.length; ++i) {
- var individualProperty = style[i];
- if (style.getPropertyShorthand(individualProperty) !==
- shorthandProperty) {
- continue;
- }
- priority = style.getPropertyPriority(individualProperty);
- break;
- }
- }
- return priority;
-};
-
-
-/**
- * Taken from utilities.js as is for injected evaluation.
- */
-devtools.Injected.prototype.trimWhitespace_ = function(str) {
- return str.replace(/^[\s\xA0]+|[\s\xA0]+$/g, '');
-};
-
-
-/**
- * Taken from utilities.js as is for injected evaluation.
- */
-devtools.Injected.prototype.getUniqueStyleProperties_ = function(style) {
- var properties = [];
- var foundProperties = {};
-
- for (var i = 0; i < style.length; ++i) {
- var property = style[i];
- if (property in foundProperties) {
- continue;
- }
- foundProperties[property] = true;
- properties.push(property);
- }
- return properties;
-};
+ return result;
+}

Powered by Google App Engine
This is Rietveld 408576698