OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 return null; | 223 return null; |
224 }, | 224 }, |
225 | 225 |
226 /** | 226 /** |
227 * @param {string} columnIdentifier | 227 * @param {string} columnIdentifier |
228 * @return {!Element} | 228 * @return {!Element} |
229 */ | 229 */ |
230 _createValueCell: function(columnIdentifier) | 230 _createValueCell: function(columnIdentifier) |
231 { | 231 { |
232 var cell = document.createElement("td"); | 232 var cell = document.createElement("td"); |
233 cell.className = columnIdentifier + "-column"; | 233 cell.className = "numeric-column"; |
234 if (this.dataGrid.snapshot.totalSize !== 0) { | 234 if (this.dataGrid.snapshot.totalSize !== 0) { |
235 var div = document.createElement("div"); | 235 var div = document.createElement("div"); |
236 var valueSpan = document.createElement("span"); | 236 var valueSpan = document.createElement("span"); |
237 valueSpan.textContent = this.data[columnIdentifier]; | 237 valueSpan.textContent = this.data[columnIdentifier]; |
238 div.appendChild(valueSpan); | 238 div.appendChild(valueSpan); |
239 var percentColumn = columnIdentifier + "-percent"; | 239 var percentColumn = columnIdentifier + "-percent"; |
240 if (percentColumn in this.data) { | 240 if (percentColumn in this.data) { |
241 var percentSpan = document.createElement("span"); | 241 var percentSpan = document.createElement("span"); |
242 percentSpan.className = "percent-column"; | 242 percentSpan.className = "percent-column"; |
243 percentSpan.textContent = this.data[percentColumn]; | 243 percentSpan.textContent = this.data[percentColumn]; |
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1178 createProvider: function() | 1178 createProvider: function() |
1179 { | 1179 { |
1180 var tree = this._dataGrid; | 1180 var tree = this._dataGrid; |
1181 return new WebInspector.HeapSnapshotDiffNodesProvider( | 1181 return new WebInspector.HeapSnapshotDiffNodesProvider( |
1182 tree.snapshot.createAddedNodesProvider(tree.baseSnapshot.uid, this._
name), | 1182 tree.snapshot.createAddedNodesProvider(tree.baseSnapshot.uid, this._
name), |
1183 tree.baseSnapshot.createDeletedNodesProvider(this._deletedIndexes), | 1183 tree.baseSnapshot.createDeletedNodesProvider(this._deletedIndexes), |
1184 this._addedCount, | 1184 this._addedCount, |
1185 this._removedCount); | 1185 this._removedCount); |
1186 }, | 1186 }, |
1187 | 1187 |
| 1188 /** |
| 1189 * @param {string} columnIdentifier |
| 1190 * @return {!Element} |
| 1191 */ |
| 1192 createCell: function(columnIdentifier) |
| 1193 { |
| 1194 var cell = WebInspector.HeapSnapshotGridNode.prototype.createCell.call(t
his, columnIdentifier); |
| 1195 if (columnIdentifier !== "object") |
| 1196 cell.classList.add("numeric-column"); |
| 1197 return cell; |
| 1198 }, |
| 1199 |
1188 _createChildNode: function(item) | 1200 _createChildNode: function(item) |
1189 { | 1201 { |
1190 if (item.isAddedNotRemoved) | 1202 if (item.isAddedNotRemoved) |
1191 return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid, thi
s._dataGrid.snapshot, item, false); | 1203 return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid, thi
s._dataGrid.snapshot, item, false); |
1192 else | 1204 else |
1193 return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid, thi
s._dataGrid.baseSnapshot, item, true); | 1205 return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid, thi
s._dataGrid.baseSnapshot, item, true); |
1194 }, | 1206 }, |
1195 | 1207 |
1196 _childHashForEntity: function(node) | 1208 _childHashForEntity: function(node) |
1197 { | 1209 { |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1343 /** | 1355 /** |
1344 * @constructor | 1356 * @constructor |
1345 * @extends {WebInspector.HeapSnapshotGridNode} | 1357 * @extends {WebInspector.HeapSnapshotGridNode} |
1346 * @param {!WebInspector.AllocationDataGrid} dataGrid | 1358 * @param {!WebInspector.AllocationDataGrid} dataGrid |
1347 * @param {!WebInspector.HeapSnapshotCommon.SerializedAllocationNode} data | 1359 * @param {!WebInspector.HeapSnapshotCommon.SerializedAllocationNode} data |
1348 */ | 1360 */ |
1349 WebInspector.AllocationGridNode = function(dataGrid, data) | 1361 WebInspector.AllocationGridNode = function(dataGrid, data) |
1350 { | 1362 { |
1351 WebInspector.HeapSnapshotGridNode.call(this, dataGrid, data.hasChildren); | 1363 WebInspector.HeapSnapshotGridNode.call(this, dataGrid, data.hasChildren); |
1352 this._populated = false; | 1364 this._populated = false; |
1353 this.data = data; | 1365 this._allocationNode = data; |
| 1366 this.data = { |
| 1367 "liveCount": Number.withThousandsSeparator(data.liveCount), |
| 1368 "count": Number.withThousandsSeparator(data.count), |
| 1369 "liveSize": Number.withThousandsSeparator(data.liveSize), |
| 1370 "size": Number.withThousandsSeparator(data.size), |
| 1371 "name": data.name |
| 1372 }; |
1354 } | 1373 } |
1355 | 1374 |
1356 WebInspector.AllocationGridNode.prototype = { | 1375 WebInspector.AllocationGridNode.prototype = { |
1357 populate: function() | 1376 populate: function() |
1358 { | 1377 { |
1359 if (this._populated) | 1378 if (this._populated) |
1360 return; | 1379 return; |
1361 this._populated = true; | 1380 this._populated = true; |
1362 this._dataGrid.snapshot.allocationNodeCallers(this.data.id, didReceiveCa
llers.bind(this)); | 1381 this._dataGrid.snapshot.allocationNodeCallers(this._allocationNode.id, d
idReceiveCallers.bind(this)); |
1363 | 1382 |
1364 /** | 1383 /** |
1365 * @param {!WebInspector.HeapSnapshotCommon.AllocationNodeCallers} calle
rs | 1384 * @param {!WebInspector.HeapSnapshotCommon.AllocationNodeCallers} calle
rs |
1366 * @this {WebInspector.AllocationGridNode} | 1385 * @this {WebInspector.AllocationGridNode} |
1367 */ | 1386 */ |
1368 function didReceiveCallers(callers) | 1387 function didReceiveCallers(callers) |
1369 { | 1388 { |
1370 var callersChain = callers.nodesWithSingleCaller; | 1389 var callersChain = callers.nodesWithSingleCaller; |
1371 var parentNode = this; | 1390 var parentNode = this; |
1372 var dataGrid = /** @type {!WebInspector.AllocationDataGrid} */ (this
._dataGrid); | 1391 var dataGrid = /** @type {!WebInspector.AllocationDataGrid} */ (this
._dataGrid); |
(...skipping 24 matching lines...) Expand all Loading... |
1397 this.children[0].expand(); | 1416 this.children[0].expand(); |
1398 }, | 1417 }, |
1399 | 1418 |
1400 /** | 1419 /** |
1401 * @override | 1420 * @override |
1402 * @param {string} columnIdentifier | 1421 * @param {string} columnIdentifier |
1403 * @return {!Element} | 1422 * @return {!Element} |
1404 */ | 1423 */ |
1405 createCell: function(columnIdentifier) | 1424 createCell: function(columnIdentifier) |
1406 { | 1425 { |
| 1426 if (columnIdentifier !== "name") |
| 1427 return this._createValueCell(columnIdentifier); |
| 1428 |
1407 var cell = WebInspector.HeapSnapshotGridNode.prototype.createCell.call(t
his, columnIdentifier); | 1429 var cell = WebInspector.HeapSnapshotGridNode.prototype.createCell.call(t
his, columnIdentifier); |
1408 | 1430 var allocationNode = this._allocationNode; |
1409 if (columnIdentifier !== "name") | 1431 if (allocationNode.scriptName) { |
1410 return cell; | 1432 var urlElement = this._dataGrid._linkifier.linkifyLocation(allocatio
nNode.scriptName, allocationNode.line - 1, allocationNode.column - 1, "profile-n
ode-file"); |
1411 | |
1412 var functionInfo = this.data; | |
1413 if (functionInfo.scriptName) { | |
1414 var urlElement = this._dataGrid._linkifier.linkifyLocation(functionI
nfo.scriptName, functionInfo.line - 1, functionInfo.column - 1, "profile-node-fi
le"); | |
1415 urlElement.style.maxWidth = "75%"; | 1433 urlElement.style.maxWidth = "75%"; |
1416 cell.insertBefore(urlElement, cell.firstChild); | 1434 cell.insertBefore(urlElement, cell.firstChild); |
1417 } | 1435 } |
1418 | 1436 |
1419 return cell; | 1437 return cell; |
1420 }, | 1438 }, |
1421 | 1439 |
1422 /** | 1440 /** |
1423 * @return {number} | 1441 * @return {number} |
1424 */ | 1442 */ |
1425 allocationNodeId: function() | 1443 allocationNodeId: function() |
1426 { | 1444 { |
1427 return this.data.id; | 1445 return this.data.id; |
1428 }, | 1446 }, |
1429 | 1447 |
1430 __proto__: WebInspector.HeapSnapshotGridNode.prototype | 1448 __proto__: WebInspector.HeapSnapshotGridNode.prototype |
1431 } | 1449 } |
OLD | NEW |