Index: Source/devtools/front_end/timeline/TracingModel.js |
diff --git a/Source/devtools/front_end/sdk/TracingModel.js b/Source/devtools/front_end/timeline/TracingModel.js |
similarity index 93% |
rename from Source/devtools/front_end/sdk/TracingModel.js |
rename to Source/devtools/front_end/timeline/TracingModel.js |
index 16c48114103a4da315c1eeb9229d0070b01d62cd..b08a0b506aefa4299c854d7f8561c64036d6a9a5 100644 |
--- a/Source/devtools/front_end/sdk/TracingModel.js |
+++ b/Source/devtools/front_end/timeline/TracingModel.js |
@@ -174,12 +174,38 @@ WebInspector.TracingModel.prototype = { |
_tracingComplete: function() |
{ |
+ this._calculateWarnings(); |
+ |
this._active = false; |
if (!this._pendingStopCallback) |
return; |
this._pendingStopCallback(); |
this._pendingStopCallback = null; |
}, |
+ |
+ _calculateWarnings: function() |
+ { |
+ var events = this._inspectedTargetMainThreadEvents; |
+ var currentScriptEvent = null; |
+ for (var i = 0, l = events.length; i < l; i++) { |
+ var event = events[i]; |
+ if (currentScriptEvent && event.startTime > currentScriptEvent.endTime) |
+ currentScriptEvent = null; |
+ if (event.name === WebInspector.TimelineModel.RecordType.Layout && currentScriptEvent) |
+ this._eventToWarning.put(event, WebInspector.UIString("Forced synchronous layout is a possible performance bottleneck.")); |
+ if (event.name === WebInspector.TimelineModel.RecordType.EvaluateScript || event.name === WebInspector.TimelineModel.RecordType.FunctionCall) |
caseq
2014/05/07 15:44:33
Looks like this belongs to a higher level than tra
yurys
2014/05/08 07:46:46
Done. Extracted this code into TracingModel.EventB
|
+ currentScriptEvent = event; |
+ } |
+ }, |
+ |
+ /** |
+ * @param {!WebInspector.TracingModel.Event} event |
+ * @return {?string} |
+ */ |
+ eventWarning: function(event) |
+ { |
+ return this._eventToWarning.get(event); |
+ }, |
reset: function() |
{ |
@@ -192,6 +218,7 @@ WebInspector.TracingModel.prototype = { |
this._inspectedTargetMainThreadEvents = []; |
this._inspectedTargetLayerTreeHostId = 0; |
this._frameLifecycleEvents = []; |
+ this._eventToWarning = new Map(); |
}, |
/** |