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

Side by Side Diff: Source/devtools/front_end/sdk/TracingModel.js

Issue 557013005: DevTools: extract TracingManager from TracingModel (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: review comments addressed Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The Chromium Authors. All rights reserved. 2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * @constructor 8 * @constructor
9 * @extends {WebInspector.Object} 9 * @extends {WebInspector.Object}
10 * @implements {WebInspector.TargetManager.Observer} 10 * @implements {WebInspector.TargetManager.Observer}
11 */ 11 */
12 WebInspector.TracingModel = function() 12 WebInspector.TracingManager = function()
13 { 13 {
14 this.reset(); 14 WebInspector.Object.call(this);
15 this._active = false; 15 this._active = false;
16 WebInspector.targetManager.observeTargets(this); 16 WebInspector.targetManager.observeTargets(this);
17 } 17 }
18 18
19 WebInspector.TracingModel.Events = { 19 WebInspector.TracingManager.Events = {
20 "BufferUsage": "BufferUsage", 20 "BufferUsage": "BufferUsage",
21 "TracingStarted": "TracingStarted", 21 "TracingStarted": "TracingStarted",
22 "EventsCollected": "EventsCollected",
22 "TracingStopped": "TracingStopped", 23 "TracingStopped": "TracingStopped",
23 "TracingComplete": "TracingComplete" 24 "TracingComplete": "TracingComplete"
24 } 25 }
25 26
26 /** @typedef {!{ 27 /** @typedef {!{
27 cat: string, 28 cat: string,
28 pid: number, 29 pid: number,
29 tid: number, 30 tid: number,
30 ts: number, 31 ts: number,
31 ph: string, 32 ph: string,
32 name: string, 33 name: string,
33 args: !Object, 34 args: !Object,
34 dur: number, 35 dur: number,
35 id: number, 36 id: number,
36 s: string 37 s: string
37 }} 38 }}
38 */ 39 */
39 WebInspector.TracingModel.EventPayload; 40 WebInspector.TracingManager.EventPayload;
41
42
43 WebInspector.TracingManager.prototype = {
44 /**
45 * @param {!WebInspector.Target} target
46 */
47 targetAdded: function(target)
48 {
49 if (this._target)
50 return;
51 this._target = target;
52 InspectorBackend.registerTracingDispatcher(new WebInspector.TracingDispa tcher(this));
53 },
54
55 /**
56 * @param {!WebInspector.Target} target
57 */
58 targetRemoved: function(target)
59 {
60 if (this._target !== target)
61 return;
62 delete this._target;
63 },
64
65 /**
66 * @param {number} usage
67 */
68 _bufferUsage: function(usage)
69 {
70 this.dispatchEventToListeners(WebInspector.TracingManager.Events.BufferU sage, usage);
71 },
72
73 /**
74 * @param {!Array.<!WebInspector.TracingManager.EventPayload>} events
75 */
76 _eventsCollected: function(events)
77 {
78 this.dispatchEventToListeners(WebInspector.TracingManager.Events.EventsC ollected, events);
79 },
80
81 _tracingComplete: function()
82 {
83 this.dispatchEventToListeners(WebInspector.TracingManager.Events.Tracing Complete);
84 },
85
86 _tracingStarted: function()
87 {
88 if (this._active)
89 return;
90 this._active = true;
91 this.dispatchEventToListeners(WebInspector.TracingManager.Events.Tracing Started);
92 },
93
94 /**
95 * @param {string} categoryFilter
96 * @param {string} options
97 * @param {function(?string)=} callback
98 */
99 start: function(categoryFilter, options, callback)
100 {
101 if (this._active)
102 return;
103 WebInspector.profilingLock().acquire();
104 this._shouldReleaseLock = true;
105 var bufferUsageReportingIntervalMs = 500;
106 TracingAgent.start(categoryFilter, options, bufferUsageReportingInterval Ms, callback);
107 this._tracingStarted();
108 this._active = true;
109 },
110
111 stop: function()
112 {
113 if (!this._active)
114 return;
115 TracingAgent.end(this._onStop.bind(this));
116 if (this._shouldReleaseLock) {
117 this._shouldReleaseLock = false;
118 WebInspector.profilingLock().release();
119 }
120 },
121
122 _onStop: function()
123 {
124 if (!this._active)
125 return;
126 this.dispatchEventToListeners(WebInspector.TracingManager.Events.Tracing Stopped);
127 this._active = false;
128 },
129
130 __proto__: WebInspector.Object.prototype
131 }
132
133 /**
134 * @constructor
135 */
136 WebInspector.TracingModel = function()
137 {
138 this.reset();
139 }
40 140
41 /** 141 /**
42 * @enum {string} 142 * @enum {string}
43 */ 143 */
44 WebInspector.TracingModel.Phase = { 144 WebInspector.TracingModel.Phase = {
45 Begin: "B", 145 Begin: "B",
46 End: "E", 146 End: "E",
47 Complete: "X", 147 Complete: "X",
48 Instant: "I", 148 Instant: "I",
49 AsyncBegin: "S", 149 AsyncBegin: "S",
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 * @return {boolean} 184 * @return {boolean}
85 */ 185 */
86 WebInspector.TracingModel.isAsyncPhase = function(phase) 186 WebInspector.TracingModel.isAsyncPhase = function(phase)
87 { 187 {
88 return phase === WebInspector.TracingModel.Phase.AsyncBegin || phase === Web Inspector.TracingModel.Phase.AsyncEnd || 188 return phase === WebInspector.TracingModel.Phase.AsyncBegin || phase === Web Inspector.TracingModel.Phase.AsyncEnd ||
89 phase === WebInspector.TracingModel.Phase.AsyncStepInto || phase === Web Inspector.TracingModel.Phase.AsyncStepPast; 189 phase === WebInspector.TracingModel.Phase.AsyncStepInto || phase === Web Inspector.TracingModel.Phase.AsyncStepPast;
90 } 190 }
91 191
92 WebInspector.TracingModel.prototype = { 192 WebInspector.TracingModel.prototype = {
93 /** 193 /**
94 * @param {!WebInspector.Target} target
95 */
96 targetAdded: function(target)
97 {
98 if (this._target)
99 return;
100 this._target = target;
101 InspectorBackend.registerTracingDispatcher(new WebInspector.TracingDispa tcher(this));
102 },
103
104 /**
105 * @param {!WebInspector.Target} target
106 */
107 targetRemoved: function(target)
108 {
109 if (this._target !== target)
110 return;
111 delete this._target;
112 },
113
114 /**
115 * @return {!Array.<!WebInspector.TracingModel.Event>} 194 * @return {!Array.<!WebInspector.TracingModel.Event>}
116 */ 195 */
117 devtoolsPageMetadataEvents: function() 196 devtoolsPageMetadataEvents: function()
118 { 197 {
119 return this._devtoolsPageMetadataEvents; 198 return this._devtoolsPageMetadataEvents;
120 }, 199 },
121 200
122 /** 201 /**
123 * @return {!Array.<!WebInspector.TracingModel.Event>} 202 * @return {!Array.<!WebInspector.TracingModel.Event>}
124 */ 203 */
125 devtoolsWorkerMetadataEvents: function() 204 devtoolsWorkerMetadataEvents: function()
126 { 205 {
127 return this._devtoolsWorkerMetadataEvents; 206 return this._devtoolsWorkerMetadataEvents;
128 }, 207 },
129 208
130 /** 209 /**
131 * @param {string} categoryFilter
132 * @param {string} options
133 * @param {function(?string)=} callback
134 */
135 start: function(categoryFilter, options, callback)
136 {
137 WebInspector.profilingLock().acquire();
138 this._shouldReleaseLock = true;
139 this.reset();
140 var bufferUsageReportingIntervalMs = 500;
141 TracingAgent.start(categoryFilter, options, bufferUsageReportingInterval Ms, callback);
142 this._tracingStarted();
143 },
144
145 stop: function()
146 {
147 if (!this._active)
148 return;
149 TracingAgent.end(this._onStop.bind(this));
150 if (this._shouldReleaseLock) {
151 this._shouldReleaseLock = false;
152 WebInspector.profilingLock().release();
153 }
154 },
155
156 /**
157 * @return {?string} 210 * @return {?string}
158 */ 211 */
159 sessionId: function() 212 sessionId: function()
160 { 213 {
161 return this._sessionId; 214 return this._sessionId;
162 }, 215 },
163 216
164 /** 217 /**
165 * @param {!Array.<!WebInspector.TracingModel.EventPayload>} events 218 * @param {!Array.<!WebInspector.TracingManager.EventPayload>} events
166 */ 219 */
167 setEventsForTest: function(events) 220 setEventsForTest: function(events)
168 { 221 {
169 this._tracingStarted(); 222 this.reset();
170 this._eventsCollected(events); 223 this.addEvents(events);
171 this._tracingComplete(); 224 this.tracingComplete();
172 }, 225 },
173 226
174 /** 227 /**
175 * @param {number} usage 228 * @param {!Array.<!WebInspector.TracingManager.EventPayload>} events
176 */ 229 */
177 _bufferUsage: function(usage) 230 addEvents: function(events)
178 { 231 {
179 this.dispatchEventToListeners(WebInspector.TracingModel.Events.BufferUsa ge, usage);
180 },
181
182 /**
183 * @param {!Array.<!WebInspector.TracingModel.EventPayload>} events
184 */
185 _eventsCollected: function(events)
186 {
187 this._onStop();
188 for (var i = 0; i < events.length; ++i) { 232 for (var i = 0; i < events.length; ++i) {
189 this._addEvent(events[i]); 233 this._addEvent(events[i]);
190 this._rawEvents.push(events[i]); 234 this._rawEvents.push(events[i]);
191 } 235 }
192 }, 236 },
193 237
194 _tracingComplete: function() 238 tracingComplete: function()
195 { 239 {
196 this._processMetadataEvents(); 240 this._processMetadataEvents();
197 this._active = false;
198 for (var process in this._processById) 241 for (var process in this._processById)
199 this._processById[process]._tracingComplete(this._maximumRecordTime) ; 242 this._processById[process]._tracingComplete(this._maximumRecordTime) ;
200 this.dispatchEventToListeners(WebInspector.TracingModel.Events.TracingCo mplete);
201 },
202
203 _tracingStarted: function()
204 {
205 if (this._active)
206 return;
207 this.reset();
208 this._active = true;
209 this._sessionId = null;
210 this.dispatchEventToListeners(WebInspector.TracingModel.Events.TracingSt arted);
211 },
212
213 _onStop: function()
214 {
215 if (!this._active)
216 return;
217 this.dispatchEventToListeners(WebInspector.TracingModel.Events.TracingSt opped);
218 this._active = false;
219 }, 243 },
220 244
221 reset: function() 245 reset: function()
222 { 246 {
223 this._processById = {}; 247 this._processById = {};
224 this._minimumRecordTime = 0; 248 this._minimumRecordTime = 0;
225 this._maximumRecordTime = 0; 249 this._maximumRecordTime = 0;
226 this._sessionId = null; 250 this._sessionId = null;
227 this._devtoolsPageMetadataEvents = []; 251 this._devtoolsPageMetadataEvents = [];
228 this._devtoolsWorkerMetadataEvents = []; 252 this._devtoolsWorkerMetadataEvents = [];
229 this._rawEvents = []; 253 this._rawEvents = [];
230 }, 254 },
231 255
232 /** 256 /**
233 * @return {!Array.<!WebInspector.TracingModel.EventPayload>} 257 * @return {!Array.<!WebInspector.TracingManager.EventPayload>}
234 */ 258 */
235 rawEvents: function() 259 rawEvents: function()
236 { 260 {
237 return this._rawEvents; 261 return this._rawEvents;
238 }, 262 },
239 263
240 /** 264 /**
241 * @param {!WebInspector.TracingModel.EventPayload} payload 265 * @param {!WebInspector.TracingManager.EventPayload} payload
242 */ 266 */
243 _addEvent: function(payload) 267 _addEvent: function(payload)
244 { 268 {
245 var process = this._processById[payload.pid]; 269 var process = this._processById[payload.pid];
246 if (!process) { 270 if (!process) {
247 process = new WebInspector.TracingModel.Process(payload.pid); 271 process = new WebInspector.TracingModel.Process(payload.pid);
248 this._processById[payload.pid] = process; 272 this._processById[payload.pid] = process;
249 } 273 }
250 if (payload.ph !== WebInspector.TracingModel.Phase.Metadata) { 274 if (payload.ph !== WebInspector.TracingModel.Phase.Metadata) {
251 var timestamp = payload.ts / 1000; 275 var timestamp = payload.ts / 1000;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 { 348 {
325 return this._maximumRecordTime; 349 return this._maximumRecordTime;
326 }, 350 },
327 351
328 /** 352 /**
329 * @return {!Array.<!WebInspector.TracingModel.Process>} 353 * @return {!Array.<!WebInspector.TracingModel.Process>}
330 */ 354 */
331 sortedProcesses: function() 355 sortedProcesses: function()
332 { 356 {
333 return WebInspector.TracingModel.NamedObject._sort(Object.values(this._p rocessById)); 357 return WebInspector.TracingModel.NamedObject._sort(Object.values(this._p rocessById));
334 }, 358 }
335
336 __proto__: WebInspector.Object.prototype
337 } 359 }
338 360
339 361
340 /** 362 /**
341 * @constructor 363 * @constructor
342 * @param {!WebInspector.TracingModel} tracingModel 364 * @param {!WebInspector.TracingModel} tracingModel
343 */ 365 */
344 WebInspector.TracingModel.Loader = function(tracingModel) 366 WebInspector.TracingModel.Loader = function(tracingModel)
345 { 367 {
346 this._tracingModel = tracingModel; 368 this._tracingModel = tracingModel;
347 this._firstChunkReceived = false; 369 this._firstChunkReceived = false;
348 } 370 }
349 371
350 WebInspector.TracingModel.Loader.prototype = { 372 WebInspector.TracingModel.Loader.prototype = {
351 /** 373 /**
352 * @param {!Array.<!WebInspector.TracingModel.EventPayload>} events 374 * @param {!Array.<!WebInspector.TracingManager.EventPayload>} events
353 */ 375 */
354 loadNextChunk: function(events) 376 loadNextChunk: function(events)
355 { 377 {
356 if (!this._firstChunkReceived) { 378 if (!this._firstChunkReceived) {
357 this._tracingModel._tracingStarted(); 379 this._tracingModel.reset();
358 this._firstChunkReceived = true; 380 this._firstChunkReceived = true;
359 } 381 }
360 this._tracingModel._eventsCollected(events); 382 this._tracingModel.addEvents(events);
361 }, 383 },
362 384
363 finish: function() 385 finish: function()
364 { 386 {
365 this._tracingModel._tracingComplete(); 387 this._tracingModel.tracingComplete();
366 } 388 }
367 } 389 }
368 390
369 391
370 /** 392 /**
371 * @constructor 393 * @constructor
372 * @param {string} category 394 * @param {string} category
373 * @param {string} name 395 * @param {string} name
374 * @param {string} phase 396 * @param {string} phase
375 * @param {number} startTime 397 * @param {number} startTime
(...skipping 19 matching lines...) Expand all
395 /** @type {?string} */ 417 /** @type {?string} */
396 this.imageURL = null; 418 this.imageURL = null;
397 /** @type {number} */ 419 /** @type {number} */
398 this.backendNodeId = 0; 420 this.backendNodeId = 0;
399 421
400 /** @type {number} */ 422 /** @type {number} */
401 this.selfTime = 0; 423 this.selfTime = 0;
402 } 424 }
403 425
404 /** 426 /**
405 * @param {!WebInspector.TracingModel.EventPayload} payload 427 * @param {!WebInspector.TracingManager.EventPayload} payload
406 * @param {?WebInspector.TracingModel.Thread} thread 428 * @param {?WebInspector.TracingModel.Thread} thread
407 * @return {!WebInspector.TracingModel.Event} 429 * @return {!WebInspector.TracingModel.Event}
408 */ 430 */
409 WebInspector.TracingModel.Event.fromPayload = function(payload, thread) 431 WebInspector.TracingModel.Event.fromPayload = function(payload, thread)
410 { 432 {
411 var event = new WebInspector.TracingModel.Event(payload.cat, payload.name, p ayload.ph, payload.ts / 1000, thread); 433 var event = new WebInspector.TracingModel.Event(payload.cat, payload.name, p ayload.ph, payload.ts / 1000, thread);
412 if (payload.args) 434 if (payload.args)
413 event.addArgs(payload.args); 435 event.addArgs(payload.args);
414 else 436 else
415 console.error("Missing mandatory event argument 'args' at " + payload.ts / 1000); 437 console.error("Missing mandatory event argument 'args' at " + payload.ts / 1000);
(...skipping 25 matching lines...) Expand all
441 { 463 {
442 // Shallow copy args to avoid modifying original payload which may be sa ved to file. 464 // Shallow copy args to avoid modifying original payload which may be sa ved to file.
443 for (var name in args) { 465 for (var name in args) {
444 if (name in this.args) 466 if (name in this.args)
445 console.error("Same argument name (" + name + ") is used for be gin and end phases of " + this.name); 467 console.error("Same argument name (" + name + ") is used for be gin and end phases of " + this.name);
446 this.args[name] = args[name]; 468 this.args[name] = args[name];
447 } 469 }
448 }, 470 },
449 471
450 /** 472 /**
451 * @param {!WebInspector.TracingModel.EventPayload} payload 473 * @param {!WebInspector.TracingManager.EventPayload} payload
452 */ 474 */
453 _complete: function(payload) 475 _complete: function(payload)
454 { 476 {
455 if (payload.args) 477 if (payload.args)
456 this.addArgs(payload.args); 478 this.addArgs(payload.args);
457 else 479 else
458 console.error("Missing mandatory event argument 'args' at " + payloa d.ts / 1000); 480 console.error("Missing mandatory event argument 'args' at " + payloa d.ts / 1000);
459 this.setEndTime(payload.ts / 1000); 481 this.setEndTime(payload.ts / 1000);
460 } 482 }
461 } 483 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 * @constructor 559 * @constructor
538 * @extends {WebInspector.TracingModel.NamedObject} 560 * @extends {WebInspector.TracingModel.NamedObject}
539 * @param {number} id 561 * @param {number} id
540 */ 562 */
541 WebInspector.TracingModel.Process = function(id) 563 WebInspector.TracingModel.Process = function(id)
542 { 564 {
543 WebInspector.TracingModel.NamedObject.call(this); 565 WebInspector.TracingModel.NamedObject.call(this);
544 this._setName("Process " + id); 566 this._setName("Process " + id);
545 this._threads = {}; 567 this._threads = {};
546 this._objects = {}; 568 this._objects = {};
547 /** @type {!Array.<!WebInspector.TracingModel.EventPayload>} */ 569 /** @type {!Array.<!WebInspector.TracingManager.EventPayload>} */
548 this._asyncEvents = []; 570 this._asyncEvents = [];
549 /** @type {!Object.<string, ?Array.<!WebInspector.TracingModel.Event>>} */ 571 /** @type {!Object.<string, ?Array.<!WebInspector.TracingModel.Event>>} */
550 this._openAsyncEvents = []; 572 this._openAsyncEvents = [];
551 } 573 }
552 574
553 WebInspector.TracingModel.Process.prototype = { 575 WebInspector.TracingModel.Process.prototype = {
554 /** 576 /**
555 * @param {number} id 577 * @param {number} id
556 * @return {!WebInspector.TracingModel.Thread} 578 * @return {!WebInspector.TracingModel.Thread}
557 */ 579 */
558 threadById: function(id) 580 threadById: function(id)
559 { 581 {
560 var thread = this._threads[id]; 582 var thread = this._threads[id];
561 if (!thread) { 583 if (!thread) {
562 thread = new WebInspector.TracingModel.Thread(this, id); 584 thread = new WebInspector.TracingModel.Thread(this, id);
563 this._threads[id] = thread; 585 this._threads[id] = thread;
564 } 586 }
565 return thread; 587 return thread;
566 }, 588 },
567 589
568 /** 590 /**
569 * @param {!WebInspector.TracingModel.EventPayload} payload 591 * @param {!WebInspector.TracingManager.EventPayload} payload
570 * @return {?WebInspector.TracingModel.Event} event 592 * @return {?WebInspector.TracingModel.Event} event
571 */ 593 */
572 _addEvent: function(payload) 594 _addEvent: function(payload)
573 { 595 {
574 var phase = WebInspector.TracingModel.Phase; 596 var phase = WebInspector.TracingModel.Phase;
575 // Build async event when we've got events from all threads, so we can s ort them and process in the chronological order. 597 // Build async event when we've got events from all threads, so we can s ort them and process in the chronological order.
576 // However, also add individual async events to the thread flow, so we c an easily display them on the same chart as 598 // However, also add individual async events to the thread flow, so we c an easily display them on the same chart as
577 // other events, should we choose so. 599 // other events, should we choose so.
578 if (WebInspector.TracingModel.isAsyncPhase(payload.ph)) 600 if (WebInspector.TracingModel.isAsyncPhase(payload.ph))
579 this._asyncEvents.push(payload); 601 this._asyncEvents.push(payload);
580 602
581 var event = this.threadById(payload.tid)._addEvent(payload); 603 var event = this.threadById(payload.tid)._addEvent(payload);
582 if (event && payload.ph === phase.SnapshotObject) 604 if (event && payload.ph === phase.SnapshotObject)
583 this.objectsByName(event.name).push(event); 605 this.objectsByName(event.name).push(event);
584 return event; 606 return event;
585 }, 607 },
586 608
587 /** 609 /**
588 * @param {!number} lastEventTime 610 * @param {!number} lastEventTime
589 */ 611 */
590 _tracingComplete: function(lastEventTime) 612 _tracingComplete: function(lastEventTime)
591 { 613 {
592 /** 614 /**
593 * @param {!WebInspector.TracingModel.EventPayload} a 615 * @param {!WebInspector.TracingManager.EventPayload} a
594 * @param {!WebInspector.TracingModel.EventPayload} b 616 * @param {!WebInspector.TracingManager.EventPayload} b
595 */ 617 */
596 function comparePayloadTimestamp(a, b) 618 function comparePayloadTimestamp(a, b)
597 { 619 {
598 return a.ts - b.ts; 620 return a.ts - b.ts;
599 } 621 }
600 this._asyncEvents.sort(comparePayloadTimestamp).forEach(this._addAsyncEv ent, this); 622 this._asyncEvents.sort(comparePayloadTimestamp).forEach(this._addAsyncEv ent, this);
601 for (var key in this._openAsyncEvents) { 623 for (var key in this._openAsyncEvents) {
602 var steps = this._openAsyncEvents[key]; 624 var steps = this._openAsyncEvents[key];
603 if (!steps) 625 if (!steps)
604 continue; 626 continue;
605 var startEvent = steps[0]; 627 var startEvent = steps[0];
606 var syntheticEndEvent = new WebInspector.TracingModel.Event(startEve nt.category, startEvent.name, WebInspector.TracingModel.Phase.AsyncEnd, lastEven tTime, startEvent.thread); 628 var syntheticEndEvent = new WebInspector.TracingModel.Event(startEve nt.category, startEvent.name, WebInspector.TracingModel.Phase.AsyncEnd, lastEven tTime, startEvent.thread);
607 steps.push(syntheticEndEvent); 629 steps.push(syntheticEndEvent);
608 } 630 }
609 this._asyncEvents = []; 631 this._asyncEvents = [];
610 this._openAsyncEvents = []; 632 this._openAsyncEvents = [];
611 }, 633 },
612 634
613 /** 635 /**
614 * @param {!WebInspector.TracingModel.EventPayload} payload 636 * @param {!WebInspector.TracingManager.EventPayload} payload
615 */ 637 */
616 _addAsyncEvent: function(payload) 638 _addAsyncEvent: function(payload)
617 { 639 {
618 var phase = WebInspector.TracingModel.Phase; 640 var phase = WebInspector.TracingModel.Phase;
619 var timestamp = payload.ts / 1000; 641 var timestamp = payload.ts / 1000;
620 var key = payload.name + "." + payload.id; 642 var key = payload.name + "." + payload.id;
621 var steps = this._openAsyncEvents[key]; 643 var steps = this._openAsyncEvents[key];
622 644
623 var thread = this.threadById(payload.tid); 645 var thread = this.threadById(payload.tid);
624 if (payload.ph === phase.AsyncBegin) { 646 if (payload.ph === phase.AsyncBegin) {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 /** 728 /**
707 * @return {?WebInspector.Target} 729 * @return {?WebInspector.Target}
708 */ 730 */
709 target: function() 731 target: function()
710 { 732 {
711 //FIXME: correctly specify target 733 //FIXME: correctly specify target
712 return WebInspector.targetManager.targets()[0]; 734 return WebInspector.targetManager.targets()[0];
713 }, 735 },
714 736
715 /** 737 /**
716 * @param {!WebInspector.TracingModel.EventPayload} payload 738 * @param {!WebInspector.TracingManager.EventPayload} payload
717 * @return {?WebInspector.TracingModel.Event} event 739 * @return {?WebInspector.TracingModel.Event} event
718 */ 740 */
719 _addEvent: function(payload) 741 _addEvent: function(payload)
720 { 742 {
721 var timestamp = payload.ts / 1000; 743 var timestamp = payload.ts / 1000;
722 if (payload.ph === WebInspector.TracingModel.Phase.End) { 744 if (payload.ph === WebInspector.TracingModel.Phase.End) {
723 // Quietly ignore unbalanced close events, they're legit (we could h ave missed start one). 745 // Quietly ignore unbalanced close events, they're legit (we could h ave missed start one).
724 if (!this._stack.length) 746 if (!this._stack.length)
725 return null; 747 return null;
726 var top = this._stack.pop(); 748 var top = this._stack.pop();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 return this._asyncEvents; 793 return this._asyncEvents;
772 }, 794 },
773 795
774 __proto__: WebInspector.TracingModel.NamedObject.prototype 796 __proto__: WebInspector.TracingModel.NamedObject.prototype
775 } 797 }
776 798
777 799
778 /** 800 /**
779 * @constructor 801 * @constructor
780 * @implements {TracingAgent.Dispatcher} 802 * @implements {TracingAgent.Dispatcher}
781 * @param {!WebInspector.TracingModel} tracingModel 803 * @param {!WebInspector.TracingManager} tracingManager
782 */ 804 */
783 WebInspector.TracingDispatcher = function(tracingModel) 805 WebInspector.TracingDispatcher = function(tracingManager)
784 { 806 {
785 this._tracingModel = tracingModel; 807 this._tracingManager = tracingManager;
786 } 808 }
787 809
788 WebInspector.TracingDispatcher.prototype = { 810 WebInspector.TracingDispatcher.prototype = {
789 /** 811 /**
790 * @param {number} usage 812 * @param {number} usage
791 */ 813 */
792 bufferUsage: function(usage) 814 bufferUsage: function(usage)
793 { 815 {
794 this._tracingModel._bufferUsage(usage); 816 this._tracingManager._bufferUsage(usage);
795 }, 817 },
796 818
797 /** 819 /**
798 * @param {!Array.<!WebInspector.TracingModel.EventPayload>} data 820 * @param {!Array.<!WebInspector.TracingManager.EventPayload>} data
799 */ 821 */
800 dataCollected: function(data) 822 dataCollected: function(data)
801 { 823 {
802 this._tracingModel._eventsCollected(data); 824 this._tracingManager._eventsCollected(data);
803 }, 825 },
804 826
805 tracingComplete: function() 827 tracingComplete: function()
806 { 828 {
807 this._tracingModel._tracingComplete(); 829 this._tracingManager._tracingComplete();
808 }, 830 },
809 831
810 started: function() 832 started: function()
811 { 833 {
812 this._tracingModel._tracingStarted(); 834 this._tracingManager._tracingStarted();
813 } 835 }
814 } 836 }
OLDNEW
« no previous file with comments | « LayoutTests/inspector/tracing/buffer-usage.html ('k') | Source/devtools/front_end/timeline/TimelinePanel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698