Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js |
| index 08ff67151f025d211a62d9d39822a6d4a9700d57..a4d7bbabeadc3a5fae85d2d252b7f524be0b2aac 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js |
| @@ -471,12 +471,15 @@ WebInspector.TimelineModel.prototype = { |
| }, |
| /** |
| + * @param {!WebInspector.TracingModel.Event} event |
| * @return {?WebInspector.Target} |
| */ |
| - target: function() |
| + targetByEvent: function(event) |
| { |
| // FIXME: Consider returning null for loaded traces. |
| - return WebInspector.targetManager.targets()[0]; |
| + var workerId = this._workerIdByThread.get(event.thread); |
| + var mainTarget = WebInspector.targetManager.mainTarget(); |
| + return !workerId ? mainTarget : mainTarget.workerManager.targetByWorkerId(workerId); |
|
caseq
2016/07/19 22:48:58
please get rid of negation and swap branches. bett
alph
2016/07/19 23:10:29
reversed the negation. Didn't get the second part
|
| }, |
| /** |
| @@ -499,9 +502,15 @@ WebInspector.TimelineModel.prototype = { |
| var endTime = i + 1 < length ? metadataEvents.page[i + 1].startTime : Infinity; |
| this._currentPage = metaEvent.args["data"] && metaEvent.args["data"]["page"]; |
| for (var thread of process.sortedThreads()) { |
| - if (thread.name() === WebInspector.TimelineModel.WorkerThreadName && !metadataEvents.workers.some(function(e) { return e.args["data"]["workerThreadId"] === thread.id(); })) |
| - continue; |
| - this._processThreadEvents(startTime, endTime, metaEvent.thread, thread); |
| + if (thread.name() === WebInspector.TimelineModel.WorkerThreadName) { |
| + var workerMetaEvent = metadataEvents.workers.find(e => e.args["data"]["workerThreadId"] === thread.id()); |
| + if (!workerMetaEvent) |
| + continue; |
| + var workerId = workerMetaEvent.args["data"]["workerId"]; |
| + if (workerId) |
| + this._workerIdByThread.set(thread, workerId); |
| + } |
| + this._processThreadEvents(startTime, endTime, thread, thread === metaEvent.thread); |
| } |
| startTime = endTime; |
| } |
| @@ -718,10 +727,10 @@ WebInspector.TimelineModel.prototype = { |
| /** |
| * @param {number} startTime |
| * @param {number} endTime |
| - * @param {!WebInspector.TracingModel.Thread} mainThread |
| * @param {!WebInspector.TracingModel.Thread} thread |
| + * @param {boolean} isMainThread |
| */ |
| - _processThreadEvents: function(startTime, endTime, mainThread, thread) |
| + _processThreadEvents: function(startTime, endTime, thread, isMainThread) |
| { |
| var events = thread.events(); |
| var asyncEvents = thread.asyncEvents(); |
| @@ -751,7 +760,7 @@ WebInspector.TimelineModel.prototype = { |
| var threadEvents; |
| var threadAsyncEventsByGroup; |
| - if (thread === mainThread) { |
| + if (isMainThread) { |
| threadEvents = this._mainThreadEvents; |
| threadAsyncEventsByGroup = this._mainThreadAsyncEventsByGroup; |
| } else { |
| @@ -1093,6 +1102,8 @@ WebInspector.TimelineModel.prototype = { |
| this._mainFrameNodeId = null; |
| /** @type {!Array<!WebInspector.CPUProfileDataModel>} */ |
| this._cpuProfiles = []; |
| + /** @type {!WeakMap<!WebInspector.TracingModel.Thread, string>} */ |
| + this._workerIdByThread = new WeakMap(); |
| this._minimumRecordTime = 0; |
| this._maximumRecordTime = 0; |
| }, |