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

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

Issue 268293003: DevTools: Get rid of WebInspector.panels (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Use ProfilesPanel indirectly, as a DataDisplayDelegate (requested by pfeldman) 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) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 25 matching lines...) Expand all
36 this._name = name; 36 this._name = name;
37 /** @type {!Array.<!WebInspector.ProfileHeader>} */ 37 /** @type {!Array.<!WebInspector.ProfileHeader>} */
38 this._profiles = []; 38 this._profiles = [];
39 /** @type {?WebInspector.ProfileHeader} */ 39 /** @type {?WebInspector.ProfileHeader} */
40 this._profileBeingRecorded = null; 40 this._profileBeingRecorded = null;
41 this._nextProfileUid = 1; 41 this._nextProfileUid = 1;
42 42
43 window.addEventListener("unload", this._clearTempStorage.bind(this), false); 43 window.addEventListener("unload", this._clearTempStorage.bind(this), false);
44 } 44 }
45 45
46 /**
47 * @enum {string}
48 */
46 WebInspector.ProfileType.Events = { 49 WebInspector.ProfileType.Events = {
47 AddProfileHeader: "add-profile-header", 50 AddProfileHeader: "add-profile-header",
51 ProfileComplete: "profile-complete",
48 RemoveProfileHeader: "remove-profile-header", 52 RemoveProfileHeader: "remove-profile-header",
49 ViewUpdated: "view-updated" 53 ViewUpdated: "view-updated"
50 } 54 }
51 55
52 WebInspector.ProfileType.prototype = { 56 WebInspector.ProfileType.prototype = {
53 /** 57 /**
54 * @return {boolean} 58 * @return {boolean}
55 */ 59 */
56 hasTemporaryView: function() 60 hasTemporaryView: function()
57 { 61 {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 if (this._profileBeingRecorded === profile) { 248 if (this._profileBeingRecorded === profile) {
245 this.profileBeingRecordedRemoved(); 249 this.profileBeingRecordedRemoved();
246 this._profileBeingRecorded = null; 250 this._profileBeingRecorded = null;
247 } 251 }
248 }, 252 },
249 253
250 __proto__: WebInspector.Object.prototype 254 __proto__: WebInspector.Object.prototype
251 } 255 }
252 256
253 /** 257 /**
258 * @interface
259 */
260 WebInspector.ProfileType.DataDisplayDelegate = function()
261 {
262 }
263
264 WebInspector.ProfileType.DataDisplayDelegate.prototype = {
265 /**
266 * @param {?WebInspector.ProfileHeader} profile
267 * @return {?WebInspector.View}
268 */
269 showProfile: function(profile) { },
270
271 /**
272 * @param {!HeapProfilerAgent.HeapSnapshotObjectId} snapshotObjectId
273 * @param {string} perspectiveName
274 */
275 showObject: function(snapshotObjectId, perspectiveName) { }
276 }
277
278 /**
254 * @constructor 279 * @constructor
255 * @extends {WebInspector.TargetAwareObject} 280 * @extends {WebInspector.TargetAwareObject}
256 * @param {!WebInspector.ProfileType} profileType 281 * @param {!WebInspector.ProfileType} profileType
257 * @param {string} title 282 * @param {string} title
258 */ 283 */
259 WebInspector.ProfileHeader = function(target, profileType, title) 284 WebInspector.ProfileHeader = function(target, profileType, title)
260 { 285 {
261 WebInspector.TargetAwareObject.call(this, target); 286 WebInspector.TargetAwareObject.call(this, target);
262 this._profileType = profileType; 287 this._profileType = profileType;
263 this.title = title; 288 this.title = title;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 * @param {?string} subtitle 321 * @param {?string} subtitle
297 * @param {boolean=} wait 322 * @param {boolean=} wait
298 */ 323 */
299 updateStatus: function(subtitle, wait) 324 updateStatus: function(subtitle, wait)
300 { 325 {
301 this.dispatchEventToListeners(WebInspector.ProfileHeader.Events.UpdateSt atus, new WebInspector.ProfileHeader.StatusUpdate(subtitle, wait)); 326 this.dispatchEventToListeners(WebInspector.ProfileHeader.Events.UpdateSt atus, new WebInspector.ProfileHeader.StatusUpdate(subtitle, wait));
302 }, 327 },
303 328
304 /** 329 /**
305 * Must be implemented by subclasses. 330 * Must be implemented by subclasses.
331 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegat e
306 * @return {!WebInspector.ProfileSidebarTreeElement} 332 * @return {!WebInspector.ProfileSidebarTreeElement}
307 */ 333 */
308 createSidebarTreeElement: function() 334 createSidebarTreeElement: function(dataDisplayDelegate)
309 { 335 {
310 throw new Error("Needs implemented."); 336 throw new Error("Needs implemented.");
311 }, 337 },
312 338
313 /** 339 /**
340 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegat e
314 * @return {!WebInspector.View} 341 * @return {!WebInspector.View}
315 */ 342 */
316 createView: function() 343 createView: function(dataDisplayDelegate)
317 { 344 {
318 throw new Error("Not implemented."); 345 throw new Error("Not implemented.");
319 }, 346 },
320 347
321 removeTempFile: function() 348 removeTempFile: function()
322 { 349 {
323 if (this._tempFile) 350 if (this._tempFile)
324 this._tempFile.remove(); 351 this._tempFile.remove();
325 }, 352 },
326 353
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 { 395 {
369 this._fromFile = true; 396 this._fromFile = true;
370 }, 397 },
371 398
372 __proto__: WebInspector.TargetAwareObject.prototype 399 __proto__: WebInspector.TargetAwareObject.prototype
373 } 400 }
374 401
375 /** 402 /**
376 * @constructor 403 * @constructor
377 * @implements {WebInspector.Searchable} 404 * @implements {WebInspector.Searchable}
405 * @implements {WebInspector.ProfileType.DataDisplayDelegate}
378 * @extends {WebInspector.PanelWithSidebarTree} 406 * @extends {WebInspector.PanelWithSidebarTree}
379 */ 407 */
380 WebInspector.ProfilesPanel = function() 408 WebInspector.ProfilesPanel = function()
381 { 409 {
382 WebInspector.PanelWithSidebarTree.call(this, "profiles"); 410 WebInspector.PanelWithSidebarTree.call(this, "profiles");
383 this.registerRequiredCSS("panelEnablerView.css"); 411 this.registerRequiredCSS("panelEnablerView.css");
384 this.registerRequiredCSS("heapProfiler.css"); 412 this.registerRequiredCSS("heapProfiler.css");
385 this.registerRequiredCSS("profilesPanel.css"); 413 this.registerRequiredCSS("profilesPanel.css");
386 414
387 this._target = /** @type {!WebInspector.Target} */ (WebInspector.targetManag er.activeTarget()); 415 this._target = /** @type {!WebInspector.Target} */ (WebInspector.targetManag er.activeTarget());
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 { 697 {
670 HeapProfilerAgent.collectGarbage(); 698 HeapProfilerAgent.collectGarbage();
671 }, 699 },
672 700
673 /** 701 /**
674 * @param {!WebInspector.ProfileType} profileType 702 * @param {!WebInspector.ProfileType} profileType
675 */ 703 */
676 _registerProfileType: function(profileType) 704 _registerProfileType: function(profileType)
677 { 705 {
678 this._launcherView.addProfileType(profileType); 706 this._launcherView.addProfileType(profileType);
679 var profileTypeSection = new WebInspector.ProfileTypeSidebarSection(prof ileType); 707 var profileTypeSection = new WebInspector.ProfileTypeSidebarSection(this , profileType);
680 this._typeIdToSidebarSection[profileType.id] = profileTypeSection 708 this._typeIdToSidebarSection[profileType.id] = profileTypeSection
681 this.sidebarTree.appendChild(profileTypeSection); 709 this.sidebarTree.appendChild(profileTypeSection);
682 profileTypeSection.childrenListElement.addEventListener("contextmenu", t his._handleContextMenuEvent.bind(this), true); 710 profileTypeSection.childrenListElement.addEventListener("contextmenu", t his._handleContextMenuEvent.bind(this), true);
683 711
684 /** 712 /**
713 * @param {!WebInspector.Event} event
685 * @this {WebInspector.ProfilesPanel} 714 * @this {WebInspector.ProfilesPanel}
686 */ 715 */
687 function onAddProfileHeader(event) 716 function onAddProfileHeader(event)
688 { 717 {
689 this._addProfileHeader(event.data); 718 this._addProfileHeader(/** @type {!WebInspector.ProfileHeader} */ (e vent.data));
690 } 719 }
691 720
692 /** 721 /**
722 * @param {!WebInspector.Event} event
693 * @this {WebInspector.ProfilesPanel} 723 * @this {WebInspector.ProfilesPanel}
694 */ 724 */
695 function onRemoveProfileHeader(event) 725 function onRemoveProfileHeader(event)
696 { 726 {
697 this._removeProfileHeader(event.data); 727 this._removeProfileHeader(/** @type {!WebInspector.ProfileHeader} */ (event.data));
728 }
729
730 /**
731 * @param {!WebInspector.Event} event
732 * @this {WebInspector.ProfilesPanel}
733 */
734 function profileComplete(event)
735 {
736 this.showProfile(/** @type {!WebInspector.ProfileHeader} */ (event.d ata));
698 } 737 }
699 738
700 profileType.addEventListener(WebInspector.ProfileType.Events.ViewUpdated , this._updateProfileTypeSpecificUI, this); 739 profileType.addEventListener(WebInspector.ProfileType.Events.ViewUpdated , this._updateProfileTypeSpecificUI, this);
701 profileType.addEventListener(WebInspector.ProfileType.Events.AddProfileH eader, onAddProfileHeader, this); 740 profileType.addEventListener(WebInspector.ProfileType.Events.AddProfileH eader, onAddProfileHeader, this);
702 profileType.addEventListener(WebInspector.ProfileType.Events.RemoveProfi leHeader, onRemoveProfileHeader, this); 741 profileType.addEventListener(WebInspector.ProfileType.Events.RemoveProfi leHeader, onRemoveProfileHeader, this);
742 profileType.addEventListener(WebInspector.ProfileType.Events.ProfileComp lete, profileComplete, this);
703 743
704 var profiles = profileType.getProfiles(); 744 var profiles = profileType.getProfiles();
705 for (var i = 0; i < profiles.length; i++) 745 for (var i = 0; i < profiles.length; i++)
706 this._addProfileHeader(profiles[i]); 746 this._addProfileHeader(profiles[i]);
707 }, 747 },
708 748
709 /** 749 /**
710 * @param {?Event} event 750 * @param {?Event} event
711 */ 751 */
712 _handleContextMenuEvent: function(event) 752 _handleContextMenuEvent: function(event)
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 866
827 /** 867 /**
828 * @param {!WebInspector.ProfileHeader} profile 868 * @param {!WebInspector.ProfileHeader} profile
829 * @return {!WebInspector.View} 869 * @return {!WebInspector.View}
830 */ 870 */
831 _viewForProfile: function(profile) 871 _viewForProfile: function(profile)
832 { 872 {
833 var index = this._indexOfViewForProfile(profile); 873 var index = this._indexOfViewForProfile(profile);
834 if (index !== -1) 874 if (index !== -1)
835 return this._profileToView[index].view; 875 return this._profileToView[index].view;
836 var view = profile.createView(); 876 var view = profile.createView(this);
837 view.element.classList.add("profile-view"); 877 view.element.classList.add("profile-view");
838 this._profileToView.push({ profile: profile, view: view}); 878 this._profileToView.push({ profile: profile, view: view});
839 return view; 879 return view;
840 }, 880 },
841 881
842 /** 882 /**
843 * @param {!WebInspector.ProfileHeader} profile 883 * @param {!WebInspector.ProfileHeader} profile
844 * @return {number} 884 * @return {number}
845 */ 885 */
846 _indexOfViewForProfile: function(profile) 886 _indexOfViewForProfile: function(profile)
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMe nuTitles() ? "Reveal in Summary view" : "Reveal in Summary View"), revealInView. bind(this, "Summary")); 1010 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMe nuTitles() ? "Reveal in Summary view" : "Reveal in Summary View"), revealInView. bind(this, "Summary"));
971 }, 1011 },
972 1012
973 __proto__: WebInspector.PanelWithSidebarTree.prototype 1013 __proto__: WebInspector.PanelWithSidebarTree.prototype
974 } 1014 }
975 1015
976 1016
977 /** 1017 /**
978 * @constructor 1018 * @constructor
979 * @extends {WebInspector.SidebarSectionTreeElement} 1019 * @extends {WebInspector.SidebarSectionTreeElement}
1020 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
980 * @param {!WebInspector.ProfileType} profileType 1021 * @param {!WebInspector.ProfileType} profileType
981 */ 1022 */
982 WebInspector.ProfileTypeSidebarSection = function(profileType) 1023 WebInspector.ProfileTypeSidebarSection = function(dataDisplayDelegate, profileTy pe)
983 { 1024 {
984 WebInspector.SidebarSectionTreeElement.call(this, profileType.treeItemTitle, null, true); 1025 WebInspector.SidebarSectionTreeElement.call(this, profileType.treeItemTitle, null, true);
1026 this._dataDisplayDelegate = dataDisplayDelegate;
985 this._profileTreeElements = []; 1027 this._profileTreeElements = [];
986 this._profileGroups = {}; 1028 this._profileGroups = {};
987 this.hidden = true; 1029 this.hidden = true;
988 } 1030 }
989 1031
990 /** 1032 /**
991 * @constructor 1033 * @constructor
992 */ 1034 */
993 WebInspector.ProfileTypeSidebarSection.ProfileGroup = function() 1035 WebInspector.ProfileTypeSidebarSection.ProfileGroup = function()
994 { 1036 {
995 this.profileSidebarTreeElements = []; 1037 this.profileSidebarTreeElements = [];
996 this.sidebarTreeElement = null; 1038 this.sidebarTreeElement = null;
997 } 1039 }
998 1040
999 WebInspector.ProfileTypeSidebarSection.prototype = { 1041 WebInspector.ProfileTypeSidebarSection.prototype = {
1000 /** 1042 /**
1001 * @param {!WebInspector.ProfileHeader} profile 1043 * @param {!WebInspector.ProfileHeader} profile
1002 */ 1044 */
1003 addProfileHeader: function(profile) 1045 addProfileHeader: function(profile)
1004 { 1046 {
1005 this.hidden = false; 1047 this.hidden = false;
1006 var profileType = profile.profileType(); 1048 var profileType = profile.profileType();
1007 var sidebarParent = this; 1049 var sidebarParent = this;
1008 var profileTreeElement = profile.createSidebarTreeElement(); 1050 var profileTreeElement = profile.createSidebarTreeElement(this._dataDisp layDelegate);
1009 this._profileTreeElements.push(profileTreeElement); 1051 this._profileTreeElements.push(profileTreeElement);
1010 1052
1011 if (!profile.fromFile() && profileType.profileBeingRecorded() !== profil e) { 1053 if (!profile.fromFile() && profileType.profileBeingRecorded() !== profil e) {
1012 var profileTitle = profile.title; 1054 var profileTitle = profile.title;
1013 var group = this._profileGroups[profileTitle]; 1055 var group = this._profileGroups[profileTitle];
1014 if (!group) { 1056 if (!group) {
1015 group = new WebInspector.ProfileTypeSidebarSection.ProfileGroup( ); 1057 group = new WebInspector.ProfileTypeSidebarSection.ProfileGroup( );
1016 this._profileGroups[profileTitle] = group; 1058 this._profileGroups[profileTitle] = group;
1017 } 1059 }
1018 group.profileSidebarTreeElements.push(profileTreeElement); 1060 group.profileSidebarTreeElements.push(profileTreeElement);
1019 1061
1020 var groupSize = group.profileSidebarTreeElements.length; 1062 var groupSize = group.profileSidebarTreeElements.length;
1021 if (groupSize === 2) { 1063 if (groupSize === 2) {
1022 // Make a group TreeElement now that there are 2 profiles. 1064 // Make a group TreeElement now that there are 2 profiles.
1023 group.sidebarTreeElement = new WebInspector.ProfileGroupSidebarT reeElement(profile.title); 1065 group.sidebarTreeElement = new WebInspector.ProfileGroupSidebarT reeElement(this._dataDisplayDelegate, profile.title);
1024 1066
1025 var firstProfileTreeElement = group.profileSidebarTreeElements[0 ]; 1067 var firstProfileTreeElement = group.profileSidebarTreeElements[0 ];
1026 // Insert at the same index for the first profile of the group. 1068 // Insert at the same index for the first profile of the group.
1027 var index = this.children.indexOf(firstProfileTreeElement); 1069 var index = this.children.indexOf(firstProfileTreeElement);
1028 this.insertChild(group.sidebarTreeElement, index); 1070 this.insertChild(group.sidebarTreeElement, index);
1029 1071
1030 // Move the first profile to the group. 1072 // Move the first profile to the group.
1031 var selected = firstProfileTreeElement.selected; 1073 var selected = firstProfileTreeElement.selected;
1032 this.removeChild(firstProfileTreeElement); 1074 this.removeChild(firstProfileTreeElement);
1033 group.sidebarTreeElement.appendChild(firstProfileTreeElement); 1075 group.sidebarTreeElement.appendChild(firstProfileTreeElement);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 */ 1172 */
1131 appendApplicableItems: function(event, contextMenu, target) 1173 appendApplicableItems: function(event, contextMenu, target)
1132 { 1174 {
1133 WebInspector.inspectorView.panel("profiles").appendApplicableItems(event , contextMenu, target); 1175 WebInspector.inspectorView.panel("profiles").appendApplicableItems(event , contextMenu, target);
1134 } 1176 }
1135 } 1177 }
1136 1178
1137 /** 1179 /**
1138 * @constructor 1180 * @constructor
1139 * @extends {WebInspector.SidebarTreeElement} 1181 * @extends {WebInspector.SidebarTreeElement}
1182 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
1140 * @param {!WebInspector.ProfileHeader} profile 1183 * @param {!WebInspector.ProfileHeader} profile
1141 * @param {string} className 1184 * @param {string} className
1142 */ 1185 */
1143 WebInspector.ProfileSidebarTreeElement = function(profile, className) 1186 WebInspector.ProfileSidebarTreeElement = function(dataDisplayDelegate, profile, className)
1144 { 1187 {
1188 this._dataDisplayDelegate = dataDisplayDelegate;
1145 this.profile = profile; 1189 this.profile = profile;
1146 WebInspector.SidebarTreeElement.call(this, className, profile.title, "", pro file, false); 1190 WebInspector.SidebarTreeElement.call(this, className, profile.title, "", pro file, false);
1147 this.refreshTitles(); 1191 this.refreshTitles();
1148 profile.addEventListener(WebInspector.ProfileHeader.Events.UpdateStatus, thi s._updateStatus, this); 1192 profile.addEventListener(WebInspector.ProfileHeader.Events.UpdateStatus, thi s._updateStatus, this);
1149 if (profile.canSaveToFile()) 1193 if (profile.canSaveToFile())
1150 this._createSaveLink(); 1194 this._createSaveLink();
1151 else 1195 else
1152 profile.addEventListener(WebInspector.ProfileHeader.Events.ProfileReceiv ed, this._onProfileReceived, this); 1196 profile.addEventListener(WebInspector.ProfileHeader.Events.ProfileReceiv ed, this._onProfileReceived, this);
1153 } 1197 }
1154 1198
(...skipping 24 matching lines...) Expand all
1179 }, 1223 },
1180 1224
1181 dispose: function() 1225 dispose: function()
1182 { 1226 {
1183 this.profile.removeEventListener(WebInspector.ProfileHeader.Events.Updat eStatus, this._updateStatus, this); 1227 this.profile.removeEventListener(WebInspector.ProfileHeader.Events.Updat eStatus, this._updateStatus, this);
1184 this.profile.removeEventListener(WebInspector.ProfileHeader.Events.Profi leReceived, this._onProfileReceived, this); 1228 this.profile.removeEventListener(WebInspector.ProfileHeader.Events.Profi leReceived, this._onProfileReceived, this);
1185 }, 1229 },
1186 1230
1187 onselect: function() 1231 onselect: function()
1188 { 1232 {
1189 WebInspector.panels.profiles.showProfile(this.profile); 1233 this._dataDisplayDelegate.showProfile(this.profile);
1190 }, 1234 },
1191 1235
1192 /** 1236 /**
1193 * @return {boolean} 1237 * @return {boolean}
1194 */ 1238 */
1195 ondelete: function() 1239 ondelete: function()
1196 { 1240 {
1197 this.profile.profileType().removeProfile(this.profile); 1241 this.profile.profileType().removeProfile(this.profile);
1198 return true; 1242 return true;
1199 }, 1243 },
(...skipping 18 matching lines...) Expand all
1218 { 1262 {
1219 this.profile.saveToFile(); 1263 this.profile.saveToFile();
1220 }, 1264 },
1221 1265
1222 __proto__: WebInspector.SidebarTreeElement.prototype 1266 __proto__: WebInspector.SidebarTreeElement.prototype
1223 } 1267 }
1224 1268
1225 /** 1269 /**
1226 * @constructor 1270 * @constructor
1227 * @extends {WebInspector.SidebarTreeElement} 1271 * @extends {WebInspector.SidebarTreeElement}
1272 * @param {!WebInspector.ProfileType.DataDisplayDelegate} dataDisplayDelegate
1228 * @param {string} title 1273 * @param {string} title
1229 * @param {string=} subtitle 1274 * @param {string=} subtitle
1230 */ 1275 */
1231 WebInspector.ProfileGroupSidebarTreeElement = function(title, subtitle) 1276 WebInspector.ProfileGroupSidebarTreeElement = function(dataDisplayDelegate, titl e, subtitle)
1232 { 1277 {
1233 WebInspector.SidebarTreeElement.call(this, "profile-group-sidebar-tree-item" , title, subtitle, null, true); 1278 WebInspector.SidebarTreeElement.call(this, "profile-group-sidebar-tree-item" , title, subtitle, null, true);
1279 this._dataDisplayDelegate = dataDisplayDelegate;
1234 } 1280 }
1235 1281
1236 WebInspector.ProfileGroupSidebarTreeElement.prototype = { 1282 WebInspector.ProfileGroupSidebarTreeElement.prototype = {
1237 onselect: function() 1283 onselect: function()
1238 { 1284 {
1239 if (this.children.length > 0) 1285 if (this.children.length > 0)
1240 WebInspector.panels.profiles.showProfile(this.children[this.children .length - 1].profile); 1286 this._dataDisplayDelegate.showProfile(this.children[this.children.le ngth - 1].profile);
1241 }, 1287 },
1242 1288
1243 __proto__: WebInspector.SidebarTreeElement.prototype 1289 __proto__: WebInspector.SidebarTreeElement.prototype
1244 } 1290 }
1245 1291
1246 /** 1292 /**
1247 * @constructor 1293 * @constructor
1248 * @extends {WebInspector.SidebarTreeElement} 1294 * @extends {WebInspector.SidebarTreeElement}
1249 * @param {!WebInspector.ProfilesPanel} panel 1295 * @param {!WebInspector.ProfilesPanel} panel
1250 */ 1296 */
(...skipping 29 matching lines...) Expand all
1280 importScript("HeapSnapshotCommon.js"); 1326 importScript("HeapSnapshotCommon.js");
1281 importScript("HeapSnapshotProxy.js"); 1327 importScript("HeapSnapshotProxy.js");
1282 importScript("HeapSnapshotDataGrids.js"); 1328 importScript("HeapSnapshotDataGrids.js");
1283 importScript("HeapSnapshotGridNodes.js"); 1329 importScript("HeapSnapshotGridNodes.js");
1284 importScript("HeapSnapshotView.js"); 1330 importScript("HeapSnapshotView.js");
1285 importScript("ProfileLauncherView.js"); 1331 importScript("ProfileLauncherView.js");
1286 importScript("CanvasProfileView.js"); 1332 importScript("CanvasProfileView.js");
1287 importScript("CanvasReplayStateView.js"); 1333 importScript("CanvasReplayStateView.js");
1288 1334
1289 WebInspector.ProfileTypeRegistry.instance = new WebInspector.ProfileTypeRegistry (); 1335 WebInspector.ProfileTypeRegistry.instance = new WebInspector.ProfileTypeRegistry ();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698