Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1491)

Unified Diff: Source/devtools/front_end/timeline/TracingTimelineModel.js

Issue 311113002: Move inspected target events calculation into TracingTimelineModel (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/devtools/front_end/timeline/TracingModel.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/timeline/TracingTimelineModel.js
diff --git a/Source/devtools/front_end/timeline/TracingTimelineModel.js b/Source/devtools/front_end/timeline/TracingTimelineModel.js
index 026b9d885945cc7730e26a8f250c75817e4882a3..9d707af8818bc97d71f8feb186ca42a79af3f5eb 100644
--- a/Source/devtools/front_end/timeline/TracingTimelineModel.js
+++ b/Source/devtools/front_end/timeline/TracingTimelineModel.js
@@ -10,6 +10,7 @@ WebInspector.TracingTimelineModel = function(tracingModel)
{
this._tracingModel = tracingModel;
this._mainThreadEvents = [];
+ this._inspectedTargetEvents = [];
}
WebInspector.TracingTimelineModel.RecordType = {
@@ -87,20 +88,33 @@ WebInspector.TracingTimelineModel.RecordType = {
LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl"
};
-
WebInspector.TracingTimelineModel.prototype = {
willStartRecordingTraceEvents: function()
{
this._mainThreadEvents = [];
+ this._inspectedTargetEvents = [];
},
didStopRecordingTraceEvents: function()
{
- var events = this._tracingModel.inspectedTargetEvents();
+ var events = this._tracingModel.devtoolsMetadataEvents();
+ events.sort(WebInspector.TracingModel.Event.compareStartTime);
+
this._resetProcessingState();
- for (var i = 0, length = events.length; i < length; i++)
- this._processEvent(events[i]);
+ for (var i = 0, length = events.length; i < length; i++) {
+ var event = events[i];
+ var process = event.thread.process();
+ var startTime = event.startTime;
+
+ var endTime = Infinity;
+ if (i + 1 < length)
+ endTime = events[i + 1].startTime;
+
+ process.sortedThreads().forEach(this._processThreadEvents.bind(this, startTime, endTime, event.thread));
+ }
this._resetProcessingState();
+
+ this._inspectedTargetEvents.sort(WebInspector.TracingModel.Event.compareStartTime);
},
/**
@@ -124,7 +138,7 @@ WebInspector.TracingTimelineModel.prototype = {
*/
inspectedTargetEvents: function()
{
- return this._tracingModel.inspectedTargetEvents();
+ return this._inspectedTargetEvents;
},
/**
@@ -151,6 +165,30 @@ WebInspector.TracingTimelineModel.prototype = {
},
/**
+ * @param {number} startTime
+ * @param {?number} endTime
+ * @param {!WebInspector.TracingModel.Thread} mainThread
+ * @param {!WebInspector.TracingModel.Thread} thread
+ */
+ _processThreadEvents: function(startTime, endTime, mainThread, thread)
+ {
+ var events = thread.events();
+ var length = events.length;
+ var i = events.lowerBound(startTime, function (time, event) { return time - event.startTime });
+
+ this._eventStack = [];
+ for (; i < length; i++) {
+ var event = events[i];
+ if (endTime && event.startTime >= endTime)
+ break;
+ this._processEvent(event);
+ if (thread === mainThread)
+ this._mainThreadEvents.push(event);
+ this._inspectedTargetEvents.push(event);
+ }
+ },
+
+ /**
* @param {!WebInspector.TracingModel.Event} event
*/
_processEvent: function(event)
@@ -257,10 +295,6 @@ WebInspector.TracingTimelineModel.prototype = {
this._inspectedTargetLayerTreeId = event.args["layerTreeId"];
break;
- case recordTypes.TracingStartedInPage:
- this._mainThread = event.thread;
- break;
-
case recordTypes.Paint:
case recordTypes.ScrollLayer:
event.backendNodeId = event.args["data"]["nodeId"];
@@ -293,8 +327,6 @@ WebInspector.TracingTimelineModel.prototype = {
event.imageURL = paintImageEvent.imageURL;
break;
}
- if (this._mainThread === event.thread)
- this._mainThreadEvents.push(event);
},
/**
« no previous file with comments | « Source/devtools/front_end/timeline/TracingModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698