18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Apple Inc. All Rights Reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarSectionTreeElement = function(title, representedObject, hasChildren) 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TreeElement.call(this, title.escapeHTML(), representedObject || {}, hasChildren); 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarSectionTreeElement.prototype = { 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project selectable: false, 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project get smallChildren() 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return this._smallChildren; 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project set smallChildren(x) 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this._smallChildren === x) 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._smallChildren = x; 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this._smallChildren) 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._childrenListNode.addStyleClass("small"); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._childrenListNode.removeStyleClass("small"); 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project onattach: function() 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.addStyleClass("sidebar-tree-section"); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project onreveal: function() 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.listItemElement) 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.listItemElement.scrollIntoViewIfNeeded(false); 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarSectionTreeElement.prototype.__proto__ = TreeElement.prototype; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarTreeElement = function(className, title, subtitle, representedObject, hasChildren) 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TreeElement.call(this, "", representedObject || {}, hasChildren); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (hasChildren) { 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.disclosureButton = document.createElement("button"); 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.disclosureButton.className = "disclosure-button"; 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!this.iconElement) { 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.iconElement = document.createElement("img"); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.iconElement.className = "icon"; 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.statusElement = document.createElement("div"); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.statusElement.className = "status"; 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement = document.createElement("div"); 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement.className = "titles"; 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titleElement = document.createElement("span"); 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titleElement.className = "title"; 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement.appendChild(this.titleElement); 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.subtitleElement = document.createElement("span"); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.subtitleElement.className = "subtitle"; 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement.appendChild(this.subtitleElement); 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.className = className; 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.mainTitle = title; 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.subtitle = subtitle; 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarTreeElement.prototype = { 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project get small() 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return this._small; 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project set small(x) 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._small = x; 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this._listItemNode) { 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this._small) 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.addStyleClass("small"); 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.removeStyleClass("small"); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project get mainTitle() 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return this._mainTitle; 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project set mainTitle(x) 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._mainTitle = x; 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.refreshTitles(); 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project get subtitle() 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return this._subtitle; 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project set subtitle(x) 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._subtitle = x; 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.refreshTitles(); 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project get bubbleText() 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return this._bubbleText; 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project set bubbleText(x) 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!this.bubbleElement) { 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.bubbleElement = document.createElement("div"); 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.bubbleElement.className = "bubble"; 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.statusElement.appendChild(this.bubbleElement); 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._bubbleText = x; 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.bubbleElement.textContent = x; 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project refreshTitles: function() 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var mainTitle = this.mainTitle; 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.titleElement.textContent !== mainTitle) 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titleElement.textContent = mainTitle; 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var subtitle = this.subtitle; 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (subtitle) { 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.subtitleElement.textContent !== subtitle) 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.subtitleElement.textContent = subtitle; 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement.removeStyleClass("no-subtitle"); 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } else 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this.titlesElement.addStyleClass("no-subtitle"); 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project isEventWithinDisclosureTriangle: function(event) 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return event.target === this.disclosureButton; 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project onattach: function() 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.addStyleClass("sidebar-tree-item"); 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.className) 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.addStyleClass(this.className); 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.small) 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.addStyleClass("small"); 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this.hasChildren && this.disclosureButton) 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.appendChild(this.disclosureButton); 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.appendChild(this.iconElement); 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.appendChild(this.statusElement); 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.appendChild(this.titlesElement); 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }, 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project onreveal: function() 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (this._listItemNode) 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project this._listItemNode.scrollIntoViewIfNeeded(false); 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebInspector.SidebarTreeElement.prototype.__proto__ = TreeElement.prototype; 202