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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 | 52 |
53 var options = {}; | 53 var options = {}; |
54 options[WebInspector.CPUProfileView._TypeFlame] = this.viewSelectComboBox.cr
eateOption(WebInspector.UIString("Chart"), "", WebInspector.CPUProfileView._Type
Flame); | 54 options[WebInspector.CPUProfileView._TypeFlame] = this.viewSelectComboBox.cr
eateOption(WebInspector.UIString("Chart"), "", WebInspector.CPUProfileView._Type
Flame); |
55 options[WebInspector.CPUProfileView._TypeHeavy] = this.viewSelectComboBox.cr
eateOption(WebInspector.UIString("Heavy (Bottom Up)"), "", WebInspector.CPUProfi
leView._TypeHeavy); | 55 options[WebInspector.CPUProfileView._TypeHeavy] = this.viewSelectComboBox.cr
eateOption(WebInspector.UIString("Heavy (Bottom Up)"), "", WebInspector.CPUProfi
leView._TypeHeavy); |
56 options[WebInspector.CPUProfileView._TypeTree] = this.viewSelectComboBox.cre
ateOption(WebInspector.UIString("Tree (Top Down)"), "", WebInspector.CPUProfileV
iew._TypeTree); | 56 options[WebInspector.CPUProfileView._TypeTree] = this.viewSelectComboBox.cre
ateOption(WebInspector.UIString("Tree (Top Down)"), "", WebInspector.CPUProfileV
iew._TypeTree); |
57 | 57 |
58 var optionName = this._viewType.get() || WebInspector.CPUProfileView._TypeFl
ame; | 58 var optionName = this._viewType.get() || WebInspector.CPUProfileView._TypeFl
ame; |
59 var option = options[optionName] || options[WebInspector.CPUProfileView._Typ
eFlame]; | 59 var option = options[optionName] || options[WebInspector.CPUProfileView._Typ
eFlame]; |
60 this.viewSelectComboBox.select(option); | 60 this.viewSelectComboBox.select(option); |
61 | 61 |
62 this._statusBarButtonsElement = createElement("span"); | |
63 | |
64 this.focusButton = new WebInspector.StatusBarButton(WebInspector.UIString("F
ocus selected function."), "focus-profile-node-status-bar-item"); | 62 this.focusButton = new WebInspector.StatusBarButton(WebInspector.UIString("F
ocus selected function."), "focus-profile-node-status-bar-item"); |
65 this.focusButton.setEnabled(false); | 63 this.focusButton.setEnabled(false); |
66 this.focusButton.addEventListener("click", this._focusClicked, this); | 64 this.focusButton.addEventListener("click", this._focusClicked, this); |
67 this._statusBarButtonsElement.appendChild(this.focusButton.element); | |
68 | 65 |
69 this.excludeButton = new WebInspector.StatusBarButton(WebInspector.UIString(
"Exclude selected function."), "exclude-profile-node-status-bar-item"); | 66 this.excludeButton = new WebInspector.StatusBarButton(WebInspector.UIString(
"Exclude selected function."), "exclude-profile-node-status-bar-item"); |
70 this.excludeButton.setEnabled(false); | 67 this.excludeButton.setEnabled(false); |
71 this.excludeButton.addEventListener("click", this._excludeClicked, this); | 68 this.excludeButton.addEventListener("click", this._excludeClicked, this); |
72 this._statusBarButtonsElement.appendChild(this.excludeButton.element); | |
73 | 69 |
74 this.resetButton = new WebInspector.StatusBarButton(WebInspector.UIString("R
estore all functions."), "reset-profile-status-bar-item"); | 70 this.resetButton = new WebInspector.StatusBarButton(WebInspector.UIString("R
estore all functions."), "reset-profile-status-bar-item"); |
75 this.resetButton.setVisible(false); | 71 this.resetButton.setVisible(false); |
76 this.resetButton.addEventListener("click", this._resetClicked, this); | 72 this.resetButton.addEventListener("click", this._resetClicked, this); |
77 this._statusBarButtonsElement.appendChild(this.resetButton.element); | |
78 | 73 |
79 this._profileHeader = profileHeader; | 74 this._profileHeader = profileHeader; |
80 this._linkifier = new WebInspector.Linkifier(new WebInspector.Linkifier.Defa
ultFormatter(30)); | 75 this._linkifier = new WebInspector.Linkifier(new WebInspector.Linkifier.Defa
ultFormatter(30)); |
81 | 76 |
82 this.profile = new WebInspector.CPUProfileDataModel(profileHeader._profile |
| profileHeader.protocolProfile()); | 77 this.profile = new WebInspector.CPUProfileDataModel(profileHeader._profile |
| profileHeader.protocolProfile()); |
83 | 78 |
84 this._changeView(); | 79 this._changeView(); |
85 if (this._flameChart) | 80 if (this._flameChart) |
86 this._flameChart.update(); | 81 this._flameChart.update(); |
87 } | 82 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 * @param {!number} timeLeft | 130 * @param {!number} timeLeft |
136 * @param {!number} timeRight | 131 * @param {!number} timeRight |
137 */ | 132 */ |
138 selectRange: function(timeLeft, timeRight) | 133 selectRange: function(timeLeft, timeRight) |
139 { | 134 { |
140 if (!this._flameChart) | 135 if (!this._flameChart) |
141 return; | 136 return; |
142 this._flameChart.selectRange(timeLeft, timeRight); | 137 this._flameChart.selectRange(timeLeft, timeRight); |
143 }, | 138 }, |
144 | 139 |
145 get statusBarItems() | 140 /** |
| 141 * @return {!Array.<!WebInspector.StatusBarItem>} |
| 142 */ |
| 143 statusBarItems: function() |
146 { | 144 { |
147 return [this.viewSelectComboBox.element, this._statusBarButtonsElement]; | 145 return [this.viewSelectComboBox, this.focusButton, this.excludeButton, t
his.resetButton]; |
148 }, | 146 }, |
149 | 147 |
150 /** | 148 /** |
151 * @return {!WebInspector.ProfileDataGridTree} | 149 * @return {!WebInspector.ProfileDataGridTree} |
152 */ | 150 */ |
153 _getBottomUpProfileDataGridTree: function() | 151 _getBottomUpProfileDataGridTree: function() |
154 { | 152 { |
155 if (!this._bottomUpProfileDataGridTree) | 153 if (!this._bottomUpProfileDataGridTree) |
156 this._bottomUpProfileDataGridTree = new WebInspector.BottomUpProfile
DataGridTree(this, /** @type {!ProfilerAgent.CPUProfileNode} */ (this.profile.pr
ofileHead)); | 154 this._bottomUpProfileDataGridTree = new WebInspector.BottomUpProfile
DataGridTree(this, /** @type {!ProfilerAgent.CPUProfileNode} */ (this.profile.pr
ofileHead)); |
157 return this._bottomUpProfileDataGridTree; | 155 return this._bottomUpProfileDataGridTree; |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 | 281 |
284 this._searchableView.closeSearch(); | 282 this._searchableView.closeSearch(); |
285 | 283 |
286 if (this._visibleView) | 284 if (this._visibleView) |
287 this._visibleView.detach(); | 285 this._visibleView.detach(); |
288 | 286 |
289 this._viewType.set(this.viewSelectComboBox.selectedOption().value); | 287 this._viewType.set(this.viewSelectComboBox.selectedOption().value); |
290 switch (this._viewType.get()) { | 288 switch (this._viewType.get()) { |
291 case WebInspector.CPUProfileView._TypeFlame: | 289 case WebInspector.CPUProfileView._TypeFlame: |
292 this._ensureFlameChartCreated(); | 290 this._ensureFlameChartCreated(); |
293 this._statusBarButtonsElement.classList.toggle("hidden", true); | |
294 this._visibleView = this._flameChart; | 291 this._visibleView = this._flameChart; |
295 this._searchableElement = this._flameChart; | 292 this._searchableElement = this._flameChart; |
296 break; | 293 break; |
297 case WebInspector.CPUProfileView._TypeTree: | 294 case WebInspector.CPUProfileView._TypeTree: |
298 this.profileDataGridTree = this._getTopDownProfileDataGridTree(); | 295 this.profileDataGridTree = this._getTopDownProfileDataGridTree(); |
299 this._sortProfile(); | 296 this._sortProfile(); |
300 this._visibleView = this.dataGrid; | 297 this._visibleView = this.dataGrid; |
301 this._searchableElement = this.profileDataGridTree; | 298 this._searchableElement = this.profileDataGridTree; |
302 break; | 299 break; |
303 case WebInspector.CPUProfileView._TypeHeavy: | 300 case WebInspector.CPUProfileView._TypeHeavy: |
304 this.profileDataGridTree = this._getBottomUpProfileDataGridTree(); | 301 this.profileDataGridTree = this._getBottomUpProfileDataGridTree(); |
305 this._sortProfile(); | 302 this._sortProfile(); |
306 this._visibleView = this.dataGrid; | 303 this._visibleView = this.dataGrid; |
307 this._searchableElement = this.profileDataGridTree; | 304 this._searchableElement = this.profileDataGridTree; |
308 break; | 305 break; |
309 } | 306 } |
310 | 307 |
311 this._statusBarButtonsElement.classList.toggle("hidden", this._viewType.
get() === WebInspector.CPUProfileView._TypeFlame); | 308 var isFlame = this._viewType.get() === WebInspector.CPUProfileView._Type
Flame; |
| 309 this.focusButton.setVisible(!isFlame); |
| 310 this.excludeButton.setVisible(!isFlame); |
| 311 this.resetButton.setVisible(!isFlame); |
| 312 |
312 this._visibleView.show(this._searchableView.element); | 313 this._visibleView.show(this._searchableView.element); |
313 }, | 314 }, |
314 | 315 |
315 _focusClicked: function(event) | 316 _focusClicked: function(event) |
316 { | 317 { |
317 if (!this.dataGrid.selectedNode) | 318 if (!this.dataGrid.selectedNode) |
318 return; | 319 return; |
319 | 320 |
320 this.resetButton.setVisible(true); | 321 this.resetButton.setVisible(true); |
321 this.profileDataGridTree.focus(this.dataGrid.selectedNode); | 322 this.profileDataGridTree.focus(this.dataGrid.selectedNode); |
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
778 _notifyTempFileReady: function() | 779 _notifyTempFileReady: function() |
779 { | 780 { |
780 if (this._onTempFileReady) { | 781 if (this._onTempFileReady) { |
781 this._onTempFileReady(); | 782 this._onTempFileReady(); |
782 this._onTempFileReady = null; | 783 this._onTempFileReady = null; |
783 } | 784 } |
784 }, | 785 }, |
785 | 786 |
786 __proto__: WebInspector.ProfileHeader.prototype | 787 __proto__: WebInspector.ProfileHeader.prototype |
787 } | 788 } |
OLD | NEW |