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

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

Issue 268293003: DevTools: Get rid of WebInspector.panels (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 7 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 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 /** 31 /**
32 * @constructor 32 * @constructor
33 * @extends {WebInspector.VBox} 33 * @extends {WebInspector.VBox}
34 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
34 * @param {!WebInspector.HeapProfileHeader} profile 35 * @param {!WebInspector.HeapProfileHeader} profile
35 */ 36 */
36 WebInspector.HeapSnapshotView = function(profile) 37 WebInspector.HeapSnapshotView = function(dataDisplayDelegate, profile)
37 { 38 {
38 WebInspector.VBox.call(this); 39 WebInspector.VBox.call(this);
39 40
40 this.element.classList.add("heap-snapshot-view"); 41 this.element.classList.add("heap-snapshot-view");
41 42
42 profile.profileType().addEventListener(WebInspector.HeapSnapshotProfileType. SnapshotReceived, this._onReceiveSnapshot, this); 43 profile.profileType().addEventListener(WebInspector.HeapSnapshotProfileType. SnapshotReceived, this._onReceiveSnapshot, this);
43 profile.profileType().addEventListener(WebInspector.ProfileType.Events.Remov eProfileHeader, this._onProfileHeaderRemoved, this); 44 profile.profileType().addEventListener(WebInspector.ProfileType.Events.Remov eProfileHeader, this._onProfileHeaderRemoved, this);
44 45
45 if (profile._profileType.id === WebInspector.TrackingHeapSnapshotProfileType .TypeId) { 46 if (profile._profileType.id === WebInspector.TrackingHeapSnapshotProfileType .TypeId) {
46 this._trackingOverviewGrid = new WebInspector.HeapTrackingOverviewGrid(p rofile); 47 this._trackingOverviewGrid = new WebInspector.HeapTrackingOverviewGrid(p rofile);
47 this._trackingOverviewGrid.addEventListener(WebInspector.HeapTrackingOve rviewGrid.IdsRangeChanged, this._onIdsRangeChanged.bind(this)); 48 this._trackingOverviewGrid.addEventListener(WebInspector.HeapTrackingOve rviewGrid.IdsRangeChanged, this._onIdsRangeChanged.bind(this));
48 } 49 }
49 50
50 this._splitView = new WebInspector.SplitView(false, true, "heapSnapshotSplit ViewState", 200, 200); 51 this._splitView = new WebInspector.SplitView(false, true, "heapSnapshotSplit ViewState", 200, 200);
51 this._splitView.show(this.element); 52 this._splitView.show(this.element);
52 53
53 this._containmentView = new WebInspector.VBox(); 54 this._containmentView = new WebInspector.VBox();
54 this._containmentView.setMinimumSize(50, 25); 55 this._containmentView.setMinimumSize(50, 25);
55 this._containmentDataGrid = new WebInspector.HeapSnapshotContainmentDataGrid (); 56 this._containmentDataGrid = new WebInspector.HeapSnapshotContainmentDataGrid (dataDisplayDelegate);
56 this._containmentDataGrid.show(this._containmentView.element); 57 this._containmentDataGrid.show(this._containmentView.element);
57 this._containmentDataGrid.addEventListener(WebInspector.DataGrid.Events.Sele ctedNode, this._selectionChanged, this); 58 this._containmentDataGrid.addEventListener(WebInspector.DataGrid.Events.Sele ctedNode, this._selectionChanged, this);
58 59
59 this._statisticsView = new WebInspector.HeapSnapshotStatisticsView(); 60 this._statisticsView = new WebInspector.HeapSnapshotStatisticsView();
60 61
61 this._constructorsView = new WebInspector.VBox(); 62 this._constructorsView = new WebInspector.VBox();
62 this._constructorsView.setMinimumSize(50, 25); 63 this._constructorsView.setMinimumSize(50, 25);
63 64
64 this._constructorsDataGrid = new WebInspector.HeapSnapshotConstructorsDataGr id(); 65 this._constructorsDataGrid = new WebInspector.HeapSnapshotConstructorsDataGr id(dataDisplayDelegate);
65 this._constructorsDataGrid.show(this._constructorsView.element); 66 this._constructorsDataGrid.show(this._constructorsView.element);
66 this._constructorsDataGrid.addEventListener(WebInspector.DataGrid.Events.Sel ectedNode, this._selectionChanged, this); 67 this._constructorsDataGrid.addEventListener(WebInspector.DataGrid.Events.Sel ectedNode, this._selectionChanged, this);
67 68
68 this._diffView = new WebInspector.VBox(); 69 this._diffView = new WebInspector.VBox();
69 this._diffView.setMinimumSize(50, 25); 70 this._diffView.setMinimumSize(50, 25);
70 71
71 this._diffDataGrid = new WebInspector.HeapSnapshotDiffDataGrid(); 72 this._diffDataGrid = new WebInspector.HeapSnapshotDiffDataGrid(dataDisplayDe legate);
72 this._diffDataGrid.show(this._diffView.element); 73 this._diffDataGrid.show(this._diffView.element);
73 this._diffDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNod e, this._selectionChanged, this); 74 this._diffDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNod e, this._selectionChanged, this);
74 75
75 this._dominatorView = new WebInspector.VBox(); 76 this._dominatorView = new WebInspector.VBox();
76 this._dominatorView.setMinimumSize(50, 25); 77 this._dominatorView.setMinimumSize(50, 25);
77 this._dominatorDataGrid = new WebInspector.HeapSnapshotDominatorsDataGrid(); 78 this._dominatorDataGrid = new WebInspector.HeapSnapshotDominatorsDataGrid(da taDisplayDelegate);
78 this._dominatorDataGrid.show(this._dominatorView.element); 79 this._dominatorDataGrid.show(this._dominatorView.element);
79 this._dominatorDataGrid.addEventListener(WebInspector.DataGrid.Events.Select edNode, this._selectionChanged, this); 80 this._dominatorDataGrid.addEventListener(WebInspector.DataGrid.Events.Select edNode, this._selectionChanged, this);
80 81
81 if (WebInspector.experimentsSettings.allocationProfiler.isEnabled() && profi le.profileType() === WebInspector.ProfileTypeRegistry.instance.trackingHeapSnaps hotProfileType) { 82 if (WebInspector.experimentsSettings.allocationProfiler.isEnabled() && profi le.profileType() === WebInspector.ProfileTypeRegistry.instance.trackingHeapSnaps hotProfileType) {
82 this._allocationView = new WebInspector.VBox(); 83 this._allocationView = new WebInspector.VBox();
83 this._allocationView.setMinimumSize(50, 25); 84 this._allocationView.setMinimumSize(50, 25);
84 this._allocationDataGrid = new WebInspector.AllocationDataGrid(); 85 this._allocationDataGrid = new WebInspector.AllocationDataGrid(dataDispl ayDelegate);
85 this._allocationDataGrid.addEventListener(WebInspector.DataGrid.Events.S electedNode, this._onSelectAllocationNode, this); 86 this._allocationDataGrid.addEventListener(WebInspector.DataGrid.Events.S electedNode, this._onSelectAllocationNode, this);
86 this._allocationDataGrid.show(this._allocationView.element); 87 this._allocationDataGrid.show(this._allocationView.element);
87 88
88 this._allocationStackView = new WebInspector.HeapAllocationStackView(); 89 this._allocationStackView = new WebInspector.HeapAllocationStackView();
89 this._allocationStackView.setMinimumSize(50, 25); 90 this._allocationStackView.setMinimumSize(50, 25);
90 91
91 this._tabbedPane = new WebInspector.TabbedPane(); 92 this._tabbedPane = new WebInspector.TabbedPane();
92 this._tabbedPane.closeableTabs = false; 93 this._tabbedPane.closeableTabs = false;
93 this._tabbedPane.headerElement().classList.add("heap-object-details-head er"); 94 this._tabbedPane.headerElement().classList.add("heap-object-details-head er");
94 } 95 }
(...skipping 19 matching lines...) Expand all
114 var retainingPathsTitle = retainingPathsTitleDiv.createChild("span"); 115 var retainingPathsTitle = retainingPathsTitleDiv.createChild("span");
115 retainingPathsTitle.textContent = WebInspector.UIString("Retainers"); 116 retainingPathsTitle.textContent = WebInspector.UIString("Retainers");
116 this._retainmentView.element.appendChild(retainmentViewHeader); 117 this._retainmentView.element.appendChild(retainmentViewHeader);
117 118
118 splitViewResizer = retainmentViewHeader; 119 splitViewResizer = retainmentViewHeader;
119 this._objectDetailsView = this._retainmentView; 120 this._objectDetailsView = this._retainmentView;
120 } 121 }
121 this._splitView.hideDefaultResizer(); 122 this._splitView.hideDefaultResizer();
122 this._splitView.installResizer(splitViewResizer); 123 this._splitView.installResizer(splitViewResizer);
123 124
124 this._retainmentDataGrid = new WebInspector.HeapSnapshotRetainmentDataGrid() ; 125 this._retainmentDataGrid = new WebInspector.HeapSnapshotRetainmentDataGrid(d ataDisplayDelegate);
125 this._retainmentDataGrid.show(this._retainmentView.element); 126 this._retainmentDataGrid.show(this._retainmentView.element);
126 this._retainmentDataGrid.addEventListener(WebInspector.DataGrid.Events.Selec tedNode, this._inspectedObjectChanged, this); 127 this._retainmentDataGrid.addEventListener(WebInspector.DataGrid.Events.Selec tedNode, this._inspectedObjectChanged, this);
127 this._retainmentDataGrid.reset(); 128 this._retainmentDataGrid.reset();
128 129
129 this._perspectives = []; 130 this._perspectives = [];
130 this._perspectives.push(new WebInspector.HeapSnapshotView.SummaryPerspective ()); 131 this._perspectives.push(new WebInspector.HeapSnapshotView.SummaryPerspective ());
131 if (profile.profileType() !== WebInspector.ProfileTypeRegistry.instance.trac kingHeapSnapshotProfileType) 132 if (profile.profileType() !== WebInspector.ProfileTypeRegistry.instance.trac kingHeapSnapshotProfileType)
132 this._perspectives.push(new WebInspector.HeapSnapshotView.ComparisonPers pective()); 133 this._perspectives.push(new WebInspector.HeapSnapshotView.ComparisonPers pective());
133 this._perspectives.push(new WebInspector.HeapSnapshotView.ContainmentPerspec tive()); 134 this._perspectives.push(new WebInspector.HeapSnapshotView.ContainmentPerspec tive());
134 if (WebInspector.settings.showAdvancedHeapSnapshotProperties.get()) 135 if (WebInspector.settings.showAdvancedHeapSnapshotProperties.get())
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 /** 1220 /**
1220 * @param {?string} error 1221 * @param {?string} error
1221 * @this {WebInspector.HeapSnapshotProfileType} 1222 * @this {WebInspector.HeapSnapshotProfileType}
1222 */ 1223 */
1223 function didTakeHeapSnapshot(error) 1224 function didTakeHeapSnapshot(error)
1224 { 1225 {
1225 var profile = this._profileBeingRecorded; 1226 var profile = this._profileBeingRecorded;
1226 profile.title = WebInspector.UIString("Snapshot %d", profile.uid); 1227 profile.title = WebInspector.UIString("Snapshot %d", profile.uid);
1227 profile._finishLoad(); 1228 profile._finishLoad();
1228 this.setProfileBeingRecorded(null); 1229 this.setProfileBeingRecorded(null);
1229 WebInspector.panels.profiles.showProfile(profile); 1230 this.dispatchEventToListeners(WebInspector.ProfileType.Events.Profil eComplete, profile);
1230 callback(); 1231 callback();
1231 } 1232 }
1232 HeapProfilerAgent.takeHeapSnapshot(true, didTakeHeapSnapshot.bind(this)) ; 1233 HeapProfilerAgent.takeHeapSnapshot(true, didTakeHeapSnapshot.bind(this)) ;
1233 }, 1234 },
1234 1235
1235 /** 1236 /**
1236 * @override 1237 * @override
1237 * @param {string} chunk 1238 * @param {string} chunk
1238 */ 1239 */
1239 addHeapSnapshotChunk: function(chunk) 1240 addHeapSnapshotChunk: function(chunk)
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1404 * @this {WebInspector.HeapSnapshotProfileType} 1405 * @this {WebInspector.HeapSnapshotProfileType}
1405 */ 1406 */
1406 function didTakeHeapSnapshot(error) 1407 function didTakeHeapSnapshot(error)
1407 { 1408 {
1408 var profile = this._profileBeingRecorded; 1409 var profile = this._profileBeingRecorded;
1409 if (!profile) 1410 if (!profile)
1410 return; 1411 return;
1411 profile._finishLoad(); 1412 profile._finishLoad();
1412 this._profileSamples = null; 1413 this._profileSamples = null;
1413 this.setProfileBeingRecorded(null); 1414 this.setProfileBeingRecorded(null);
1414 WebInspector.panels.profiles.showProfile(profile); 1415 this.dispatchEventToListeners(WebInspector.ProfileType.Events.Profil eComplete, profile);
1415 } 1416 }
1416 1417
1417 HeapProfilerAgent.stopTrackingHeapObjects(true, didTakeHeapSnapshot.bind (this)); 1418 HeapProfilerAgent.stopTrackingHeapObjects(true, didTakeHeapSnapshot.bind (this));
1418 this._recording = false; 1419 this._recording = false;
1419 this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileTy pe.TrackingStopped); 1420 this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileTy pe.TrackingStopped);
1420 }, 1421 },
1421 1422
1422 _toggleRecording: function() 1423 _toggleRecording: function()
1423 { 1424 {
1424 if (this._recording) 1425 if (this._recording)
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1492 * @type {?Array.<function(!WebInspector.HeapSnapshotProxy)>} 1493 * @type {?Array.<function(!WebInspector.HeapSnapshotProxy)>}
1493 */ 1494 */
1494 this._loadCallbacks = []; 1495 this._loadCallbacks = [];
1495 this._totalNumberOfChunks = 0; 1496 this._totalNumberOfChunks = 0;
1496 this._bufferedWriter = null; 1497 this._bufferedWriter = null;
1497 } 1498 }
1498 1499
1499 WebInspector.HeapProfileHeader.prototype = { 1500 WebInspector.HeapProfileHeader.prototype = {
1500 /** 1501 /**
1501 * @override 1502 * @override
1503 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegat e
1502 * @return {!WebInspector.ProfileSidebarTreeElement} 1504 * @return {!WebInspector.ProfileSidebarTreeElement}
1503 */ 1505 */
1504 createSidebarTreeElement: function() 1506 createSidebarTreeElement: function(dataDisplayDelegate)
1505 { 1507 {
1506 return new WebInspector.ProfileSidebarTreeElement(this, "heap-snapshot-s idebar-tree-item"); 1508 return new WebInspector.ProfileSidebarTreeElement(dataDisplayDelegate, t his, "heap-snapshot-sidebar-tree-item");
1507 }, 1509 },
1508 1510
1509 /** 1511 /**
1510 * @override 1512 * @override
1513 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegat e
1511 * @return {!WebInspector.HeapSnapshotView} 1514 * @return {!WebInspector.HeapSnapshotView}
1512 */ 1515 */
1513 createView: function() 1516 createView: function(dataDisplayDelegate)
1514 { 1517 {
1515 return new WebInspector.HeapSnapshotView(this); 1518 return new WebInspector.HeapSnapshotView(dataDisplayDelegate, this);
1516 }, 1519 },
1517 1520
1518 /** 1521 /**
1519 * @override 1522 * @override
1520 * @param {function(!WebInspector.HeapSnapshotProxy):void} callback 1523 * @param {function(!WebInspector.HeapSnapshotProxy):void} callback
1521 */ 1524 */
1522 load: function(callback) 1525 load: function(callback)
1523 { 1526 {
1524 if (this.uid === -1) 1527 if (this.uid === -1)
1525 return; 1528 return;
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
2267 urlElement = this._linkifier.linkifyRawLocation(rawLocation) ; 2270 urlElement = this._linkifier.linkifyRawLocation(rawLocation) ;
2268 if (!urlElement) 2271 if (!urlElement)
2269 urlElement = this._linkifier.linkifyLocation(this._target, f rame.scriptName, frame.line - 1, frame.column - 1); 2272 urlElement = this._linkifier.linkifyLocation(this._target, f rame.scriptName, frame.line - 1, frame.column - 1);
2270 frameDiv.appendChild(urlElement); 2273 frameDiv.appendChild(urlElement);
2271 } 2274 }
2272 } 2275 }
2273 }, 2276 },
2274 2277
2275 __proto__: WebInspector.View.prototype 2278 __proto__: WebInspector.View.prototype
2276 } 2279 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/profiler/HeapSnapshotDataGrids.js ('k') | Source/devtools/front_end/profiler/ProfilesPanel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698