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

Side by Side Diff: Source/devtools/front_end/timeline/TracingTimelineModel.js

Issue 317273004: Create Tracing{Timeline}Model in TimelinePanel constructor (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 6 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @param {!WebInspector.TracingModel} tracingModel 6 * @param {!WebInspector.TracingModel} tracingModel
7 * @constructor 7 * @constructor
8 * @extends {WebInspector.TargetAwareObject}
8 */ 9 */
9 WebInspector.TracingTimelineModel = function(tracingModel) 10 WebInspector.TracingTimelineModel = function(tracingModel)
10 { 11 {
12 WebInspector.TargetAwareObject.call(this, tracingModel.target());
11 this._tracingModel = tracingModel; 13 this._tracingModel = tracingModel;
12 this._mainThreadEvents = []; 14 this._mainThreadEvents = [];
13 this._inspectedTargetEvents = []; 15 this._inspectedTargetEvents = [];
14 } 16 }
15 17
16 WebInspector.TracingTimelineModel.RecordType = { 18 WebInspector.TracingTimelineModel.RecordType = {
17 Program: "Program", 19 Program: "Program",
18 EventDispatch: "EventDispatch", 20 EventDispatch: "EventDispatch",
19 21
20 GPUTask: "GPUTask", 22 GPUTask: "GPUTask",
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 83
82 DecodeImage: "Decode Image", 84 DecodeImage: "Decode Image",
83 ResizeImage: "Resize Image", 85 ResizeImage: "Resize Image",
84 DrawLazyPixelRef: "Draw LazyPixelRef", 86 DrawLazyPixelRef: "Draw LazyPixelRef",
85 DecodeLazyPixelRef: "Decode LazyPixelRef", 87 DecodeLazyPixelRef: "Decode LazyPixelRef",
86 88
87 LazyPixelRef: "LazyPixelRef", 89 LazyPixelRef: "LazyPixelRef",
88 LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl" 90 LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl"
89 }; 91 };
90 92
93 WebInspector.TracingTimelineModel.Events = {
94 TracingComplete: "TracingComplete"
95 };
96
97 WebInspector.TracingTimelineModel.defaultTracingCategoryFilter = "*,disabled-by- default-cc.debug,disabled-by-default-devtools.timeline";
98
91 WebInspector.TracingTimelineModel.prototype = { 99 WebInspector.TracingTimelineModel.prototype = {
100 /**
101 * @param {boolean} captureStacks
102 * @param {boolean} captureMemory
103 */
104 startRecording: function(captureStacks, captureMemory)
105 {
106 var categories;
107 if (WebInspector.experimentsSettings.timelineTracingMode.isEnabled()) {
108 categories = WebInspector.TracingTimelineModel.defaultTracingCategor yFilter;
109 } else {
110 var categoriesArray = ["disabled-by-default-devtools.timeline", "dev tools"];
111 if (captureStacks)
112 categoriesArray.push("disabled-by-default-devtools.timeline.stac k");
113 categories = categoriesArray.join(",");
114 }
115 this._tracingModel.start(categories, "");
116 this.willStartRecordingTraceEvents();
117 },
118
119 stopRecording: function()
120 {
121 this._tracingModel.stop(this.didStopRecordingTraceEvents.bind(this));
122 },
123
92 willStartRecordingTraceEvents: function() 124 willStartRecordingTraceEvents: function()
93 { 125 {
94 this._mainThreadEvents = []; 126 this._mainThreadEvents = [];
95 this._inspectedTargetEvents = []; 127 this._inspectedTargetEvents = [];
96 }, 128 },
97 129
98 didStopRecordingTraceEvents: function() 130 didStopRecordingTraceEvents: function()
99 { 131 {
100 var events = this._tracingModel.devtoolsMetadataEvents(); 132 var events = this._tracingModel.devtoolsMetadataEvents();
101 events.sort(WebInspector.TracingModel.Event.compareStartTime); 133 events.sort(WebInspector.TracingModel.Event.compareStartTime);
102 134
103 this._resetProcessingState(); 135 this._resetProcessingState();
104 for (var i = 0, length = events.length; i < length; i++) { 136 for (var i = 0, length = events.length; i < length; i++) {
105 var event = events[i]; 137 var event = events[i];
106 var process = event.thread.process(); 138 var process = event.thread.process();
107 var startTime = event.startTime; 139 var startTime = event.startTime;
108 140
109 var endTime = Infinity; 141 var endTime = Infinity;
110 if (i + 1 < length) 142 if (i + 1 < length)
111 endTime = events[i + 1].startTime; 143 endTime = events[i + 1].startTime;
112 144
113 process.sortedThreads().forEach(this._processThreadEvents.bind(this, startTime, endTime, event.thread)); 145 process.sortedThreads().forEach(this._processThreadEvents.bind(this, startTime, endTime, event.thread));
114 } 146 }
115 this._resetProcessingState(); 147 this._resetProcessingState();
116 148
117 this._inspectedTargetEvents.sort(WebInspector.TracingModel.Event.compare StartTime); 149 this._inspectedTargetEvents.sort(WebInspector.TracingModel.Event.compare StartTime);
150
151 this.dispatchEventToListeners(WebInspector.TracingTimelineModel.Events.T racingComplete);
118 }, 152 },
119 153
120 /** 154 /**
121 * @return {?number} 155 * @return {?number}
122 */ 156 */
123 minimumRecordTime: function() 157 minimumRecordTime: function()
124 { 158 {
125 return this._tracingModel.minimumRecordTime(); 159 return this._tracingModel.minimumRecordTime();
126 }, 160 },
127 161
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 * @return {?WebInspector.TracingModel.Event} 368 * @return {?WebInspector.TracingModel.Event}
335 */ 369 */
336 _findAncestorEvent: function(name) 370 _findAncestorEvent: function(name)
337 { 371 {
338 for (var i = this._eventStack.length - 1; i >= 0; --i) { 372 for (var i = this._eventStack.length - 1; i >= 0; --i) {
339 var event = this._eventStack[i]; 373 var event = this._eventStack[i];
340 if (event.name === name) 374 if (event.name === name)
341 return event; 375 return event;
342 } 376 }
343 return null; 377 return null;
344 } 378 },
379
380 __proto__: WebInspector.TargetAwareObject.prototype
345 } 381 }
346
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698