OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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
(); |
OLD | NEW |