| Index: Source/devtools/front_end/timeline/TracingModel.js
|
| diff --git a/Source/devtools/front_end/timeline/TracingModel.js b/Source/devtools/front_end/timeline/TracingModel.js
|
| index 9265df8f85ed53dc19a50f0c38eebfd2e0098db3..77cf1e72bfc62248836fe39fa447fc2e70c7ff5f 100644
|
| --- a/Source/devtools/front_end/timeline/TracingModel.js
|
| +++ b/Source/devtools/front_end/timeline/TracingModel.js
|
| @@ -263,6 +263,9 @@ WebInspector.TracingModel.Event = function(payload, level, thread)
|
| this.phase = payload.ph;
|
| this.level = level;
|
|
|
| + if (payload.dur)
|
| + this._setEndTime((payload.ts + payload.dur) / 1000);
|
| +
|
| if (payload.id)
|
| this.id = payload.id;
|
|
|
| @@ -287,12 +290,16 @@ WebInspector.TracingModel.Event = function(payload, level, thread)
|
|
|
| WebInspector.TracingModel.Event.prototype = {
|
| /**
|
| - * @param {number} duration
|
| + * @param {number} endTime
|
| */
|
| - _setDuration: function(duration)
|
| + _setEndTime: function(endTime)
|
| {
|
| - this.endTime = this.startTime + duration;
|
| - this.duration = duration;
|
| + if (endTime < this.startTime) {
|
| + console.assert(false, "Event out of order: " + this.name);
|
| + return;
|
| + }
|
| + this.endTime = endTime;
|
| + this.duration = endTime - this.startTime;
|
| },
|
|
|
| /**
|
| @@ -311,12 +318,7 @@ WebInspector.TracingModel.Event.prototype = {
|
| this.args[name] = payload.args[name];
|
| }
|
| }
|
| - var duration = payload.ts / 1000 - this.startTime;
|
| - if (duration < 0) {
|
| - console.assert(false, "Event out of order: " + this.name);
|
| - return;
|
| - }
|
| - this._setDuration(duration);
|
| + this._setEndTime(payload.ts / 1000);
|
| }
|
| }
|
|
|
| @@ -472,7 +474,7 @@ WebInspector.TracingModel.Thread.prototype = {
|
| */
|
| addEvent: function(payload)
|
| {
|
| - for (var top = this._stack.peekLast(); top && top.endTime && top.endTime <= payload.ts;) {
|
| + for (var top = this._stack.peekLast(); top && top.endTime && top.endTime <= payload.ts / 1000;) {
|
| this._stack.pop();
|
| top = this._stack.peekLast();
|
| }
|
| @@ -486,8 +488,6 @@ WebInspector.TracingModel.Thread.prototype = {
|
|
|
| var event = new WebInspector.TracingModel.Event(payload, this._stack.length, this);
|
| if (payload.ph === WebInspector.TracingModel.Phase.Begin || payload.ph === WebInspector.TracingModel.Phase.Complete) {
|
| - if (payload.ph === WebInspector.TracingModel.Phase.Complete)
|
| - event._setDuration(payload.dur / 1000);
|
| this._stack.push(event);
|
| if (this._maxStackDepth < this._stack.length)
|
| this._maxStackDepth = this._stack.length;
|
|
|