| 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 |