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

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

Issue 301593002: DevTools: process events from all threads in TimelineTraceEventBindings (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: review comments addressed Created 6 years, 7 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
Index: Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
diff --git a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
index 327f5e7fc0d69cdd5c9160ef870aa32db85c9742..8640f1adc31b6d17d4d0887e894282b757fc1901 100644
--- a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
+++ b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
@@ -7,10 +7,96 @@
*/
WebInspector.TimelineTraceEventBindings = function()
{
- this._resetProcessingState();
+ this._reset();
}
+WebInspector.TimelineTraceEventBindings.RecordType = {
+ Program: "Program",
+ EventDispatch: "EventDispatch",
+
+ GPUTask: "GPUTask",
+
+ RequestMainThreadFrame: "RequestMainThreadFrame",
+ BeginFrame: "BeginFrame",
+ BeginMainThreadFrame: "BeginMainThreadFrame",
+ ActivateLayerTree: "ActivateLayerTree",
+ DrawFrame: "DrawFrame",
+ ScheduleStyleRecalculation: "ScheduleStyleRecalculation",
+ RecalculateStyles: "RecalculateStyles",
+ InvalidateLayout: "InvalidateLayout",
+ Layout: "Layout",
+ UpdateLayerTree: "UpdateLayerTree",
+ PaintSetup: "PaintSetup",
+ Paint: "Paint",
+ Rasterize: "Rasterize",
+ RasterTask: "RasterTask",
+ ScrollLayer: "ScrollLayer",
+ DecodeImage: "DecodeImage",
+ ResizeImage: "ResizeImage",
+ CompositeLayers: "CompositeLayers",
+
+ ParseHTML: "ParseHTML",
+
+ TimerInstall: "TimerInstall",
+ TimerRemove: "TimerRemove",
+ TimerFire: "TimerFire",
+
+ XHRReadyStateChange: "XHRReadyStateChange",
+ XHRLoad: "XHRLoad",
+ EvaluateScript: "EvaluateScript",
+
+ MarkLoad: "MarkLoad",
+ MarkDOMContent: "MarkDOMContent",
+ MarkFirstPaint: "MarkFirstPaint",
+
+ TimeStamp: "TimeStamp",
+ ConsoleTime: "ConsoleTime",
+
+ ResourceSendRequest: "ResourceSendRequest",
+ ResourceReceiveResponse: "ResourceReceiveResponse",
+ ResourceReceivedData: "ResourceReceivedData",
+ ResourceFinish: "ResourceFinish",
+
+ FunctionCall: "FunctionCall",
+ GCEvent: "GCEvent",
+ JSFrame: "JSFrame",
+
+ UpdateCounters: "UpdateCounters",
+
+ RequestAnimationFrame: "RequestAnimationFrame",
+ CancelAnimationFrame: "CancelAnimationFrame",
+ FireAnimationFrame: "FireAnimationFrame",
+
+ WebSocketCreate : "WebSocketCreate",
+ WebSocketSendHandshakeRequest : "WebSocketSendHandshakeRequest",
+ WebSocketReceiveHandshakeResponse : "WebSocketReceiveHandshakeResponse",
+ WebSocketDestroy : "WebSocketDestroy",
+
+ EmbedderCallback : "EmbedderCallback",
+
+ CallStack: "CallStack",
+ SetLayerTreeId: "SetLayerTreeId",
+ TracingStartedInPage: "TracingStartedInPage",
+
+ LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl"
+};
+
+
WebInspector.TimelineTraceEventBindings.prototype = {
+ /**
+ * @return {!Array.<!WebInspector.TracingModel.Event>}
+ */
+ mainThreadEvents: function()
+ {
+ return this._mainThreadEvents;
+ },
+
+ _reset: function()
+ {
+ this._resetProcessingState();
+ this._mainThreadEvents = [];
+ },
+
_resetProcessingState: function()
{
this._sendRequestEvents = {};
@@ -22,7 +108,6 @@ WebInspector.TimelineTraceEventBindings.prototype = {
this._lastRecalculateStylesEvent = null;
this._currentScriptEvent = null;
- this._lastMainThreadEvent = null;
this._eventStack = [];
},
@@ -33,13 +118,16 @@ WebInspector.TimelineTraceEventBindings.prototype = {
{
this._resetProcessingState();
for (var i = 0, length = events.length; i < length; i++)
- this._processMainThreadEvent(events[i]);
+ this._processEvent(events[i]);
this._resetProcessingState();
},
- _processMainThreadEvent: function(event)
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
+ */
+ _processEvent: function(event)
{
- var recordTypes = WebInspector.TimelineModel.RecordType;
+ var recordTypes = WebInspector.TimelineTraceEventBindings.RecordType;
var eventStack = this._eventStack;
while (eventStack.length && eventStack.peekLast().endTime < event.startTime)
@@ -59,9 +147,10 @@ WebInspector.TimelineTraceEventBindings.prototype = {
switch (event.name) {
case recordTypes.CallStack:
- if (this._lastMainThreadEvent)
- this._lastMainThreadEvent.stackTrace = event.args.stack;
- break
+ var lastMainThreadEvent = this._mainThreadEvents.peekLast();
+ if (lastMainThreadEvent)
+ lastMainThreadEvent.stackTrace = event.args.stack;
+ break;
case recordTypes.ResourceSendRequest:
this._sendRequestEvents[event.args.data["requestId"]] = event;
@@ -126,13 +215,22 @@ WebInspector.TimelineTraceEventBindings.prototype = {
event.initiator = this._webSocketCreateEvents[event.args.data["identifier"]];
break;
- case WebInspector.TimelineModel.RecordType.EvaluateScript:
- case WebInspector.TimelineModel.RecordType.FunctionCall:
+ case recordTypes.EvaluateScript:
+ case recordTypes.FunctionCall:
if (!this._currentScriptEvent)
this._currentScriptEvent = event;
break;
+
+ case recordTypes.SetLayerTreeId:
+ this._inspectedTargetLayerTreeId = event.args["layerTreeId"];
+ break;
+
+ case recordTypes.TracingStartedInPage:
+ this._mainThread = event.thread;
+ break;
}
- this._lastMainThreadEvent = event;
+ if (this._mainThread === event.thread)
+ this._mainThreadEvents.push(event);
}
}
« no previous file with comments | « Source/devtools/front_end/timeline/TimelinePanel.js ('k') | Source/devtools/front_end/timeline/TimelineTracingView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698