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

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

Issue 339493006: Move divider detection and creation onto TimelineUIUtils instance (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Intel Inc. All rights reserved. 3 * Copyright (C) 2012 Intel Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 /** 54 /**
55 * @param {string} recordType 55 * @param {string} recordType
56 * @return {boolean} 56 * @return {boolean}
57 */ 57 */
58 isCoalescable: function(recordType) 58 isCoalescable: function(recordType)
59 { 59 {
60 throw new Error("Not implemented."); 60 throw new Error("Not implemented.");
61 }, 61 },
62 /** 62 /**
63 * @param {!WebInspector.TimelineModel.Record} record 63 * @param {!WebInspector.TimelineModel.Record} record
64 * @return {boolean}
65 */
66 isEventDivider: function(record)
67 {
68 throw new Error("Not implemented.");
69 },
70 /**
71 * @param {!WebInspector.TimelineModel.Record} record
64 * @return {?Object} 72 * @return {?Object}
65 */ 73 */
66 countersForRecord: function(record) 74 countersForRecord: function(record)
67 { 75 {
68 throw new Error("Not implemented."); 76 throw new Error("Not implemented.");
69 }, 77 },
70 /** 78 /**
71 * @param {!WebInspector.TimelineModel.Record} record 79 * @param {!WebInspector.TimelineModel.Record} record
72 * @return {?Object} 80 * @return {?Object}
73 */ 81 */
(...skipping 14 matching lines...) Expand all
88 /** 96 /**
89 * @param {!WebInspector.TimelineModel.Record} record 97 * @param {!WebInspector.TimelineModel.Record} record
90 * @param {!WebInspector.TimelineModel} model 98 * @param {!WebInspector.TimelineModel} model
91 * @param {!WebInspector.Linkifier} linkifier 99 * @param {!WebInspector.Linkifier} linkifier
92 * @param {function(!DocumentFragment)} callback 100 * @param {function(!DocumentFragment)} callback
93 * @param {boolean} loadedFromFile 101 * @param {boolean} loadedFromFile
94 */ 102 */
95 generateDetailsContent: function(record, model, linkifier, callback, loadedF romFile) 103 generateDetailsContent: function(record, model, linkifier, callback, loadedF romFile)
96 { 104 {
97 throw new Error("Not implemented."); 105 throw new Error("Not implemented.");
106 },
107 /**
108 * @param {string} recordType
109 * @param {string=} title
110 * @return {!Element}
111 */
112 createEventDivider: function(recordType, title)
113 {
114 throw new Error("Not implemented.");
98 } 115 }
99 } 116 }
100 117
101 /** 118 /**
102 * @return {!Object.<string, !WebInspector.TimelineCategory>} 119 * @return {!Object.<string, !WebInspector.TimelineCategory>}
103 */ 120 */
104 WebInspector.TimelineUIUtils.categories = function() 121 WebInspector.TimelineUIUtils.categories = function()
105 { 122 {
106 if (WebInspector.TimelineUIUtils._categories) 123 if (WebInspector.TimelineUIUtils._categories)
107 return WebInspector.TimelineUIUtils._categories; 124 return WebInspector.TimelineUIUtils._categories;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 result = { 206 result = {
190 title: WebInspector.UIString("Unknown: %s", type), 207 title: WebInspector.UIString("Unknown: %s", type),
191 category: WebInspector.TimelineUIUtils.categories()["other"] 208 category: WebInspector.TimelineUIUtils.categories()["other"]
192 }; 209 };
193 recordStyles[type] = result; 210 recordStyles[type] = result;
194 } 211 }
195 return result; 212 return result;
196 } 213 }
197 214
198 /** 215 /**
199 * @param {!WebInspector.TimelineModel.Record} record
200 * @return {boolean}
201 */
202 WebInspector.TimelineUIUtils.isEventDivider = function(record)
203 {
204 var recordTypes = WebInspector.TimelineModel.RecordType;
205 if (record.type() === recordTypes.TimeStamp)
206 return true;
207 if (record.type() === recordTypes.MarkFirstPaint)
208 return true;
209 if (record.type() === recordTypes.MarkDOMContent || record.type() === record Types.MarkLoad)
210 return record.data()["isMainFrame"];
211 return false;
212 }
213
214 /**
215 * @param {string=} recordType 216 * @param {string=} recordType
216 * @return {boolean} 217 * @return {boolean}
217 */ 218 */
218 WebInspector.TimelineUIUtils.needsPreviewElement = function(recordType) 219 WebInspector.TimelineUIUtils.needsPreviewElement = function(recordType)
219 { 220 {
220 if (!recordType) 221 if (!recordType)
221 return false; 222 return false;
222 const recordTypes = WebInspector.TimelineModel.RecordType; 223 const recordTypes = WebInspector.TimelineModel.RecordType;
223 switch (recordType) { 224 switch (recordType) {
224 case recordTypes.ResourceSendRequest: 225 case recordTypes.ResourceSendRequest:
225 case recordTypes.ResourceReceiveResponse: 226 case recordTypes.ResourceReceiveResponse:
226 case recordTypes.ResourceReceivedData: 227 case recordTypes.ResourceReceivedData:
227 case recordTypes.ResourceFinish: 228 case recordTypes.ResourceFinish:
228 return true; 229 return true;
229 default: 230 default:
230 return false; 231 return false;
231 } 232 }
232 } 233 }
233 234
234 /** 235 /**
235 * @param {string} recordType
236 * @param {string=} title
237 * @return {!Element}
238 */
239 WebInspector.TimelineUIUtils.createEventDivider = function(recordType, title)
240 {
241 var eventDivider = document.createElement("div");
242 eventDivider.className = "resources-event-divider";
243 var recordTypes = WebInspector.TimelineModel.RecordType;
244
245 if (recordType === recordTypes.MarkDOMContent)
246 eventDivider.className += " resources-blue-divider";
247 else if (recordType === recordTypes.MarkLoad)
248 eventDivider.className += " resources-red-divider";
249 else if (recordType === recordTypes.MarkFirstPaint)
250 eventDivider.className += " resources-green-divider";
251 else if (recordType === recordTypes.TimeStamp)
252 eventDivider.className += " resources-orange-divider";
253 else if (recordType === recordTypes.BeginFrame)
254 eventDivider.className += " timeline-frame-divider";
255
256 if (title)
257 eventDivider.title = title;
258
259 return eventDivider;
260 }
261
262
263 /**
264 * @param {!WebInspector.TimelineModel} model 236 * @param {!WebInspector.TimelineModel} model
265 * @param {!{name: string, tasks: !Array.<!{startTime: number, endTime: number}> , firstTaskIndex: number, lastTaskIndex: number}} info 237 * @param {!{name: string, tasks: !Array.<!{startTime: number, endTime: number}> , firstTaskIndex: number, lastTaskIndex: number}} info
266 * @return {!Element} 238 * @return {!Element}
267 */ 239 */
268 WebInspector.TimelineUIUtils.generateMainThreadBarPopupContent = function(model, info) 240 WebInspector.TimelineUIUtils.generateMainThreadBarPopupContent = function(model, info)
269 { 241 {
270 var firstTaskIndex = info.firstTaskIndex; 242 var firstTaskIndex = info.firstTaskIndex;
271 var lastTaskIndex = info.lastTaskIndex; 243 var lastTaskIndex = info.lastTaskIndex;
272 var tasks = info.tasks; 244 var tasks = info.tasks;
273 var messageCount = lastTaskIndex - firstTaskIndex + 1; 245 var messageCount = lastTaskIndex - firstTaskIndex + 1;
(...skipping 21 matching lines...) Expand all
295 * @param {!WebInspector.TimelineModel} model 267 * @param {!WebInspector.TimelineModel} model
296 * @return {string} 268 * @return {string}
297 */ 269 */
298 WebInspector.TimelineUIUtils.recordTitle = function(record, model) 270 WebInspector.TimelineUIUtils.recordTitle = function(record, model)
299 { 271 {
300 var recordData = record.data(); 272 var recordData = record.data();
301 if (record.type() === WebInspector.TimelineModel.RecordType.TimeStamp) 273 if (record.type() === WebInspector.TimelineModel.RecordType.TimeStamp)
302 return recordData["message"]; 274 return recordData["message"];
303 if (record.type() === WebInspector.TimelineModel.RecordType.JSFrame) 275 if (record.type() === WebInspector.TimelineModel.RecordType.JSFrame)
304 return recordData["functionName"]; 276 return recordData["functionName"];
305 if (WebInspector.TimelineUIUtils.isEventDivider(record)) { 277 if (WebInspector.TimelineUIUtilsImpl.isEventDivider(record)) {
306 var startTime = Number.millisToString(record.startTime() - model.minimum RecordTime()); 278 var startTime = Number.millisToString(record.startTime() - model.minimum RecordTime());
307 return WebInspector.UIString("%s at %s", WebInspector.TimelineUIUtils.re cordStyle(record).title, startTime, true); 279 return WebInspector.UIString("%s at %s", WebInspector.TimelineUIUtils.re cordStyle(record).title, startTime, true);
308 } 280 }
309 return WebInspector.TimelineUIUtils.recordStyle(record).title; 281 return WebInspector.TimelineUIUtils.recordStyle(record).title;
310 } 282 }
311 283
312 /** 284 /**
313 * @param {!Object} total 285 * @param {!Object} total
314 * @param {!Object} addend 286 * @param {!Object} addend
315 */ 287 */
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 for (var i = 0; i < stackTrace.length; ++i) { 660 for (var i = 0; i < stackTrace.length; ++i) {
689 var stackFrame = stackTrace[i]; 661 var stackFrame = stackTrace[i];
690 var row = stackTraceElement.createChild("div"); 662 var row = stackTraceElement.createChild("div");
691 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); 663 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)"));
692 row.createTextChild(" @ "); 664 row.createTextChild(" @ ");
693 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1); 665 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1);
694 row.appendChild(urlElement); 666 row.appendChild(urlElement);
695 } 667 }
696 } 668 }
697 } 669 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/timeline/TimelinePanel.js ('k') | Source/devtools/front_end/timeline/TimelineUIUtilsImpl.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698