Index: chrome/tools/test/reference_build/chrome_linux/resources/inspector/dom_agent.js |
diff --git a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dom_agent.js b/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dom_agent.js |
deleted file mode 100644 |
index 2cf8904d175769e52a10ee85557e416ae04c665f..0000000000000000000000000000000000000000 |
--- a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dom_agent.js |
+++ /dev/null |
@@ -1,1023 +0,0 @@ |
-// Copyright (c) 2009 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 Dom and DomNode are used to represent remote DOM in the |
- * web inspector. |
- */ |
-goog.provide('devtools.DomAgent'); |
-goog.provide('devtools.DomDocument'); |
-goog.provide('devtools.DomNode'); |
- |
-goog.require('devtools.Callback'); |
- |
- |
-/** |
- * Defines indexes for the node payload properties. |
- */ |
-devtools.PayloadIndex = { |
- ID : 0, |
- TYPE : 1, |
- NAME : 2, |
- VALUE : 3, |
- ATTRS : 4, |
- HAS_CHILDREN : 5, |
- CHILD_NODES : 6 |
-}; |
- |
- |
-/** |
- * Creates document node in a given document based on a given payload data. |
- * @param {devtools.Doc} doc Document to create node in. |
- * @param {Array.<Object>} payload Data to build node based upon. |
- * @constructor |
- */ |
-devtools.DomNode = function(doc, payload) { |
- this.ownerDocument = doc; |
- |
- this.id_ = payload[devtools.PayloadIndex.ID]; |
- this.nodeType = payload[devtools.PayloadIndex.TYPE]; |
- this.nodeName = payload[devtools.PayloadIndex.NAME]; |
- this.nodeValue_ = payload[devtools.PayloadIndex.VALUE]; |
- this.textContent = this.nodeValue; |
- |
- this.attributes = []; |
- this.attributesMap_ = {}; |
- if (payload.length > devtools.PayloadIndex.ATTRS) { |
- this.setAttributesPayload_(payload[devtools.PayloadIndex.ATTRS]); |
- } |
- |
- this.childNodesCount_ = payload[devtools.PayloadIndex.HAS_CHILDREN]; |
- this.children = null; |
- |
- this.nextSibling = null; |
- this.prevSibling = null; |
- this.firstChild = null; |
- this.parentNode = null; |
- |
- this.disabledStyleProperties_ = {}; |
- |
- if (payload.length > devtools.PayloadIndex.CHILD_NODES) { |
- // Has children payloads |
- this.setChildrenPayload_( |
- payload[devtools.PayloadIndex.CHILD_NODES]); |
- } |
- |
- this.computedStyle_ = null; |
- this.style = null; |
- this.matchedCSSRules_ = []; |
-}; |
- |
- |
-/** |
- * Overrides for getters and setters. |
- */ |
-devtools.DomNode.prototype = { |
- get nodeValue() { |
- return this.nodeValue_; |
- }, |
- |
- set nodeValue(value) { |
- if (this.nodeType != Node.TEXT_NODE) { |
- return; |
- } |
- var self = this; |
- this.ownerDocument.domAgent_.setTextNodeValueAsync(this, value, |
- function() { |
- self.nodeValue_ = value; |
- self.textContent = value; |
- }); |
- } |
-}; |
- |
- |
-/** |
- * Sets attributes for a given node based on a given attrs payload. |
- * @param {Array.<string>} attrs Attribute key-value pairs to set. |
- * @private |
- */ |
-devtools.DomNode.prototype.setAttributesPayload_ = function(attrs) { |
- for (var i = 0; i < attrs.length; i += 2) { |
- this.addAttribute_(attrs[i], attrs[i + 1]); |
- } |
-}; |
- |
- |
-/** |
- * @return True iff node has attributes. |
- */ |
-devtools.DomNode.prototype.hasAttributes = function() { |
- return this.attributes.length > 0; |
-}; |
- |
- |
-/** |
- * @return True iff node has child nodes. |
- */ |
-devtools.DomNode.prototype.hasChildNodes = function() { |
- return this.childNodesCount_ > 0; |
-}; |
- |
- |
-/** |
- * Inserts child node into this node after a given anchor. |
- * @param {devtools.DomNode} prev Node to insert child after. |
- * @param {Array.<Object>} payload Child node data. |
- * @private |
- */ |
-devtools.DomNode.prototype.insertChild_ = function(prev, payload) { |
- var node = new devtools.DomNode(this.ownerDocument, payload); |
- if (!prev) { |
- // First node |
- this.children = [ node ]; |
- } else { |
- this.children.splice(this.children.indexOf(prev) + 1, 0, node); |
- } |
- this.renumber_(); |
- return node; |
-}; |
- |
- |
-/** |
- * Removes child node from this node. |
- * @param {devtools.DomNode} node Node to remove. |
- * @private |
- */ |
-devtools.DomNode.prototype.removeChild_ = function(node) { |
- this.children.splice(this.children.indexOf(node), 1); |
- node.parentNode = null; |
- this.renumber_(); |
-}; |
- |
- |
-/** |
- * Sets children for this node based on the given payload. |
- * @param {Array.<Object>} payload Data for children. |
- * @private |
- */ |
-devtools.DomNode.prototype.setChildrenPayload_ = function(payloads) { |
- this.children = []; |
- for (var i = 0; i < payloads.length; ++i) { |
- var payload = payloads[i]; |
- var node = new devtools.DomNode(this.ownerDocument, payload); |
- this.children.push(node); |
- } |
- this.renumber_(); |
-}; |
- |
- |
-/** |
- * Normalizes prev/next/parent/firstChild links for this node's children. |
- * @private |
- */ |
-devtools.DomNode.prototype.renumber_ = function() { |
- this.childNodesCount_ = this.children.length; |
- if (this.childNodesCount_ == 0) { |
- this.firstChild = null; |
- return; |
- } |
- this.firstChild = this.children[0]; |
- for (var i = 0; i < this.childNodesCount_; ++i) { |
- var child = this.children[i]; |
- child.nextSibling = i + 1 < this.childNodesCount_ ? |
- this.children[i + 1] : null; |
- child.prevSibling = i - 1 >= 0 ? this.children[i - 1] : null; |
- child.parentNode = this; |
- } |
-}; |
- |
- |
-/** |
- * Returns attribute value. |
- * @param {string} name Attribute name to get value for. |
- * @return {string} Attribute value. |
- */ |
-devtools.DomNode.prototype.getAttribute = function(name) { |
- var attr = this.attributesMap_[name]; |
- return attr ? attr.value : undefined; |
-}; |
- |
- |
-/** |
- * Sends 'set attribute' command to the remote agent. |
- * @param {string} name Attribute name to set value for. |
- * @param {string} value Attribute value to set. |
- */ |
-devtools.DomNode.prototype.setAttribute = function(name, value) { |
- var self = this; |
- this.ownerDocument.domAgent_.setAttributeAsync(this, name, value, |
- function() { |
- var attr = self.attributesMap_[name]; |
- if (attr) { |
- attr.value = value; |
- } else { |
- attr = self.addAttribute_(name, value); |
- } |
- }); |
-}; |
- |
- |
-/** |
- * Creates an attribute-like object and adds it to the object. |
- * @param {string} name Attribute name to set value for. |
- * @param {string} value Attribute value to set. |
- */ |
-devtools.DomNode.prototype.addAttribute_ = function(name, value) { |
- var attr = { |
- 'name': name, |
- 'value': value, |
- node_: this |
- }; |
- |
- this.attributesMap_[name] = attr; |
- this.attributes.push(attr); |
-}; |
- |
- |
-/** |
- * Sends 'remove attribute' command to the remote agent. |
- * @param {string} name Attribute name to set value for. |
- */ |
-devtools.DomNode.prototype.removeAttribute = function(name) { |
- var self = this; |
- this.ownerDocument.domAgent_.removeAttributeAsync(this, name, function() { |
- delete self.attributesMap_[name]; |
- for (var i = 0; i < self.attributes.length; ++i) { |
- if (self.attributes[i].name == name) { |
- self.attributes.splice(i, 1); |
- break; |
- } |
- } |
- }); |
-}; |
- |
- |
-/** |
- * Makes available the following methods and properties: |
- * - node.style property |
- * - node.document.defaultView.getComputedStyles(node) |
- * - node.document.defaultView.getMatchedCSSRules(node, ...) |
- * - style attribute of node's attributes |
- * @param {string} computedStyle is a cssText of result of getComputedStyle(). |
- * @param {string} inlineStyle is a style.cssText (defined in the STYLE |
- * attribute). |
- * @param {Object} styleAttributes represents 'style' property |
- * of attributes. |
- * @param {Array.<object>} matchedCSSRules represents result of the |
- * getMatchedCSSRules(node, '', authorOnly). Each elemet consists of: |
- * selector, rule.style.cssText[, rule.parentStyleSheet.href |
- * [, rule.parentStyleSheet.ownerNode.nodeName]]. |
- */ |
-devtools.DomNode.prototype.setStyles = function(computedStyle, inlineStyle, |
- styleAttributes, matchedCSSRules) { |
- this.computedStyle_ = this.makeStyle_(computedStyle); |
- this.style = this.makeStyle_(inlineStyle); |
- |
- for (var name in styleAttributes) { |
- if (this.attributesMap_[name]) { |
- this.attributesMap_[name].style = |
- this.makeStyle_(styleAttributes[name]); |
- } |
- } |
- |
- this.matchedCSSRules_ = []; |
- for (var i = 0; i < matchedCSSRules.length; i++) { |
- var descr = matchedCSSRules[i]; |
- |
- var rule = {}; |
- rule.selectorText = descr['selector']; |
- rule.style = this.makeStyle_(descr['style']); |
- |
- if (descr['parentStyleSheet']) { |
- var parentStyleMock = {}; |
- parentStyleMock.href = descr['parentStyleSheet']['href']; |
- var nodeName = descr['parentStyleSheet']['ownerNodeName']; |
- if (nodeName) { |
- parentStyleMock.ownerNode = { |
- 'nodeName': nodeName |
- }; |
- } |
- rule.parentStyleSheet = parentStyleMock; |
- } |
- this.matchedCSSRules_.push(rule); |
- } |
-}; |
- |
- |
-/** |
- * Creates a style declaration. |
- * @param {payload} payload |
- * @return {devtools.CSSStyleDeclaration:undefined} |
- * @see devtools.CSSStyleDeclaration |
- */ |
-devtools.DomNode.prototype.makeStyle_ = function(payload) { |
- var style = new devtools.CSSStyleDeclaration(payload); |
- style.nodeId_ = this.id_; |
- return style; |
-}; |
- |
- |
-/** |
- * Remove references to the style information to release |
- * resources when styles are not going to be used. |
- * @see setStyles. |
- */ |
-devtools.DomNode.prototype.clearStyles = function() { |
- this.computedStyle = null; |
- this.style = null; |
- for (var name in this.attributesMap_) { |
- this.attributesMap_[name].style = null; |
- } |
- this.matchedCSSRules_ = null; |
-}; |
- |
- |
-/** |
- * Remote Dom document abstraction. |
- * @param {devtools.DomAgent} domAgent owner agent. |
- * @param {devtools.DomWindow} defaultView owner window. |
- * @constructor. |
- */ |
-devtools.DomDocument = function(domAgent, defaultView) { |
- devtools.DomNode.call(this, null, |
- [ |
- 0, // id |
- 9, // type = Node.DOCUMENT_NODE, |
- '', // nodeName |
- '', // nodeValue |
- [], // attributes |
- 0, // childNodeCount |
- ]); |
- this.listeners_ = {}; |
- this.domAgent_ = domAgent; |
- this.defaultView = defaultView; |
-}; |
-goog.inherits(devtools.DomDocument, devtools.DomNode); |
- |
- |
-/** |
- * Adds event listener to the Dom. |
- * @param {string} name Event name. |
- * @param {function(Event):undefined} callback Listener callback. |
- * @param {bool} useCapture Listener's useCapture settings. |
- */ |
-devtools.DomDocument.prototype.addEventListener = |
- function(name, callback, useCapture) { |
- var listeners = this.listeners_[name]; |
- if (!listeners) { |
- listeners = []; |
- this.listeners_[name] = listeners; |
- } |
- listeners.push(callback); |
-}; |
- |
- |
-/** |
- * Removes event listener from the Dom. |
- * @param {string} name Event name. |
- * @param {function(Event):undefined} callback Listener callback. |
- * @param {bool} useCapture Listener's useCapture settings. |
- */ |
-devtools.DomDocument.prototype.removeEventListener = |
- function(name, callback, useCapture) { |
- var listeners = this.listeners_[name]; |
- if (!listeners) { |
- return; |
- } |
- var index = listeners.indexOf(callback); |
- if (index != -1) { |
- listeners.splice(index, 1); |
- } |
-}; |
- |
- |
-/** |
- * Fires Dom event to the listeners for given event type. |
- * @param {string} name Event type. |
- * @param {Event} event Event to fire. |
- * @private |
- */ |
-devtools.DomDocument.prototype.fireDomEvent_ = function(name, event) { |
- var listeners = this.listeners_[name]; |
- if (!listeners) { |
- return; |
- } |
- for (var i = 0; i < listeners.length; ++i) { |
- listeners[i](event); |
- } |
-}; |
- |
- |
- |
-/** |
- * Simulation of inspected DOMWindow. |
- * @param {devtools.DomAgent} domAgent owner agent. |
- * @constructor |
- */ |
-devtools.DomWindow = function(domAgent) { |
- this.document = new devtools.DomDocument(domAgent, this); |
-}; |
- |
-/** |
- * Represents DOM Node class. |
- */ |
-devtools.DomWindow.prototype.__defineGetter__('Node', function() { |
- return devtools.DomNode; |
-}); |
- |
-/** |
- * Represents DOM Element class. |
- * @constructor |
- */ |
-devtools.DomWindow.prototype.__defineGetter__('Element', function() { |
- return devtools.DomNode; |
-}); |
- |
- |
-/** |
- * See usages in ScopeChainSidebarPane.js where it's called as |
- * constructor. |
- */ |
-devtools.DomWindow.prototype.Object = function() { |
-}; |
- |
- |
-/** |
- * Simulates the DOM interface for styles. |
- * @param {devtools.DomNode} node |
- * @return {CSSStyleDescription} |
- */ |
-devtools.DomWindow.prototype.getComputedStyle = function(node) { |
- return node.computedStyle_; |
-}; |
- |
- |
-/** |
- * Simulates the DOM interface for styles. |
- * @param {devtools.DomNode} nodeStyles |
- * @param {string} pseudoElement assumed to be empty string. |
- * @param {boolean} authorOnly assumed to be equal to authorOnly argument of |
- * getNodeStylesAsync. |
- * @return {CSSStyleDescription} |
- */ |
-devtools.DomWindow.prototype.getMatchedCSSRules = function(node, |
- pseudoElement, authorOnly) { |
- return node.matchedCSSRules_; |
-}; |
- |
- |
-/** |
- * Creates DomAgent Js representation. |
- * @constructor |
- */ |
-devtools.DomAgent = function() { |
- RemoteDomAgent.DidGetChildNodes = |
- devtools.Callback.processCallback; |
- RemoteDomAgent.DidPerformSearch = |
- devtools.Callback.processCallback; |
- RemoteDomAgent.DidApplyDomChange = |
- devtools.Callback.processCallback; |
- RemoteDomAgent.DidRemoveAttribute = |
- devtools.Callback.processCallback; |
- RemoteDomAgent.DidSetTextNodeValue = |
- devtools.Callback.processCallback; |
- RemoteDomAgent.AttributesUpdated = |
- goog.bind(this.attributesUpdated, this); |
- RemoteDomAgent.SetDocumentElement = |
- goog.bind(this.setDocumentElement, this); |
- RemoteDomAgent.SetChildNodes = |
- goog.bind(this.setChildNodes, this); |
- RemoteDomAgent.HasChildrenUpdated = |
- goog.bind(this.hasChildrenUpdated, this); |
- RemoteDomAgent.ChildNodeInserted = |
- goog.bind(this.childNodeInserted, this); |
- RemoteDomAgent.ChildNodeRemoved = |
- goog.bind(this.childNodeRemoved, this); |
- |
- /** |
- * Top-level (and the only) document. |
- * @type {devtools.DomWindow} |
- * @private |
- */ |
- this.window_ = null; |
- |
- /** |
- * Id to node mapping. |
- * @type {Object} |
- * @private |
- */ |
- this.idToDomNode_ = null; |
- |
- /** |
- * @type {Array.<number>} Node ids for search results. |
- * @private |
- */ |
- this.searchResults_ = null; |
-}; |
- |
- |
-/** |
- * Resets dom agent to its initial state. |
- */ |
-devtools.DomAgent.prototype.reset = function() { |
- this.window_ = new devtools.DomWindow(this); |
- this.idToDomNode_ = { 0 : this.getDocument() }; |
- this.searchResults_ = []; |
-}; |
- |
- |
-/** |
- * @return {devtools.DomWindow} Window for the top level (and the only) document. |
- */ |
-devtools.DomAgent.prototype.getWindow = function() { |
- return this.window_; |
-}; |
- |
- |
-/** |
- * @return {devtools.DomDocument} A document of the top level window. |
- */ |
-devtools.DomAgent.prototype.getDocument = function() { |
- return this.window_.document; |
-}; |
- |
- |
-/** |
- * Requests that the document element is sent from the agent. |
- */ |
-devtools.DomAgent.prototype.getDocumentElementAsync = function() { |
- if (this.getDocument().documentElement) { |
- return; |
- } |
- RemoteDomAgent.GetDocumentElement(); |
-}; |
- |
- |
-/** |
- * Asynchronously fetches children from the element with given id. |
- * @param {devtools.DomNode} parent Element to get children for. |
- * @param {function(devtools.DomNode):undefined} opt_callback Callback with |
- * the result. |
- */ |
-devtools.DomAgent.prototype.getChildNodesAsync = function(parent, |
- opt_callback) { |
- var children = parent.children; |
- if (children && opt_callback) { |
- opt_callback(children); |
- return; |
- } |
- var mycallback = function() { |
- if (opt_callback) { |
- opt_callback(parent.children); |
- } |
- }; |
- var callId = devtools.Callback.wrap(mycallback); |
- RemoteDomAgent.GetChildNodes(callId, parent.id_); |
-}; |
- |
- |
-/** |
- * Sends 'set attribute' command to the remote agent. |
- * @param {devtools.DomNode} node Node to change. |
- * @param {string} name Attribute name to set value for. |
- * @param {string} value Attribute value to set. |
- * @param {function():undefined} opt_callback Callback on success. |
- */ |
-devtools.DomAgent.prototype.setAttributeAsync = function(node, name, value, |
- callback) { |
- var mycallback = goog.bind(this.didApplyDomChange_, this, node, callback); |
- RemoteDomAgent.SetAttribute(devtools.Callback.wrap(mycallback), |
- node.id_, name, value); |
-}; |
- |
- |
-/** |
- * Sends 'remove attribute' command to the remote agent. |
- * @param {devtools.DomNode} node Node to change. |
- * @param {string} name Attribute name to set value for. |
- * @param {function():undefined} opt_callback Callback on success. |
- */ |
-devtools.DomAgent.prototype.removeAttributeAsync = function(node, name, |
- callback) { |
- var mycallback = goog.bind(this.didApplyDomChange_, this, node, callback); |
- RemoteDomAgent.RemoveAttribute(devtools.Callback.wrap(mycallback), |
- node.id_, name); |
-}; |
- |
- |
-/** |
- * Sends 'set text node value' command to the remote agent. |
- * @param {devtools.DomNode} node Node to change. |
- * @param {string} text Text value to set. |
- * @param {function():undefined} opt_callback Callback on success. |
- */ |
-devtools.DomAgent.prototype.setTextNodeValueAsync = function(node, text, |
- callback) { |
- var mycallback = goog.bind(this.didApplyDomChange_, this, node, callback); |
- RemoteDomAgent.SetTextNodeValue(devtools.Callback.wrap(mycallback), |
- node.id_, text); |
-}; |
- |
- |
-/** |
- * Universal callback wrapper for edit dom operations. |
- * @param {devtools.DomNode} node Node to apply local changes on. |
- * @param {Function} callback Post-operation call. |
- * @param {boolean} success True iff operation has completed successfully. |
- */ |
-devtools.DomAgent.prototype.didApplyDomChange_ = function(node, |
- callback, success) { |
- if (!success) { |
- return; |
- } |
- callback(); |
- var elem = WebInspector.panels.elements.treeOutline.findTreeElement(node); |
- if (elem) { |
- elem._updateTitle(); |
- } |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.attributesUpdated = function(nodeId, attrsArray) { |
- var node = this.idToDomNode_[nodeId]; |
- node.setAttributesPayload_(attrsArray); |
-}; |
- |
- |
-/** |
- * Returns node for id. |
- * @param {number} nodeId Id to get node for. |
- * @return {devtools.DomNode} Node with given id. |
- */ |
-devtools.DomAgent.prototype.getNodeForId = function(nodeId) { |
- return this.idToDomNode_[nodeId]; |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.setDocumentElement = function(payload) { |
- var doc = this.getDocument(); |
- if (doc.documentElement) { |
- this.reset(); |
- doc = this.getDocument(); |
- } |
- this.setChildNodes(0, [payload]); |
- doc.documentElement = doc.firstChild; |
- doc.documentElement.ownerDocument = doc; |
- WebInspector.panels.elements.reset(); |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.setChildNodes = function(parentId, payloads) { |
- var parent = this.idToDomNode_[parentId]; |
- if (parent.children) { |
- return; |
- } |
- parent.setChildrenPayload_(payloads); |
- this.bindNodes_(parent.children); |
-}; |
- |
- |
-/** |
- * Binds nodes to ids recursively. |
- * @param {Array.<devtools.DomNode>} children Nodes to bind. |
- */ |
-devtools.DomAgent.prototype.bindNodes_ = function(children) { |
- for (var i = 0; i < children.length; ++i) { |
- var child = children[i]; |
- this.idToDomNode_[child.id_] = child; |
- if (child.children) { |
- this.bindNodes_(child.children); |
- } |
- } |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.hasChildrenUpdated = function(nodeId, newValue) { |
- var node = this.idToDomNode_[nodeId]; |
- var outline = WebInspector.panels.elements.treeOutline; |
- var treeElement = outline.findTreeElement(node); |
- if (treeElement) { |
- treeElement.hasChildren = newValue; |
- treeElement.whitespaceIgnored = Preferences.ignoreWhitespace; |
- } |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.childNodeInserted = function( |
- parentId, prevId, payload) { |
- var parent = this.idToDomNode_[parentId]; |
- var prev = this.idToDomNode_[prevId]; |
- var node = parent.insertChild_(prev, payload); |
- this.idToDomNode_[node.id_] = node; |
- var event = { target : node, relatedNode : parent }; |
- this.getDocument().fireDomEvent_('DOMNodeInserted', event); |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.childNodeRemoved = function( |
- parentId, nodeId) { |
- var parent = this.idToDomNode_[parentId]; |
- var node = this.idToDomNode_[nodeId]; |
- parent.removeChild_(node); |
- var event = { target : node, relatedNode : parent }; |
- this.getDocument().fireDomEvent_('DOMNodeRemoved', event); |
- delete this.idToDomNode_[nodeId]; |
-}; |
- |
- |
-/** |
- * @see DomAgentDelegate. |
- * {@inheritDoc}. |
- */ |
-devtools.DomAgent.prototype.performSearch = function(query, callback) { |
- this.searchResults_ = []; |
- RemoteDomAgent.PerformSearch( |
- devtools.Callback.wrap( |
- goog.bind(this.performSearchCallback_, this, callback, |
- this.searchResults_)), |
- query); |
-}; |
- |
- |
-/** |
- * Invokes callback for nodes that needs to clear highlighting. |
- * @param {function(Array.<devtools.DomNode>)} callback to accept the result. |
- */ |
-devtools.DomAgent.prototype.searchCanceled = function(callback) { |
- if (!this.searchResults_) |
- return; |
- |
- var nodes = []; |
- for (var i = 0; i < this.searchResults_.length; ++i) { |
- var nodeId = this.searchResults_[i]; |
- var node = this.idToDomNode_[nodeId]; |
- nodes.push(node); |
- } |
- |
- callback(nodes); |
- this.searchResults_ = null; |
-}; |
- |
- |
-/** |
- * Invokes callback for each node that needs to gain highlighting. |
- * @param {function(Array.<devtools.DomNode>)} callback to accept the result. |
- * @param {Array.<number>} searchResults to be populated. |
- * @param {Array.<number>} nodeIds Ids to highlight. |
- */ |
-devtools.DomAgent.prototype.performSearchCallback_ = function(callback, |
- searchResults, nodeIds) { |
- |
- if (this.searchResults_ !== searchResults) |
- return; // another search has requested and this results are obsolete |
- |
- var nodes = []; |
- |
- for (var i = 0; i < nodeIds.length; ++i) { |
- var node = this.idToDomNode_[nodeIds[i]]; |
- searchResults.push(nodeIds[i]); |
- nodes.push(node); |
- } |
- |
- callback(nodes); |
-}; |
- |
- |
-/** |
- * Returns a node by index from the actual search results |
- * (last performSearch). |
- * @param {number} index in the results. |
- * @return {devtools.DomNode} |
- */ |
-devtools.DomAgent.prototype.getSearchResultNode = function(index) { |
- return this.idToDomNode_[this.searchResults_[index]]; |
-}; |
- |
- |
-/** |
- * Returns all properties of the given node. |
- * @param {number} nodeId Node to get properties for. |
- * @param {Array.<string>} path Path to the object. |
- * @param {number} protoDepth Depth to the exact proto level. |
- * @param {function(string):undefined} callback Function to call with the |
- * result. |
- */ |
-devtools.DomAgent.prototype.getNodePropertiesAsync = function(nodeId, |
- path, protoDepth, callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction(callbackId, |
- 'getProperties', nodeId, |
- JSON.stringify([path, protoDepth])); |
-}; |
- |
- |
-/** |
- * Returns prototype chain for a given node. |
- * @param {number} nodeId Node to get prototypes for. |
- * @param {Function} callback. |
- */ |
-devtools.DomAgent.prototype.getNodePrototypesAsync = function(nodeId, |
- callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction(callbackId, |
- 'getPrototypes', nodeId, '[]'); |
-}; |
- |
- |
-/** |
- * Returns styles for given node. |
- * @param {devtools.DomNode} node Node to get prototypes for. |
- * @param {boolean} authorOnly Returns only author styles if true. |
- * @param {Function} callback. |
- */ |
-devtools.DomAgent.prototype.getNodeStylesAsync = function(node, |
- authorOnly, callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction(callbackId, |
- 'getStyles', |
- node.id_, |
- JSON.stringify([authorOnly])); |
-}; |
- |
- |
-/** |
- * Toggles style with given id on/off. |
- * @param {devtools.CSSStyleDeclaration} style Style to toggle. |
- * @param {boolean} enabled True if style should be enabled. |
- * @param {string} name Style name. |
- * @param {Function} callback. |
- */ |
-devtools.DomAgent.prototype.toggleNodeStyleAsync = function( |
- style, enabled, name, callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction(callbackId, |
- 'toggleNodeStyle', |
- style.nodeId_, |
- JSON.stringify([style.id_, enabled, name])); |
-}; |
- |
- |
-/** |
- * Applies new text to a style. |
- * @param {devtools.CSSStyleDeclaration} style Style to edit. |
- * @param {string} name Property name to edit. |
- * @param {string} styleText Text to set the style from. |
- * @param {Function} callback. |
- */ |
-devtools.DomAgent.prototype.applyStyleTextAsync = function( |
- style, name, styleText, callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction( |
- callbackId, |
- 'applyStyleText', |
- style.nodeId_, |
- JSON.stringify([style.id_, name, styleText])); |
-}; |
- |
- |
-/** |
- * Sets style property with given name to a value. |
- * @param {devtools.DomNode} node Node to edit style for. |
- * @param {string} name Property name to edit. |
- * @param {string} value New value. |
- * @param {Function} callback. |
- */ |
-devtools.DomAgent.prototype.setStylePropertyAsync = function( |
- node, name, value, callback) { |
- var callbackId = this.utilityFunctionCallbackWrapper_(callback); |
- RemoteToolsAgent.ExecuteUtilityFunction( |
- callbackId, |
- 'setStyleProperty', |
- node.id_, |
- JSON.stringify([name, value])); |
-}; |
- |
- |
-/** |
- * Dumps exception if something went wrong in ExecuteUtilityFunction. |
- * @param {Function} callback Callback to wrap. |
- * @return {number} Callback id. |
- */ |
-devtools.DomAgent.prototype.utilityFunctionCallbackWrapper_ = |
- function(callback) { |
- var mycallback = function(result, exception) { |
- if (exception && exception.length) { |
- debugPrint('Exception in ExecuteUtilityFunction styles:' + exception); |
- return; |
- } |
- callback(result); |
- }; |
- return devtools.Callback.wrap(mycallback); |
-}; |
- |
- |
-/** |
- * Represents remote CSSStyleDeclaration for using in StyleSidebarPane. |
- * @param {id, Array<Object>} payload built by inject's getStyle from the |
- * injected js. |
- * @constructor |
- */ |
-devtools.CSSStyleDeclaration = function(payload) { |
- this.id_ = payload[0]; |
- this.width = payload[1]; |
- this.height = payload[2]; |
- this.__disabledProperties = payload[3]; |
- this.__disabledPropertyValues = payload[4]; |
- this.__disabledPropertyPriorities = payload[5]; |
- |
- this.length = payload.length - 6; |
- this.priority_ = {}; |
- this.implicit_ = {}; |
- this.shorthand_ = {}; |
- this.value_ = {}; |
- |
- for (var i = 6; i < payload.length; ++i) { |
- var p = payload[i]; |
- var name = p[0]; |
- |
- this.priority_[name] = p[1]; |
- this.implicit_[name] = p[2]; |
- this.shorthand_[name] = p[3]; |
- this.value_[name] = p[4]; |
- |
- this[i - 6] = name; |
- } |
-}; |
- |
- |
-/** |
- * @param {string} name of a CSS property. |
- * @return {string} |
- */ |
-devtools.CSSStyleDeclaration.prototype.getPropertyValue = function(name) { |
- return this.value_[name] || ''; |
-}; |
- |
- |
-/** |
- * @param {string} name of a CSS property. |
- * @return {string} 'important' | ''. |
- */ |
-devtools.CSSStyleDeclaration.prototype.getPropertyPriority = function(name) { |
- return this.priority_[name] || ''; |
-}; |
- |
- |
-/** |
- * @param {string} name of a CSS property. |
- * @return {string} shorthand name or '' |
- */ |
-devtools.CSSStyleDeclaration.prototype.getPropertyShorthand = function(name) { |
- return this.shorthand_[name] || ''; |
-}; |
- |
- |
-/** |
- * @param {string} name of a CSS property. |
- * @return {boolean} |
- */ |
-devtools.CSSStyleDeclaration.prototype.isPropertyImplicit = function(name) { |
- return !!this.implicit_[name]; |
-}; |
- |
- |
-function firstChildSkippingWhitespace() { |
- return this.firstChild; |
-} |
- |
- |
-function onlyTextChild() { |
- if (!this.children) { |
- return null; |
- } else if (this.children.length == 1 && |
- this.children[0].nodeType == Node.TEXT_NODE) { |
- return this.children[0]; |
- } else { |
- return null; |
- } |
-} |