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

Side by Side Diff: Source/devtools/front_end/HeapSnapshotGridNodes.js

Issue 218933003: Implement view port for allocation view (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 }[sortColumnIdentifier]; 1335 }[sortColumnIdentifier];
1336 return WebInspector.HeapSnapshotGridNode.createComparator(sortFields); 1336 return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);
1337 }, 1337 },
1338 1338
1339 __proto__: WebInspector.HeapSnapshotGenericObjectNode.prototype 1339 __proto__: WebInspector.HeapSnapshotGenericObjectNode.prototype
1340 } 1340 }
1341 1341
1342 1342
1343 /** 1343 /**
1344 * @constructor 1344 * @constructor
1345 * @extends {WebInspector.DataGridNode} 1345 * @extends {WebInspector.HeapSnapshotGridNode}
1346 * @param {!WebInspector.AllocationDataGrid} dataGrid 1346 * @param {!WebInspector.AllocationDataGrid} dataGrid
1347 * @param {!WebInspector.HeapSnapshotCommon.SerializedAllocationNode} data 1347 * @param {!WebInspector.HeapSnapshotCommon.SerializedAllocationNode} data
1348 */ 1348 */
1349 WebInspector.AllocationGridNode = function(dataGrid, data) 1349 WebInspector.AllocationGridNode = function(dataGrid, data)
1350 { 1350 {
1351 WebInspector.DataGridNode.call(this, data, data.hasChildren); 1351 WebInspector.HeapSnapshotGridNode.call(this, dataGrid, data.hasChildren);
1352 this._dataGrid = dataGrid;
1353 this._populated = false; 1352 this._populated = false;
1353 this.data = data;
1354 } 1354 }
1355 1355
1356 WebInspector.AllocationGridNode.prototype = { 1356 WebInspector.AllocationGridNode.prototype = {
1357 populate: function() 1357 populate: function()
1358 { 1358 {
1359 if (this._populated) 1359 if (this._populated)
1360 return; 1360 return;
1361 this._populated = true; 1361 this._populated = true;
1362 this._dataGrid.snapshot.allocationNodeCallers(this.data.id, didReceiveCa llers.bind(this)); 1362 this._dataGrid.snapshot.allocationNodeCallers(this.data.id, didReceiveCa llers.bind(this));
1363 1363
1364 /** 1364 /**
1365 * @param {!WebInspector.HeapSnapshotCommon.AllocationNodeCallers} calle rs 1365 * @param {!WebInspector.HeapSnapshotCommon.AllocationNodeCallers} calle rs
1366 * @this {WebInspector.AllocationGridNode} 1366 * @this {WebInspector.AllocationGridNode}
1367 */ 1367 */
1368 function didReceiveCallers(callers) 1368 function didReceiveCallers(callers)
1369 { 1369 {
1370 var callersChain = callers.nodesWithSingleCaller; 1370 var callersChain = callers.nodesWithSingleCaller;
1371 var parentNode = this; 1371 var parentNode = this;
1372 var dataGrid = /** @type {!WebInspector.AllocationDataGrid} */ (this ._dataGrid);
1372 for (var i = 0; i < callersChain.length; i++) { 1373 for (var i = 0; i < callersChain.length; i++) {
1373 var child = new WebInspector.AllocationGridNode(this._dataGrid, callersChain[i]); 1374 var child = new WebInspector.AllocationGridNode(dataGrid, caller sChain[i]);
1374 parentNode.appendChild(child); 1375 dataGrid.appendNode(parentNode, child);
1375 parentNode = child; 1376 parentNode = child;
1376 parentNode._populated = true; 1377 parentNode._populated = true;
1377 if (this.expanded) 1378 if (this.expanded)
1378 parentNode.expand(); 1379 parentNode.expand();
1379 } 1380 }
1380 1381
1381 var callersBranch = callers.branchingCallers; 1382 var callersBranch = callers.branchingCallers;
1382 callersBranch.sort(this._dataGrid._createComparator()); 1383 callersBranch.sort(this._dataGrid._createComparator());
1383 for (var i = 0; i < callersBranch.length; i++) 1384 for (var i = 0; i < callersBranch.length; i++)
1384 parentNode.appendChild(new WebInspector.AllocationGridNode(this. _dataGrid, callersBranch[i])); 1385 dataGrid.appendNode(parentNode, new WebInspector.AllocationGridN ode(dataGrid, callersBranch[i]));
1386 dataGrid.updateVisibleNodes(true);
1385 } 1387 }
1386 }, 1388 },
1387 1389
1388 /** 1390 /**
1389 * @override 1391 * @override
1390 */ 1392 */
1391 expand: function() 1393 expand: function()
1392 { 1394 {
1393 WebInspector.DataGridNode.prototype.expand.call(this); 1395 WebInspector.HeapSnapshotGridNode.prototype.expand.call(this);
1394 if (this.children.length === 1) 1396 if (this.children.length === 1)
1395 this.children[0].expand(); 1397 this.children[0].expand();
1396 }, 1398 },
1397 1399
1398 /** 1400 /**
1399 * @override 1401 * @override
1400 * @param {string} columnIdentifier 1402 * @param {string} columnIdentifier
1401 * @return {!Element} 1403 * @return {!Element}
1402 */ 1404 */
1403 createCell: function(columnIdentifier) 1405 createCell: function(columnIdentifier)
1404 { 1406 {
1405 var cell = WebInspector.DataGridNode.prototype.createCell.call(this, col umnIdentifier); 1407 var cell = WebInspector.HeapSnapshotGridNode.prototype.createCell.call(t his, columnIdentifier);
1406 1408
1407 if (columnIdentifier !== "name") 1409 if (columnIdentifier !== "name")
1408 return cell; 1410 return cell;
1409 1411
1410 var functionInfo = this.data; 1412 var functionInfo = this.data;
1411 if (functionInfo.scriptName) { 1413 if (functionInfo.scriptName) {
1412 var urlElement = this._dataGrid._linkifier.linkifyLocation(functionI nfo.scriptName, functionInfo.line - 1, functionInfo.column - 1, "profile-node-fi le"); 1414 var urlElement = this._dataGrid._linkifier.linkifyLocation(functionI nfo.scriptName, functionInfo.line - 1, functionInfo.column - 1, "profile-node-fi le");
1413 urlElement.style.maxWidth = "75%"; 1415 urlElement.style.maxWidth = "75%";
1414 cell.insertBefore(urlElement, cell.firstChild); 1416 cell.insertBefore(urlElement, cell.firstChild);
1415 } 1417 }
1416 1418
1417 return cell; 1419 return cell;
1418 }, 1420 },
1419 1421
1420 /** 1422 /**
1421 * @return {number} 1423 * @return {number}
1422 */ 1424 */
1423 allocationNodeId: function() 1425 allocationNodeId: function()
1424 { 1426 {
1425 return this.data.id; 1427 return this.data.id;
1426 }, 1428 },
1427 1429
1428 __proto__: WebInspector.DataGridNode.prototype 1430 __proto__: WebInspector.HeapSnapshotGridNode.prototype
1429 } 1431 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/HeapSnapshotDataGrids.js ('k') | Source/devtools/front_end/HeapSnapshotView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698