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

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

Issue 23609064: Make "three snapshot technique" work on heap snapshots loaded from files (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
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 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 651
652 _updateBaseOptions: function() 652 _updateBaseOptions: function()
653 { 653 {
654 var list = this._profiles(); 654 var list = this._profiles();
655 // We're assuming that snapshots can only be added. 655 // We're assuming that snapshots can only be added.
656 if (this.baseSelect.size() === list.length) 656 if (this.baseSelect.size() === list.length)
657 return; 657 return;
658 658
659 for (var i = this.baseSelect.size(), n = list.length; i < n; ++i) { 659 for (var i = this.baseSelect.size(), n = list.length; i < n; ++i) {
660 var title = list[i].title; 660 var title = list[i].title;
661 if (WebInspector.ProfilesPanelDescriptor.isUserInitiatedProfile(titl e))
662 title = WebInspector.UIString("Snapshot %d", WebInspector.Profil esPanelDescriptor.userInitiatedProfileIndex(title));
663 this.baseSelect.createOption(title); 661 this.baseSelect.createOption(title);
664 } 662 }
665 }, 663 },
666 664
667 _updateFilterOptions: function() 665 _updateFilterOptions: function()
668 { 666 {
669 var list = this._profiles(); 667 var list = this._profiles();
670 // We're assuming that snapshots can only be added. 668 // We're assuming that snapshots can only be added.
671 if (this.filterSelect.size() - 1 === list.length) 669 if (this.filterSelect.size() - 1 === list.length)
672 return; 670 return;
673 671
674 if (!this.filterSelect.size()) 672 if (!this.filterSelect.size())
675 this.filterSelect.createOption(WebInspector.UIString("All objects")) ; 673 this.filterSelect.createOption(WebInspector.UIString("All objects")) ;
676 674
677 if (this.profile.fromFile())
678 return;
679 for (var i = this.filterSelect.size() - 1, n = list.length; i < n; ++i) { 675 for (var i = this.filterSelect.size() - 1, n = list.length; i < n; ++i) {
680 var profile = list[i];
681 var title = list[i].title; 676 var title = list[i].title;
682 if (WebInspector.ProfilesPanelDescriptor.isUserInitiatedProfile(titl e)) { 677 if (!i)
683 var profileIndex = WebInspector.ProfilesPanelDescriptor.userInit iatedProfileIndex(title); 678 title = WebInspector.UIString("Objects allocated before %s", tit le);
684 if (!i) 679 else
685 title = WebInspector.UIString("Objects allocated before Snap shot %d", profileIndex); 680 title = WebInspector.UIString("Objects allocated between %s and %s", list[i - 1].title, title);
686 else
687 title = WebInspector.UIString("Objects allocated between Sna pshots %d and %d", profileIndex - 1, profileIndex);
688 }
689 this.filterSelect.createOption(title); 681 this.filterSelect.createOption(title);
690 } 682 }
691 }, 683 },
692 684
693 /** 685 /**
694 * @param {WebInspector.Event} event 686 * @param {WebInspector.Event} event
695 */ 687 */
696 _onProfileHeaderAdded: function(event) 688 _onProfileHeaderAdded: function(event)
697 { 689 {
698 if (!event.data || event.data.type !== this._profileTypeId) 690 if (!event.data || event.data.type !== this._profileTypeId)
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 _snapshotReceived: function(snapshotProxy) 1294 _snapshotReceived: function(snapshotProxy)
1303 { 1295 {
1304 this._receiver = null; 1296 this._receiver = null;
1305 if (snapshotProxy) 1297 if (snapshotProxy)
1306 this._snapshotProxy = snapshotProxy; 1298 this._snapshotProxy = snapshotProxy;
1307 this._didCompleteSnapshotTransfer(); 1299 this._didCompleteSnapshotTransfer();
1308 var worker = /** @type {WebInspector.HeapSnapshotWorkerProxy} */ (this._ snapshotProxy.worker); 1300 var worker = /** @type {WebInspector.HeapSnapshotWorkerProxy} */ (this._ snapshotProxy.worker);
1309 this.isTemporary = false; 1301 this.isTemporary = false;
1310 worker.startCheckingForLongRunningCalls(); 1302 worker.startCheckingForLongRunningCalls();
1311 this.notifySnapshotReceived(); 1303 this.notifySnapshotReceived();
1304
1305 if (this.fromFile()) {
1306 function didGetMaxNodeId(id)
1307 {
1308 this.maxJSObjectId = id;
1309 }
1310 snapshotProxy.maxJsNodeId(didGetMaxNodeId.bind(this));
1311 }
1312 }, 1312 },
1313 1313
1314 notifySnapshotReceived: function() 1314 notifySnapshotReceived: function()
1315 { 1315 {
1316 this._profileType._snapshotReceived(this); 1316 this._profileType._snapshotReceived(this);
1317 }, 1317 },
1318 1318
1319 finishHeapSnapshot: function() 1319 finishHeapSnapshot: function()
1320 { 1320 {
1321 if (this._transferHandler) { 1321 if (this._transferHandler) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 this._fileName = this._fileName || "Heap-" + new Date().toISO8601Compact () + this._profileType.fileExtension(); 1353 this._fileName = this._fileName || "Heap-" + new Date().toISO8601Compact () + this._profileType.fileExtension();
1354 fileOutputStream.open(this._fileName, onOpen.bind(this)); 1354 fileOutputStream.open(this._fileName, onOpen.bind(this));
1355 }, 1355 },
1356 1356
1357 /** 1357 /**
1358 * @override 1358 * @override
1359 * @param {File} file 1359 * @param {File} file
1360 */ 1360 */
1361 loadFromFile: function(file) 1361 loadFromFile: function(file)
1362 { 1362 {
1363 this.title = file.name;
1364 this.sidebarElement.subtitle = WebInspector.UIString("Loading\u2026"); 1363 this.sidebarElement.subtitle = WebInspector.UIString("Loading\u2026");
1365 this.sidebarElement.wait = true; 1364 this.sidebarElement.wait = true;
1366 this._setupWorker(); 1365 this._setupWorker();
1367 1366
1368 var delegate = new WebInspector.HeapSnapshotLoadFromFileDelegate(this); 1367 var delegate = new WebInspector.HeapSnapshotLoadFromFileDelegate(this);
1369 var fileReader = this._createFileReader(file, delegate); 1368 var fileReader = this._createFileReader(file, delegate);
1370 fileReader.start(this._receiver); 1369 fileReader.start(this._receiver);
1371 }, 1370 },
1372 1371
1373 _createFileReader: function(file, delegate) 1372 _createFileReader: function(file, delegate)
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
1846 zeroTime: function() 1845 zeroTime: function()
1847 { 1846 {
1848 return this._minimumBoundaries; 1847 return this._minimumBoundaries;
1849 }, 1848 },
1850 1849
1851 boundarySpan: function() 1850 boundarySpan: function()
1852 { 1851 {
1853 return this._maximumBoundaries - this._minimumBoundaries; 1852 return this._maximumBoundaries - this._minimumBoundaries;
1854 } 1853 }
1855 } 1854 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/HeapSnapshotProxy.js ('k') | Source/devtools/front_end/JSHeapSnapshot.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698