Index: Source/devtools/front_end/TimelineModel.js |
diff --git a/Source/devtools/front_end/TimelineModel.js b/Source/devtools/front_end/TimelineModel.js |
old mode 100644 |
new mode 100755 |
index 3e9f84a82485521ca461bdc326c2b04386f88521..d03cf6e91dcfd476556cf075fbba2e265d62efdf |
--- a/Source/devtools/front_end/TimelineModel.js |
+++ b/Source/devtools/front_end/TimelineModel.js |
@@ -42,6 +42,7 @@ WebInspector.TimelineModel = function() |
WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded, this._onRecordAdded, this); |
WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStarted, this._onStarted, this); |
WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStopped, this._onStopped, this); |
+ WebInspector.powerProfiler.addEventListener(WebInspector.PowerProfiler.EventTypes.PowerEventRecorded, this._onPowerEventAdded, this); |
pfeldman
2014/01/09 11:38:52
Timeline model should not depend on any of the pro
Pan
2014/02/13 06:01:40
Hi @pfeldman, @qsr,
I'm thinking the first soluti
|
} |
WebInspector.TimelineModel.TransferChunkLengthBytes = 5000000; |
@@ -102,6 +103,8 @@ WebInspector.TimelineModel.RecordType = { |
WebSocketSendHandshakeRequest : "WebSocketSendHandshakeRequest", |
WebSocketReceiveHandshakeResponse : "WebSocketReceiveHandshakeResponse", |
WebSocketDestroy : "WebSocketDestroy", |
+ |
+ SoC_Package : "SoC_Package", |
} |
WebInspector.TimelineModel.Events = { |
@@ -161,6 +164,10 @@ WebInspector.TimelineModel.prototype = { |
{ |
this._clientInitiatedRecording = true; |
this.reset(); |
+ |
+ if (WebInspector.experimentsSettings.powerProfile.isEnabled()) |
+ WebInspector.powerProfiler.startProfile(); |
+ |
var maxStackFrames = WebInspector.settings.timelineCaptureStacks.get() ? 30 : 0; |
var includeGPUEvents = WebInspector.experimentsSettings.gpuTimeline.isEnabled(); |
WebInspector.timelineManager.start(maxStackFrames, includeDomCounters, includeGPUEvents, this._fireRecordingStarted.bind(this)); |
@@ -181,6 +188,9 @@ WebInspector.TimelineModel.prototype = { |
} |
this._clientInitiatedRecording = false; |
WebInspector.timelineManager.stop(this._fireRecordingStopped.bind(this)); |
+ |
+ if (WebInspector.experimentsSettings.powerProfile.isEnabled()) |
+ WebInspector.powerProfiler.stopProfile(); |
}, |
get records() |
@@ -231,6 +241,21 @@ WebInspector.TimelineModel.prototype = { |
this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordingStopped); |
}, |
+ _onPowerEventAdded: function(event) |
+ { |
+ if (this._collectionEnabled) { |
+ var records = event.data; |
+ for(var item in records) { |
+ records[item]["startTime"] = records[item].timestamp; |
+ delete records[item].timestamp; |
+ } |
+ this._stringPool.internObjectStrings(records); |
+ this._records = this._records.concat(records); |
+ records.forEach(this._updateBoundaries.bind(this)); // shall we update boundary here? |
+ this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordAdded, records); |
+ } |
+ }, |
+ |
/** |
* @param {TimelineAgent.TimelineEvent} record |
*/ |