15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2009, 2010 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2009 Joseph Pecoraro 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 34a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMAgent} domAgent 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?WebInspector.DOMDocument} doc 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} isInShadowTree 37a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMNode = function(domAgent, doc, isInShadowTree, payload) { 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent = domAgent; 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.ownerDocument = doc; 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._isInShadowTree = isInShadowTree; 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.id = payload.nodeId; 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) domAgent._idToDOMNode[this.id] = this; 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._nodeType = payload.nodeType; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._nodeName = payload.nodeName; 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._localName = payload.localName; 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._nodeValue = payload.nodeValue; 5006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._pseudoType = payload.pseudoType; 5151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) this._shadowRootType = payload.shadowRootType; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._shadowRoots = []; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributes = []; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributesMap = {}; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (payload.attributes) 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._setAttributesPayload(payload.attributes); 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._userProperties = {}; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._descendantUserPropertyCounters = {}; 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 635267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._childNodeCount = payload.childNodeCount || 0; 645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._children = null; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.nextSibling = null; 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.previousSibling = null; 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.firstChild = null; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.lastChild = null; 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.parentNode = null; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 725267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (payload.shadowRoots) { 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < payload.shadowRoots.length; ++i) { 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var root = payload.shadowRoots[i]; 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = new WebInspector.DOMNode(this._domAgent, this.ownerDocument, true, root); 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._shadowRoots.push(node); 775267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) node.parentNode = this; 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 815267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (payload.templateContent) { 82926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this._templateContent = new WebInspector.DOMNode(this._domAgent, this.ownerDocument, true, payload.templateContent); 835267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._templateContent.parentNode = this; 845267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) } 85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (payload.children) 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._setChildrenPayload(payload.children); 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._setPseudoElements(payload.pseudoElements); 9006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (payload.contentDocument) { 925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._contentDocument = new WebInspector.DOMDocument(domAgent, payload.contentDocument); 935267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._children = [this._contentDocument]; 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._renumber(); 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._nodeType === Node.ELEMENT_NODE) { 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // HTML and BODY from internal iframes should not overwrite top-level ones. 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.ownerDocument && !this.ownerDocument.documentElement && this._nodeName === "HTML") 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.ownerDocument.documentElement = this; 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.ownerDocument && !this.ownerDocument.body && this._nodeName === "BODY") 1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.ownerDocument.body = this; 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else if (this._nodeType === Node.DOCUMENT_TYPE_NODE) { 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.publicId = payload.publicId; 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.systemId = payload.systemId; 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.internalSubset = payload.internalSubset; 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else if (this._nodeType === Node.ATTRIBUTE_NODE) { 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.name = payload.name; 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.value = payload.value; 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)WebInspector.DOMNode.PseudoElementNames = { 11406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) Before: "before", 11506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) After: "after" 11606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} 11706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 11851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)WebInspector.DOMNode.ShadowRootTypes = { 11951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) UserAgent: "user-agent", 12051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) Author: "author" 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMNode.prototype = { 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 125a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {?Array.<!WebInspector.DOMNode>} 1265267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 1275267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) children: function() 1285267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) { 1295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return this._children ? this._children.slice() : null; 1305267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) }, 1315267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 1325267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /** 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) hasAttributes: function() 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._attributes.length > 0; 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1415267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) * @return {number} 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1435267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) childNodeCount: function() 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1455267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return this._childNodeCount; 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) hasShadowRoots: function() 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return !!this._shadowRoots.length; 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 157a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Array.<!WebInspector.DOMNode>} 1585267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 1595267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) shadowRoots: function() 1605267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) { 1615267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return this._shadowRoots.slice(); 1625267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) }, 1635267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 1645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /** 165a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.DOMNode} 1665267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 1675267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) templateContent: function() 1685267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) { 1695267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return this._templateContent; 1705267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) }, 1715267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 1725267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /** 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {number} 1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) nodeType: function() 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._nodeType; 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) nodeName: function() 1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._nodeName; 1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 18906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) * @return {string|undefined} 19006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) */ 19106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) pseudoType: function() 19206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) { 19306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return this._pseudoType; 19406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) }, 19506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 19606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) /** 19706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) * @return {boolean} 19806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) */ 19906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) hasPseudoElements: function() 20006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) { 20106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return Object.keys(this._pseudoElements).length !== 0; 20206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) }, 20306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 20406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) /** 205a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Object.<string, !WebInspector.DOMNode>} 20606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) */ 20706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) pseudoElements: function() 20806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) { 20906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return this._pseudoElements; 21006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) }, 21106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 21206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) /** 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isInShadowTree: function() 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._isInShadowTree; 2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 22151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) * @return {?string} 22251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) */ 22351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) shadowRootType: function() 22451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) { 22551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) return this._shadowRootType || null; 22651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) }, 22751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) 22851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) /** 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) nodeNameInCorrectCase: function() 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.isXMLNode() ? this.nodeName() : this.nodeName().toLowerCase(); 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setNodeName: function(name, callback) 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.setNodeName(this.id, name, WebInspector.domAgent._markRevision(this, callback)); 2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) localName: function() 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._localName; 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) nodeValue: function() 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._nodeValue; 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setNodeValue: function(value, callback) 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.setNodeValue(this.id, value, WebInspector.domAgent._markRevision(this, callback)); 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) getAttribute: function(name) 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var attr = this._attributesMap[name]; 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return attr ? attr.value : undefined; 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} text 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setAttribute: function(name, text, callback) 2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.setAttributesAsText(this.id, text, name, WebInspector.domAgent._markRevision(this, callback)); 2885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 2925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setAttributeValue: function(name, value, callback) 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.setAttributeValue(this.id, name, value, WebInspector.domAgent._markRevision(this, callback)); 2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 301a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!Object} 3025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) attributes: function() 3045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._attributes; 3065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 3115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) removeAttribute: function(name, callback) 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 315e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?Protocol.Error} error 316e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMNode} 3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function mycallback(error) 3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!error) { 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._attributesMap[name]; 3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < this._attributes.length; ++i) { 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._attributes[i].name === name) { 3245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributes.splice(i, 1); 3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) break; 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.domAgent._markRevision(this, callback)(error); 3315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.removeAttribute(this.id, name, mycallback.bind(this)); 3335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 336a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(?Array.<!WebInspector.DOMNode>)=} callback 3375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) getChildNodes: function(callback) 3395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3405267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (this._children) { 3415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (callback) 3425267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) callback(this.children()); 3435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 3445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @this {WebInspector.DOMNode} 3485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 3495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function mycallback(error) 3515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 35206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (callback) 35306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) callback(error ? null : this.children()); 3545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 3555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 356926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) DOMAgent.requestChildNodes(this.id, undefined, mycallback.bind(this)); 357926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) }, 358926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 359926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 360926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {number} depth 361a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(?Array.<!WebInspector.DOMNode>)=} callback 362926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 363926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) getSubtree: function(depth, callback) 364926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) { 365926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 366926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @this {WebInspector.DOMNode} 367926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {?Protocol.Error} error 368926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 369926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) function mycallback(error) 370926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) { 371926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (callback) 3725267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) callback(error ? null : this._children); 373926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 374926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 375926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) DOMAgent.requestChildNodes(this.id, depth, mycallback.bind(this)); 3765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 3805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) getOuterHTML: function(callback) 3825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.getOuterHTML(this.id, callback); 3845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} html 3885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 3895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setOuterHTML: function(html, callback) 3915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.setOuterHTML(this.id, html, WebInspector.domAgent._markRevision(this, callback)); 3935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 396a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(?Protocol.Error, !DOMAgent.NodeId=)=} callback 3975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) removeNode: function(callback) 3995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.removeNode(this.id, WebInspector.domAgent._markRevision(this, callback)); 4015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) copyNode: function() 4045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function copy(error, text) 4065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!error) 4085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) InspectorFrontendHost.copyText(text); 4095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.getOuterHTML(this.id, copy); 4115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 414926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {string} objectGroupId 4155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 4165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 417926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) eventListeners: function(objectGroupId, callback) 4185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 419926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) DOMAgent.getEventListenersForNode(this.id, objectGroupId, callback); 4205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 4235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 4245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) path: function() 4265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var path = []; 4285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this; 4295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) while (node && "index" in node && node._nodeName.length) { 4305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) path.push([node.index, node._nodeName]); 4315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node = node.parentNode; 4325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) path.reverse(); 4345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return path.join(","); 4355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 438a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} node 4395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 4405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isAncestor: function(node) 4425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!node) 4445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return false; 4455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var currentNode = node.parentNode; 4475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) while (currentNode) { 4485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this === currentNode) 4495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return true; 4505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) currentNode = currentNode.parentNode; 4515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return false; 4535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 456a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} descendant 4575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 4585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isDescendant: function(descendant) 4605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return descendant !== null && descendant.isAncestor(this); 4625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 465a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<string>} attrs 4665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 4675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setAttributesPayload: function(attrs) 4695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var attributesChanged = !this._attributes || attrs.length !== this._attributes.length * 2; 4715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var oldAttributesMap = this._attributesMap || {}; 4725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributes = []; 4745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributesMap = {}; 4755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < attrs.length; i += 2) { 4775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var name = attrs[i]; 4785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var value = attrs[i + 1]; 4795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._addAttribute(name, value); 4805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (attributesChanged) 4825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) continue; 4835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!oldAttributesMap[name] || oldAttributesMap[name].value !== value) 4855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) attributesChanged = true; 4865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 4875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return attributesChanged; 4885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 4895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 491a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} prev 492a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 493a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!WebInspector.DOMNode} 4945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 4955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _insertChild: function(prev, payload) 4965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 4975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = new WebInspector.DOMNode(this._domAgent, this.ownerDocument, this._isInShadowTree, payload); 4985267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._children.splice(this._children.indexOf(prev) + 1, 0, node); 4995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._renumber(); 5005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return node; 5015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 504a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} node 5055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _removeChild: function(node) 5075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 50806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (node.pseudoType()) { 50906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) delete this._pseudoElements[node.pseudoType()]; 51006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) } else { 51106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var shadowRootIndex = this._shadowRoots.indexOf(node); 51206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (shadowRootIndex !== -1) 51306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._shadowRoots.splice(shadowRootIndex, 1); 51406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) else 51506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._children.splice(this._children.indexOf(node), 1); 51606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) } 5175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node.parentNode = null; 5185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node._updateChildUserPropertyCountsOnRemoval(this); 5195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._renumber(); 5205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 523a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.Node>} payloads 5245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setChildrenPayload: function(payloads) 5265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // We set children in the constructor. 5285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._contentDocument) 5295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 5305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5315267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._children = []; 5325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < payloads.length; ++i) { 5335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var payload = payloads[i]; 5345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = new WebInspector.DOMNode(this._domAgent, this.ownerDocument, this._isInShadowTree, payload); 5355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._children.push(node); 5365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 5375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._renumber(); 5385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 54006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) /** 541a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.Node>|undefined} payloads 54206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) */ 54306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) _setPseudoElements: function(payloads) 54406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) { 54506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._pseudoElements = {}; 54606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (!payloads) 54706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return; 54806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 54906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) for (var i = 0; i < payloads.length; ++i) { 55006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var node = new WebInspector.DOMNode(this._domAgent, this.ownerDocument, this._isInShadowTree, payloads[i]); 55106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) node.parentNode = this; 55206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._pseudoElements[node.pseudoType()] = node; 55306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) } 55406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) }, 55506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 5565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _renumber: function() 5575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5585267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._childNodeCount = this._children.length; 5595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._childNodeCount == 0) { 5605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.firstChild = null; 5615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.lastChild = null; 5625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 5635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 5645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this.firstChild = this._children[0]; 5655267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this.lastChild = this._children[this._childNodeCount - 1]; 5665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < this._childNodeCount; ++i) { 5675267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) var child = this._children[i]; 5685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) child.index = i; 5695267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) child.nextSibling = i + 1 < this._childNodeCount ? this._children[i + 1] : null; 5705267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) child.previousSibling = i - 1 >= 0 ? this._children[i - 1] : null; 5715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) child.parentNode = this; 5725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 5735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 5765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 5775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 5785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _addAttribute: function(name, value) 5805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var attr = { 5825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) name: name, 5835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) value: value, 5845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _node: this 5855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }; 5865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributesMap[name] = attr; 5875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributes.push(attr); 5885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 5895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 5915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 5925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 5935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 5945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setAttribute: function(name, value) 5955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 5965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var attr = this._attributesMap[name]; 5975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (attr) 5985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) attr.value = value; 5995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else 6005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._addAttribute(name, value); 6015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 6055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _removeAttribute: function(name) 6075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var attr = this._attributesMap[name]; 6095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (attr) { 6105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributes.remove(attr); 6115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._attributesMap[name]; 6125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 6135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 616a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} targetNode 6175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?WebInspector.DOMNode} anchorNode 618a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(?Protocol.Error, !DOMAgent.NodeId=)=} callback 6195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) moveTo: function(targetNode, anchorNode, callback) 6215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.moveTo(this.id, targetNode.id, anchorNode ? anchorNode.id : undefined, WebInspector.domAgent._markRevision(this, callback)); 6235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 6275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 6285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) isXMLNode: function() 6295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return !!this.ownerDocument && !!this.ownerDocument.xmlVersion; 6315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _updateChildUserPropertyCountsOnRemoval: function(parentNode) 6345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var result = {}; 6365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._userProperties) { 6375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var name in this._userProperties) 6385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) result[name] = (result[name] || 0) + 1; 6395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 6405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._descendantUserPropertyCounters) { 6425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var name in this._descendantUserPropertyCounters) { 6435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var counter = this._descendantUserPropertyCounters[name]; 6445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) result[name] = (result[name] || 0) + counter; 6455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 6465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 6475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var name in result) 6495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) parentNode._updateDescendantUserPropertyCount(name, -result[name]); 6505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _updateDescendantUserPropertyCount: function(name, delta) 6535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._descendantUserPropertyCounters.hasOwnProperty(name)) 6555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._descendantUserPropertyCounters[name] = 0; 6565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._descendantUserPropertyCounters[name] += delta; 6575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._descendantUserPropertyCounters[name]) 6585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._descendantUserPropertyCounters[name]; 6595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.parentNode) 6605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.parentNode._updateDescendantUserPropertyCount(name, delta); 6615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setUserProperty: function(name, value) 6645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (value === null) { 6665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.removeUserProperty(name); 6675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 6685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 6695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.parentNode && !this._userProperties.hasOwnProperty(name)) 6715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.parentNode._updateDescendantUserPropertyCount(name, 1); 6725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._userProperties[name] = value; 6745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) removeUserProperty: function(name) 6775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!this._userProperties.hasOwnProperty(name)) 6795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 6805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._userProperties[name]; 6825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.parentNode) 6835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.parentNode._updateDescendantUserPropertyCount(name, -1); 6845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) getUserProperty: function(name) 6875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._userProperties ? this._userProperties[name] : null; 6895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) descendantUserPropertyCount: function(name) 6925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 6935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._descendantUserPropertyCounters && this._descendantUserPropertyCounters[name] ? this._descendantUserPropertyCounters[name] : 0; 6945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 6955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 6975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} url 6985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {?string} 6995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) resolveURL: function(url) 7015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!url) 7035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return url; 7045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var frameOwnerCandidate = this; frameOwnerCandidate; frameOwnerCandidate = frameOwnerCandidate.parentNode) { 7055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (frameOwnerCandidate.baseURL) 7065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return WebInspector.ParsedURL.completeURL(frameOwnerCandidate.baseURL, url); 7075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return null; 7095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 7115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 7135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {WebInspector.DOMNode} 7145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 715a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMAgent} domAgent 716a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 7175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMDocument = function(domAgent, payload) 7195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 7205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.DOMNode.call(this, domAgent, this, false, payload); 7215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.documentURL = payload.documentURL || ""; 722e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) this.baseURL = payload.baseURL || ""; 7235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.xmlVersion = payload.xmlVersion; 7245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._listeners = {}; 7255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 7265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMDocument.prototype = { 7285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) __proto__: WebInspector.DOMNode.prototype 7295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 7305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 7325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {WebInspector.Object} 7335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 7345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMAgent = function() { 736e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) /** @type {!Object.<number, !WebInspector.DOMNode>} */ 7375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._idToDOMNode = {}; 738e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) /** @type {?WebInspector.DOMDocument} */ 7395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._document = null; 740e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) /** @type {!Object.<number, boolean>} */ 7415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributeLoadNodeIds = {}; 7425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) InspectorBackend.registerDOMDispatcher(new WebInspector.DOMDispatcher(this)); 743c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 744c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) this._defaultHighlighter = new WebInspector.DefaultDOMNodeHighlighter(); 745c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) this._highlighter = this._defaultHighlighter; 7465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 7475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMAgent.Events = { 7495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) AttrModified: "AttrModified", 7505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) AttrRemoved: "AttrRemoved", 7515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CharacterDataModified: "CharacterDataModified", 7525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) NodeInserted: "NodeInserted", 7535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) NodeRemoved: "NodeRemoved", 7545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DocumentUpdated: "DocumentUpdated", 7555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ChildNodeCountUpdated: "ChildNodeCountUpdated", 7565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) UndoRedoRequested: "UndoRedoRequested", 75753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) UndoRedoCompleted: "UndoRedoCompleted", 7589243a84568938a3b2704146d90a71e1405b822e4Torne (Richard Coles) InspectNodeRequested: "InspectNodeRequested" 7595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 7605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMAgent.prototype = { 7625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 763a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!WebInspector.DOMDocument)=} callback 7645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) requestDocument: function(callback) 7665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._document) { 7685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (callback) 7695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(this._document); 7705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 7715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._pendingDocumentRequestCallbacks) { 7745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingDocumentRequestCallbacks.push(callback); 7755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 7765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._pendingDocumentRequestCallbacks = [callback]; 7795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 7815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @this {WebInspector.DOMAgent} 7825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 783a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} root 7845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 7855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function onDocumentAvailable(error, root) 7865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 7875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!error) 7885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._setDocument(root); 7895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < this._pendingDocumentRequestCallbacks.length; ++i) { 7915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var callback = this._pendingDocumentRequestCallbacks[i]; 7925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (callback) 7935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(this._document); 7945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._pendingDocumentRequestCallbacks; 7965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 7975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 7985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.getDocument(onDocumentAvailable.bind(this)); 7995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 802a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {?WebInspector.DOMDocument} 8035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) existingDocument: function() 8055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._document; 8075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 810a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!RuntimeAgent.RemoteObjectId} objectId 8115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?DOMAgent.NodeId)=} callback 8125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pushNodeToFrontend: function(objectId, callback) 8145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8153c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch this._dispatchWhenDocumentAvailable(DOMAgent.requestNode.bind(DOMAgent, objectId), callback); 8165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} path 8203c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch * @param {function(?number)=} callback 8215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) pushNodeByPathToFrontend: function(path, callback) 8235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8243c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch this._dispatchWhenDocumentAvailable(DOMAgent.pushNodeByPathToFrontend.bind(DOMAgent, path), callback); 8255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 828e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) * @param {number} backendNodeId 829e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) * @param {function(?number)=} callback 830e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) */ 831e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) pushNodeByBackendIdToFrontend: function(backendNodeId, callback) 832e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) { 8333c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch this._dispatchWhenDocumentAvailable(DOMAgent.pushNodeByBackendIdToFrontend.bind(DOMAgent, backendNodeId), callback); 834e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) }, 835e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) 836e52495584422c5edb5b2944981473a2e208da323Torne (Richard Coles) /** 837a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!T)=} callback 838a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {function(?Protocol.Error, !T=)|undefined} 8393c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch * @template T 8405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _wrapClientCallback: function(callback) 8425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!callback) 8445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 8455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 8465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 847a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!T=} result 848a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @template T 8495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return function(error, result) 8515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Caller is responsible for handling the actual error. 8535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(error ? null : result); 8545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 858a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(function(?Protocol.Error, !T=)=)} func 859a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!T)=} callback 8603c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch * @template T 8615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _dispatchWhenDocumentAvailable: function(func, callback) 8635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8643c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch var callbackWrapper = this._wrapClientCallback(callback); 8655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 866e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 867e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 868e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 8695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function onDocumentAvailable() 8705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._document) 8725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) func(callbackWrapper); 8735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else { 8745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (callbackWrapper) 8755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callbackWrapper("No document"); 8765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 8785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.requestDocument(onDocumentAvailable.bind(this)); 8795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 882a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 8835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 8845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 8855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 8865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _attributeModified: function(nodeId, name, value) 8875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 8885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 8895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!node) 8905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 8915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node._setAttribute(name, value); 8935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrModified, { node: node, name: name }); 8945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 8955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 897a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 8985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 8995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _attributeRemoved: function(nodeId, name) 9015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 9035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!node) 9045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 9055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node._removeAttribute(name); 9065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrRemoved, { node: node, name: name }); 9075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 910a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.NodeId>} nodeIds 9115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _inlineStyleInvalidated: function(nodeIds) 9135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < nodeIds.length; ++i) 9155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributeLoadNodeIds[nodeIds[i]] = true; 9165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if ("_loadNodeAttributesTimeout" in this) 9175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 9185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._loadNodeAttributesTimeout = setTimeout(this._loadNodeAttributes.bind(this), 0); 9195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _loadNodeAttributes: function() 9225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 9245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @this {WebInspector.DOMAgent} 925a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 9265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 927a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<string>} attributes 9285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function callback(nodeId, error, attributes) 9305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (error) { 9325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // We are calling _loadNodeAttributes asynchronously, it is ok if node is not found. 9335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 9345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 9355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 9365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (node) { 9375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (node._setAttributesPayload(attributes)) 9385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrModified, { node: node, name: "style" }); 9395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 9405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 9415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._loadNodeAttributesTimeout; 9435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var nodeId in this._attributeLoadNodeIds) { 9455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var nodeIdAsNumber = parseInt(nodeId, 10); 9465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.getAttributes(nodeIdAsNumber, callback.bind(this, nodeIdAsNumber)); 9475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 9485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._attributeLoadNodeIds = {}; 9495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 952a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 9535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} newValue 9545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _characterDataModified: function(nodeId, newValue) 9565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 9585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node._nodeValue = newValue; 9595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.CharacterDataModified, node); 9605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 963a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 964a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {?WebInspector.DOMNode} 9655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) nodeForId: function(nodeId) 9675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 968a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) return this._idToDOMNode[nodeId] || null; 9695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _documentUpdated: function() 9725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._setDocument(null); 9745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 977a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {?DOMAgent.Node} payload 9785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setDocument: function(payload) 9805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._idToDOMNode = {}; 9825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (payload && "nodeId" in payload) 9835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._document = new WebInspector.DOMDocument(this, payload); 9845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else 9855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._document = null; 9865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.DocumentUpdated, this._document); 9875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 990a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 9915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 9925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setDetachedRoot: function(payload) 9935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 9945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (payload.nodeName === "#document") 9955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) new WebInspector.DOMDocument(this, payload); 9965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else 9975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) new WebInspector.DOMNode(this, null, false, payload); 9985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 9995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1001a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1002a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.Node>} payloads 10035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _setChildNodes: function(parentId, payloads) 10055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 10065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!parentId && payloads.length) { 10075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._setDetachedRoot(payloads[0]); 10085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 10095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 10105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var parent = this._idToDOMNode[parentId]; 10125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) parent._setChildrenPayload(payloads); 10135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1016a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 10175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} newValue 10185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _childNodeCountUpdated: function(nodeId, newValue) 10205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 10215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 10225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) node._childNodeCount = newValue; 10235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.ChildNodeCountUpdated, node); 10245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1027a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1028a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} prevId 1029a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 10305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _childNodeInserted: function(parentId, prevId, payload) 10325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 10335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var parent = this._idToDOMNode[parentId]; 10345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var prev = this._idToDOMNode[prevId]; 10355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = parent._insertChild(prev, payload); 10365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._idToDOMNode[node.id] = node; 10375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted, node); 10385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1041a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1042a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 10435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _childNodeRemoved: function(parentId, nodeId) 10455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 10465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var parent = this._idToDOMNode[parentId]; 10475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 10485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) parent._removeChild(node); 10495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._unbind(node); 10505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved, {node: node, parent: parent}); 10515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1054a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} hostId 1055a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} root 10565267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 10575267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) _shadowRootPushed: function(hostId, root) 10585267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) { 10595267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) var host = this._idToDOMNode[hostId]; 10605267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (!host) 10615267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return; 10625267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) var node = new WebInspector.DOMNode(this, host.ownerDocument, true, root); 10635267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) node.parentNode = host; 10645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._idToDOMNode[node.id] = node; 10655267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) host._shadowRoots.push(node); 1066521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted, node); 10675267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) }, 10685267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 10695267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /** 1070a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} hostId 1071a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} rootId 10725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 10735267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) _shadowRootPopped: function(hostId, rootId) 10745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 10755267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) var host = this._idToDOMNode[hostId]; 10765267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (!host) 10775267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return; 10785267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) var root = this._idToDOMNode[rootId]; 10795267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (!root) 10805267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) return; 108106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) host._removeChild(root); 10825267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._unbind(root); 10835267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved, {node: root, parent: host}); 10845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 10855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1087a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1088a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} pseudoElement 10899bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) */ 10909bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) _pseudoElementAdded: function(parentId, pseudoElement) 10919bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) { 109206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var parent = this._idToDOMNode[parentId]; 109306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (!parent) 109406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return; 109506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var node = new WebInspector.DOMNode(this, parent.ownerDocument, false, pseudoElement); 109606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) node.parentNode = parent; 109706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._idToDOMNode[node.id] = node; 109806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) console.assert(!parent._pseudoElements[node.pseudoType()]); 109906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) parent._pseudoElements[node.pseudoType()] = node; 110006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted, node); 11019bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) }, 11029bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 11039bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) /** 1104a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1105a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} pseudoElementId 11069bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) */ 11079bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) _pseudoElementRemoved: function(parentId, pseudoElementId) 11089bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) { 110906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var parent = this._idToDOMNode[parentId]; 111006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (!parent) 111106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return; 111206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var pseudoElement = this._idToDOMNode[pseudoElementId]; 111306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) if (!pseudoElement) 111406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) return; 111506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) parent._removeChild(pseudoElement); 111606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._unbind(pseudoElement); 111706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved, {node: pseudoElement, parent: parent}); 11189bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) }, 11199bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 11209bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) /** 1121a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} node 11225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 11235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _unbind: function(node) 11245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 11255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._idToDOMNode[node.id]; 11265267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) for (var i = 0; node._children && i < node._children.length; ++i) 11275267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._unbind(node._children[i]); 11285267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) for (var i = 0; i < node._shadowRoots.length; ++i) 11295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._unbind(node._shadowRoots[i]); 113006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) var pseudoElements = node.pseudoElements(); 113106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) for (var id in pseudoElements) 113206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this._unbind(pseudoElements[id]); 11335267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) if (node._templateContent) 11345267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._unbind(node._templateContent); 11355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 11365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 11385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} nodeId 11395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 11405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) inspectElement: function(nodeId) 11415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 11425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var node = this._idToDOMNode[nodeId]; 11435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (node) 1144521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.InspectNodeRequested, nodeId); 11455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 11465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1148a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 114953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) */ 115053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) _inspectNodeRequested: function(nodeId) 115153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) { 115253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.InspectNodeRequested, nodeId); 115353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) }, 115453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 115553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) /** 11565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 11575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(number)} searchCallback 11585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 11595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) performSearch: function(query, searchCallback) 11605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 11615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.cancelSearch(); 11625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 11645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {?Protocol.Error} error 11655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} searchId 11665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} resultsCount 1167e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 11685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 11695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function callback(error, searchId, resultsCount) 11705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 11715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._searchId = searchId; 11725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) searchCallback(resultsCount); 11735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 11745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.performSearch(query, callback.bind(this)); 11755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 11765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 11785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} index 1179e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?function(?WebInspector.DOMNode)} callback 11805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 11815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) searchResult: function(index, callback) 11825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1183a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) if (this._searchId) 1184a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) DOMAgent.getSearchResults(this._searchId, index, index + 1, searchResultsCallback.bind(this)); 1185a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) else 1186a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) callback(null); 11875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1188a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) /** 1189a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {?Protocol.Error} error 1190a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<number>} nodeIds 1191e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1192a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) */ 1193a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) function searchResultsCallback(error, nodeIds) 1194a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) { 1195a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) if (error) { 1196a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) console.error(error); 1197a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) callback(null); 1198a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) return; 11995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 1200a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) if (nodeIds.length != 1) 1201a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) return; 1202a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 1203e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) callback(this.nodeForId(nodeIds[0])); 1204a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) } 12055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) cancelSearch: function() 12085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._searchId) { 12105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.discardSearchResults(this._searchId); 12115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._searchId; 12125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 12135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1216a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 12175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} selectors 12185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?DOMAgent.NodeId)=} callback 12195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 12205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) querySelector: function(nodeId, selectors, callback) 12215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12223c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch DOMAgent.querySelector(nodeId, selectors, this._wrapClientCallback(callback)); 12235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1226a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 12275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} selectors 1228a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(!Array.<!DOMAgent.NodeId>=)=} callback 12295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 12305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) querySelectorAll: function(nodeId, selectors, callback) 12315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12323c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch DOMAgent.querySelectorAll(nodeId, selectors, this._wrapClientCallback(callback)); 12335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1236a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId=} nodeId 12375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} mode 1238a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!RuntimeAgent.RemoteObjectId=} objectId 12395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1240926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) highlightDOMNode: function(nodeId, mode, objectId) 12415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._hideDOMNodeHighlightTimeout) { 12435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) clearTimeout(this._hideDOMNodeHighlightTimeout); 12445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._hideDOMNodeHighlightTimeout; 12455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 1246c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) this._highlighter.highlightDOMNode(nodeId || 0, this._buildHighlightConfig(mode), objectId); 12475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) hideDOMNodeHighlight: function() 12505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.highlightDOMNode(0); 12525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1255a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 12565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 12575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) highlightDOMNodeForTwoSeconds: function(nodeId) 12585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.highlightDOMNode(nodeId); 12605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._hideDOMNodeHighlightTimeout = setTimeout(this.hideDOMNodeHighlight.bind(this), 2000); 12615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 12645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean} enabled 1265e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * @param {boolean} inspectShadowDOM 12665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 12675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1268e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch setInspectModeEnabled: function(enabled, inspectShadowDOM, callback) 12695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1270e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 1271e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1272e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 12738abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) function onDocumentAvailable() 12748abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) { 12758abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) this._highlighter.setInspectModeEnabled(enabled, inspectShadowDOM, this._buildHighlightConfig(), callback); 12768abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) } 12778abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) this.requestDocument(onDocumentAvailable.bind(this)); 12785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 12795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 12815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} mode 1282a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {!DOMAgent.HighlightConfig} 12835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 12845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _buildHighlightConfig: function(mode) 12855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 12865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) mode = mode || "all"; 12875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var highlightConfig = { showInfo: mode === "all", showRulers: WebInspector.settings.showMetricsRulers.get() }; 12885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (mode === "all" || mode === "content") 12895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) highlightConfig.contentColor = WebInspector.Color.PageHighlight.Content.toProtocolRGBA(); 12905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (mode === "all" || mode === "padding") 12925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) highlightConfig.paddingColor = WebInspector.Color.PageHighlight.Padding.toProtocolRGBA(); 12935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (mode === "all" || mode === "border") 12955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) highlightConfig.borderColor = WebInspector.Color.PageHighlight.Border.toProtocolRGBA(); 12965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (mode === "all" || mode === "margin") 12985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) highlightConfig.marginColor = WebInspector.Color.PageHighlight.Margin.toProtocolRGBA(); 12995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 130053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) if (mode === "all") 130153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) highlightConfig.eventTargetColor = WebInspector.Color.PageHighlight.EventTarget.toProtocolRGBA(); 130253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 13035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return highlightConfig; 13045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 13055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1307a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMNode} node 1308a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {function(?Protocol.Error, !A=, !B=)=} callback 1309a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @return {function(?Protocol.Error, !A=, !B=)} 1310e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) * @template A,B 13115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 13125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _markRevision: function(node, callback) 13135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1314e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 1315e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?Protocol.Error} error 1316e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1317e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 13185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function wrapperFunction(error) 13195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 13205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!error) 13215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.markUndoableState(); 13225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (callback) 13245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback.apply(this, arguments); 13255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return wrapperFunction.bind(this); 13275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 13285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /** 13305267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) * @param {boolean} emulationEnabled 13315267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 13325267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) emulateTouchEventObjects: function(emulationEnabled) 13335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 13345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const injectedFunction = function() { 13355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const touchEvents = ["ontouchstart", "ontouchend", "ontouchmove", "ontouchcancel"]; 1336926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) var recepients = [window.__proto__, document.__proto__]; 13375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < touchEvents.length; ++i) { 1338926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) for (var j = 0; j < recepients.length; ++j) { 1339926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (!(touchEvents[i] in recepients[j])) 1340926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) Object.defineProperty(recepients[j], touchEvents[i], { value: null, writable: true, configurable: true, enumerable: true }); 1341926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 13425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (emulationEnabled && !this._addTouchEventsScriptInjecting) { 13465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._addTouchEventsScriptInjecting = true; 1347926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) PageAgent.addScriptToEvaluateOnLoad("(" + injectedFunction.toString() + ")()", scriptAddedCallback.bind(this)); 13485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } else { 13495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (typeof this._addTouchEventsScriptId !== "undefined") { 13505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PageAgent.removeScriptToEvaluateOnLoad(this._addTouchEventsScriptId); 13515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._addTouchEventsScriptId; 13525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1355e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 1356e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?Protocol.Error} error 1357e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {string} scriptId 1358e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1359e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 13605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function scriptAddedCallback(error, scriptId) 13615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 13625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._addTouchEventsScriptInjecting; 13635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (error) 13645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 13655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._addTouchEventsScriptId = scriptId; 13665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PageAgent.setTouchEmulationEnabled(emulationEnabled); 13695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 13705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) markUndoableState: function() 13725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 13735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.markUndoableState(); 13745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 13755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 13775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 13785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 13795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) undo: function(callback) 13805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1381e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 1382e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?Protocol.Error} error 1383e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1384e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 13855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function mycallback(error) 13865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 13875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoCompleted); 13885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(error); 13895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 13905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoRequested); 13925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.undo(callback); 13935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 13945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 13965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {function(?Protocol.Error)=} callback 13975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 13985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) redo: function(callback) 13995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1400e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) /** 1401e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {?Protocol.Error} error 1402e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @this {WebInspector.DOMAgent} 1403e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) */ 14045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) function mycallback(error) 14055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoCompleted); 14075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback(error); 14085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 14095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoRequested); 14115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMAgent.redo(callback); 14125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1414c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) /** 1415a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {?WebInspector.DOMNodeHighlighter} highlighter 1416c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 1417c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) setHighlighter: function(highlighter) 1418c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) { 1419c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) this._highlighter = highlighter || this._defaultHighlighter; 1420c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) }, 1421c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 14225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) __proto__: WebInspector.Object.prototype 14235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 14245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 14265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 14275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @implements {DOMAgent.Dispatcher} 1428a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!WebInspector.DOMAgent} domAgent 14295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMDispatcher = function(domAgent) 14315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 14325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent = domAgent; 14335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 14345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.DOMDispatcher.prototype = { 14365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) documentUpdated: function() 14375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._documentUpdated(); 14395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1442a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 144353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) */ 144453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) inspectNodeRequested: function(nodeId) 144553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) { 144653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) this._domAgent._inspectNodeRequested(nodeId); 144753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) }, 144853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 144953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) /** 1450a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 14515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 14525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} value 14535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) attributeModified: function(nodeId, name, value) 14555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._attributeModified(nodeId, name, value); 14575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1460a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 14615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 14625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) attributeRemoved: function(nodeId, name) 14645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._attributeRemoved(nodeId, name); 14665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1469a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.NodeId>} nodeIds 14705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) inlineStyleInvalidated: function(nodeIds) 14725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._inlineStyleInvalidated(nodeIds); 14745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1477a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 14785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} characterData 14795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) characterDataModified: function(nodeId, characterData) 14815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._characterDataModified(nodeId, characterData); 14835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1486a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1487a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!Array.<!DOMAgent.Node>} payloads 14885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) setChildNodes: function(parentId, payloads) 14905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 14915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._setChildNodes(parentId, payloads); 14925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 14935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1495a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 14965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number} childNodeCount 14975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 14985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) childNodeCountUpdated: function(nodeId, childNodeCount) 14995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 15005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._childNodeCountUpdated(nodeId, childNodeCount); 15015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 15025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1504a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentNodeId 1505a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} previousNodeId 1506a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} payload 15075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 15085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) childNodeInserted: function(parentNodeId, previousNodeId, payload) 15095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 15105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._childNodeInserted(parentNodeId, previousNodeId, payload); 15115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 15125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1514a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentNodeId 1515a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 15165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 15175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) childNodeRemoved: function(parentNodeId, nodeId) 15185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 15195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._domAgent._childNodeRemoved(parentNodeId, nodeId); 15205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 15215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1523a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} hostId 1524a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} root 15255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 15265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) shadowRootPushed: function(hostId, root) 15275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 15285267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._domAgent._shadowRootPushed(hostId, root); 15295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 15305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1532a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} hostId 1533a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} rootId 15345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 15355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) shadowRootPopped: function(hostId, rootId) 15365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 15375267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) this._domAgent._shadowRootPopped(hostId, rootId); 15389bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) }, 15399bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 15409bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) /** 1541a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1542a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.Node} pseudoElement 15439bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) */ 15449bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) pseudoElementAdded: function(parentId, pseudoElement) 15459bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) { 15469bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) this._domAgent._pseudoElementAdded(parentId, pseudoElement); 15479bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) }, 15489bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 15499bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) /** 1550a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} parentId 1551a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} pseudoElementId 15529bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) */ 15539bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) pseudoElementRemoved: function(parentId, pseudoElementId) 15549bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) { 15559bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) this._domAgent._pseudoElementRemoved(parentId, pseudoElementId); 15565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 15575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 15585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 1560c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) * @interface 1561c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 1562c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)WebInspector.DOMNodeHighlighter = function() { 1563c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)} 1564c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 1565c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)WebInspector.DOMNodeHighlighter.prototype = { 1566c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) /** 1567a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 1568a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.HighlightConfig} config 1569a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!RuntimeAgent.RemoteObjectId=} objectId 1570c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 15718abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) highlightDOMNode: function(nodeId, config, objectId) {}, 15728abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) 15738abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) /** 15748abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) * @param {boolean} enabled 15758abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) * @param {boolean} inspectShadowDOM 1576a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.HighlightConfig} config 1577e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {function(?Protocol.Error)=} callback 15788abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) */ 15798abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) setInspectModeEnabled: function(enabled, inspectShadowDOM, config, callback) {} 1580c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)} 1581c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 1582c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)/** 1583c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) * @constructor 1584c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) * @implements {WebInspector.DOMNodeHighlighter} 1585c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 1586c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)WebInspector.DefaultDOMNodeHighlighter = function() { 1587c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)} 1588c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 1589c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)WebInspector.DefaultDOMNodeHighlighter.prototype = { 1590c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) /** 1591a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.NodeId} nodeId 1592a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.HighlightConfig} config 1593a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!RuntimeAgent.RemoteObjectId=} objectId 1594c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) */ 1595c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) highlightDOMNode: function(nodeId, config, objectId) 1596c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) { 1597c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) if (objectId || nodeId) 1598c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) DOMAgent.highlightNode(config, objectId ? undefined : nodeId, objectId); 1599c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) else 1600c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) DOMAgent.hideHighlight(); 16018abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) }, 16028abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) 16038abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) /** 16048abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) * @param {boolean} enabled 16058abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) * @param {boolean} inspectShadowDOM 1606a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {!DOMAgent.HighlightConfig} config 1607e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @param {function(?Protocol.Error)=} callback 16088abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) */ 16098abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) setInspectModeEnabled: function(enabled, inspectShadowDOM, config, callback) 16108abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) { 16118abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) DOMAgent.setInspectModeEnabled(enabled, inspectShadowDOM, config, callback); 1612c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) } 1613c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)} 1614c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 1615c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)/** 1616e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles) * @type {!WebInspector.DOMAgent} 16175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1618e08f70592b3fc0d5e68b9b914c9196e813720070Torne (Richard Coles)WebInspector.domAgent; 1619