OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 21 matching lines...) Expand all Loading... |
32 importScript("CountersGraph.js"); | 32 importScript("CountersGraph.js"); |
33 importScript("DOMCountersGraph.js"); | 33 importScript("DOMCountersGraph.js"); |
34 importScript("PieChart.js"); | 34 importScript("PieChart.js"); |
35 importScript("TimelineModel.js"); | 35 importScript("TimelineModel.js"); |
36 importScript("TimelineOverviewPane.js"); | 36 importScript("TimelineOverviewPane.js"); |
37 importScript("TimelinePresentationModel.js"); | 37 importScript("TimelinePresentationModel.js"); |
38 importScript("TimelineFrameModel.js"); | 38 importScript("TimelineFrameModel.js"); |
39 importScript("TimelineEventOverview.js"); | 39 importScript("TimelineEventOverview.js"); |
40 importScript("TimelineFrameOverview.js"); | 40 importScript("TimelineFrameOverview.js"); |
41 importScript("TimelineMemoryOverview.js"); | 41 importScript("TimelineMemoryOverview.js"); |
| 42 importScript("TimelinePowerOverview.js"); |
42 importScript("TimelineFlameChart.js"); | 43 importScript("TimelineFlameChart.js"); |
43 importScript("TimelineUIUtils.js"); | 44 importScript("TimelineUIUtils.js"); |
44 importScript("TimelineView.js"); | 45 importScript("TimelineView.js"); |
45 | 46 |
46 /** | 47 /** |
47 * @constructor | 48 * @constructor |
48 * @extends {WebInspector.Panel} | 49 * @extends {WebInspector.Panel} |
49 * @implements {WebInspector.TimelineModeViewDelegate} | 50 * @implements {WebInspector.TimelineModeViewDelegate} |
50 * @implements {WebInspector.Searchable} | 51 * @implements {WebInspector.Searchable} |
51 */ | 52 */ |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 this._dockSideChanged(); | 122 this._dockSideChanged(); |
122 | 123 |
123 this._selectPresentationMode(this._presentationModeSetting.get()); | 124 this._selectPresentationMode(this._presentationModeSetting.get()); |
124 this._detailsSplitView.show(this.element); | 125 this._detailsSplitView.show(this.element); |
125 } | 126 } |
126 | 127 |
127 WebInspector.TimelinePanel.Mode = { | 128 WebInspector.TimelinePanel.Mode = { |
128 Events: "Events", | 129 Events: "Events", |
129 Frames: "Frames", | 130 Frames: "Frames", |
130 Memory: "Memory", | 131 Memory: "Memory", |
131 FlameChart: "FlameChart" | 132 FlameChart: "FlameChart", |
| 133 Power: "Power" |
132 }; | 134 }; |
133 | 135 |
134 // Define row and header height, should be in sync with styles for timeline grap
hs. | 136 // Define row and header height, should be in sync with styles for timeline grap
hs. |
135 WebInspector.TimelinePanel.rowHeight = 18; | 137 WebInspector.TimelinePanel.rowHeight = 18; |
136 WebInspector.TimelinePanel.headerHeight = 20; | 138 WebInspector.TimelinePanel.headerHeight = 20; |
137 | 139 |
138 WebInspector.TimelinePanel.durationFilterPresetsMs = [0, 1, 15]; | 140 WebInspector.TimelinePanel.durationFilterPresetsMs = [0, 1, 15]; |
139 | 141 |
140 WebInspector.TimelinePanel.prototype = { | 142 WebInspector.TimelinePanel.prototype = { |
141 wasShown: function() | 143 wasShown: function() |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 views.mainViews = [this._timelineView()]; | 259 views.mainViews = [this._timelineView()]; |
258 break; | 260 break; |
259 case WebInspector.TimelinePanel.Mode.Memory: | 261 case WebInspector.TimelinePanel.Mode.Memory: |
260 views.overviewView = new WebInspector.TimelineMemoryOverview(thi
s._model); | 262 views.overviewView = new WebInspector.TimelineMemoryOverview(thi
s._model); |
261 views.mainViews = [this._timelineView(), new WebInspector.DOMCou
ntersGraph(this, this._model)]; | 263 views.mainViews = [this._timelineView(), new WebInspector.DOMCou
ntersGraph(this, this._model)]; |
262 break; | 264 break; |
263 case WebInspector.TimelinePanel.Mode.FlameChart: | 265 case WebInspector.TimelinePanel.Mode.FlameChart: |
264 views.overviewView = new WebInspector.TimelineFrameOverview(this
._model, this._frameModel()); | 266 views.overviewView = new WebInspector.TimelineFrameOverview(this
._model, this._frameModel()); |
265 views.mainViews = [new WebInspector.TimelineFlameChart(this, thi
s._model, this._frameModel())]; | 267 views.mainViews = [new WebInspector.TimelineFlameChart(this, thi
s._model, this._frameModel())]; |
266 break; | 268 break; |
| 269 case WebInspector.TimelinePanel.Mode.Power: |
| 270 views.overviewView = new WebInspector.TimelinePowerOverview(this
._model); |
| 271 views.mainViews = [this._timelineView()]; |
| 272 break; |
267 default: | 273 default: |
268 console.assert(false, "Unknown mode: " + mode); | 274 console.assert(false, "Unknown mode: " + mode); |
269 } | 275 } |
270 for (var i = 0; i < views.mainViews.length; ++i) | 276 for (var i = 0; i < views.mainViews.length; ++i) |
271 views.mainViews[i].addEventListener(WebInspector.SplitView.Event
s.SidebarSizeChanged, this._sidebarResized, this); | 277 views.mainViews[i].addEventListener(WebInspector.SplitView.Event
s.SidebarSizeChanged, this._sidebarResized, this); |
272 this._viewsMap[mode] = views; | 278 this._viewsMap[mode] = views; |
273 } | 279 } |
274 | 280 |
275 this._timelineView().setFrameModel(mode === WebInspector.TimelinePanel.M
ode.Frames ? this._frameModel() : null); | 281 this._timelineView().setFrameModel(mode === WebInspector.TimelinePanel.M
ode.Frames ? this._frameModel() : null); |
276 return views; | 282 return views; |
277 }, | 283 }, |
278 | 284 |
279 _createPresentationSelector: function() | 285 _createPresentationSelector: function() |
280 { | 286 { |
281 this._viewsMap = {}; | 287 this._viewsMap = {}; |
282 | 288 |
283 var topPaneSidebarElement = this._topPane.sidebarElement(); | 289 var topPaneSidebarElement = this._topPane.sidebarElement(); |
284 topPaneSidebarElement.id = "timeline-overview-sidebar"; | 290 topPaneSidebarElement.id = "timeline-overview-sidebar"; |
285 | 291 |
286 var overviewTreeElement = topPaneSidebarElement.createChild("ol", "sideb
ar-tree vbox"); | 292 var overviewTreeElement = topPaneSidebarElement.createChild("ol", "sideb
ar-tree vbox"); |
287 var topPaneSidebarTree = new TreeOutline(overviewTreeElement); | 293 var topPaneSidebarTree = new TreeOutline(overviewTreeElement); |
288 | 294 |
289 this._overviewItems = {}; | 295 this._overviewItems = {}; |
290 for (var mode in WebInspector.TimelinePanel.Mode) { | 296 for (var mode in WebInspector.TimelinePanel.Mode) { |
291 if (mode === WebInspector.TimelinePanel.Mode.FlameChart && !WebInspe
ctor.experimentsSettings.timelineFlameChart.isEnabled()) | 297 if (mode === WebInspector.TimelinePanel.Mode.FlameChart && !WebInspe
ctor.experimentsSettings.timelineFlameChart.isEnabled() || |
| 298 mode === WebInspector.TimelinePanel.Mode.Power && !Capabilities.
canProfilePower) |
292 continue; | 299 continue; |
293 this._overviewItems[mode] = new WebInspector.SidebarTreeElement("tim
eline-overview-sidebar-" + mode.toLowerCase(), WebInspector.UIString(mode)); | 300 this._overviewItems[mode] = new WebInspector.SidebarTreeElement("tim
eline-overview-sidebar-" + mode.toLowerCase(), WebInspector.UIString(mode)); |
294 var item = this._overviewItems[mode]; | 301 var item = this._overviewItems[mode]; |
295 item.onselect = this._onModeChanged.bind(this, mode); | 302 item.onselect = this._onModeChanged.bind(this, mode); |
296 topPaneSidebarTree.appendChild(item); | 303 topPaneSidebarTree.appendChild(item); |
297 } | 304 } |
298 }, | 305 }, |
299 | 306 |
300 _createStatusBarItems: function() | 307 _createStatusBarItems: function() |
301 { | 308 { |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 this._updateSelectionDetails(); | 555 this._updateSelectionDetails(); |
549 }, | 556 }, |
550 | 557 |
551 /** | 558 /** |
552 * @param {boolean} userInitiated | 559 * @param {boolean} userInitiated |
553 */ | 560 */ |
554 _startRecording: function(userInitiated) | 561 _startRecording: function(userInitiated) |
555 { | 562 { |
556 this._userInitiatedRecording = userInitiated; | 563 this._userInitiatedRecording = userInitiated; |
557 this._model.startRecording(true); | 564 this._model.startRecording(true); |
| 565 for (var mode in WebInspector.TimelinePanel.Mode) |
| 566 this._viewsForMode(mode).overviewView.timelineStarted(); |
| 567 |
558 if (userInitiated) | 568 if (userInitiated) |
559 WebInspector.userMetrics.TimelineStarted.record(); | 569 WebInspector.userMetrics.TimelineStarted.record(); |
560 }, | 570 }, |
561 | 571 |
562 _stopRecording: function() | 572 _stopRecording: function() |
563 { | 573 { |
564 this._userInitiatedRecording = false; | 574 this._userInitiatedRecording = false; |
565 this._model.stopRecording(); | 575 this._model.stopRecording(); |
| 576 for (var mode in WebInspector.TimelinePanel.Mode) |
| 577 this._viewsForMode(mode).overviewView.timelineStopped(); |
566 }, | 578 }, |
567 | 579 |
568 /** | 580 /** |
569 * @return {boolean} | 581 * @return {boolean} |
570 */ | 582 */ |
571 _toggleTimelineButtonClicked: function() | 583 _toggleTimelineButtonClicked: function() |
572 { | 584 { |
573 if (this._operationInProgress) | 585 if (this._operationInProgress) |
574 return true; | 586 return true; |
575 if (this._recordingInProgress()) | 587 if (this._recordingInProgress()) |
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1110 * @param {!WebInspector.TimelineModel.Record} record | 1122 * @param {!WebInspector.TimelineModel.Record} record |
1111 * @return {boolean} | 1123 * @return {boolean} |
1112 */ | 1124 */ |
1113 accept: function(record) | 1125 accept: function(record) |
1114 { | 1126 { |
1115 return !this._hiddenRecords[record.type]; | 1127 return !this._hiddenRecords[record.type]; |
1116 }, | 1128 }, |
1117 | 1129 |
1118 __proto__: WebInspector.TimelineModel.Filter.prototype | 1130 __proto__: WebInspector.TimelineModel.Filter.prototype |
1119 } | 1131 } |
OLD | NEW |