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

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

Issue 1353653003: DevTools: cleanup timeline concise record details generation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: re-uploading after blink repo merge Created 5 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 var recordType = WebInspector.TimelineModel.RecordType; 284 var recordType = WebInspector.TimelineModel.RecordType;
285 var detailsText; 285 var detailsText;
286 var eventData = event.args["data"]; 286 var eventData = event.args["data"];
287 switch (event.name) { 287 switch (event.name) {
288 case recordType.GCEvent: 288 case recordType.GCEvent:
289 case recordType.MajorGC: 289 case recordType.MajorGC:
290 case recordType.MinorGC: 290 case recordType.MinorGC:
291 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 291 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
292 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta)); 292 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta));
293 break; 293 break;
294 case recordType.TimerFire:
295 detailsText = eventData["timerId"];
296 break;
297 case recordType.FunctionCall: 294 case recordType.FunctionCall:
298 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData["sc riptLine"], 0); 295 // Omit internally generated script names.
296 if (eventData["scriptName"])
297 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData ["scriptLine"], 0);
299 break; 298 break;
300 case recordType.JSFrame: 299 case recordType.JSFrame:
301 detailsText = WebInspector.beautifyFunctionName(eventData["functionName" ]); 300 detailsText = WebInspector.beautifyFunctionName(eventData["functionName" ]);
302 break; 301 break;
303 case recordType.FireAnimationFrame:
304 detailsText = eventData["id"];
305 break;
306 case recordType.EventDispatch: 302 case recordType.EventDispatch:
307 detailsText = eventData ? eventData["type"] : null; 303 detailsText = eventData ? eventData["type"] : null;
308 break; 304 break;
309 case recordType.Paint: 305 case recordType.Paint:
310 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip); 306 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip);
311 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip); 307 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip);
312 if (width && height) 308 if (width && height)
313 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); 309 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height);
314 break; 310 break;
315 case recordType.TimerInstall:
316 case recordType.TimerRemove:
317 detailsText = linkifyTopCallFrameAsText() || eventData["timerId"];
318 break;
319 case recordType.RequestAnimationFrame:
320 case recordType.CancelAnimationFrame:
321 detailsText = linkifyTopCallFrameAsText() || eventData["id"];
322 break;
323 case recordType.ParseHTML: 311 case recordType.ParseHTML:
324 var endLine = event.args["endData"] && event.args["endData"]["endLine"]; 312 var endLine = event.args["endData"] && event.args["endData"]["endLine"];
325 var url = event.args["beginData"]["url"]; 313 var url = WebInspector.displayNameForURL(event.args["beginData"]["url"]) ;
326 detailsText = endLine ? WebInspector.UIString("%s [%d\u2009\u2013\u2009% d]", url, event.args["beginData"]["startLine"] + 1, endLine + 1) : url; 314 detailsText = endLine ? WebInspector.UIString("%s [%d\u2009\u2013\u2009% d]", url, event.args["beginData"]["startLine"] + 1, endLine + 1) : url;
327 break; 315 break;
328 case recordType.UpdateLayoutTree: 316
329 case recordType.RecalculateStyles:
330 detailsText = linkifyTopCallFrameAsText();
331 break;
332 case recordType.EvaluateScript: 317 case recordType.EvaluateScript:
333 var url = eventData["url"]; 318 var url = eventData["url"];
334 if (url) 319 if (url)
335 detailsText = url + ":" + eventData["lineNumber"]; 320 detailsText = detailsText = WebInspector.displayNameForURL(url) + ": " + eventData["lineNumber"];
paulirish 2015/09/24 04:42:46 double double?
336 break; 321 break;
337 case recordType.XHRReadyStateChange: 322 case recordType.XHRReadyStateChange:
338 case recordType.XHRLoad: 323 case recordType.XHRLoad:
339 case recordType.ResourceSendRequest:
340 var url = eventData["url"]; 324 var url = eventData["url"];
341 if (url) 325 if (url)
342 detailsText = WebInspector.displayNameForURL(url); 326 detailsText = detailsText = WebInspector.displayNameForURL(url);
343 break; 327 break;
328
329 case recordType.WebSocketCreate:
330 case recordType.WebSocketSendHandshakeRequest:
331 case recordType.WebSocketReceiveHandshakeResponse:
332 case recordType.WebSocketDestroy:
333 case recordType.ResourceSendRequest:
344 case recordType.ResourceReceivedData: 334 case recordType.ResourceReceivedData:
345 case recordType.ResourceReceiveResponse: 335 case recordType.ResourceReceiveResponse:
346 case recordType.ResourceFinish: 336 case recordType.ResourceFinish:
347 var initiator = event.initiator; 337 case recordType.PaintImage:
348 if (initiator) { 338 case recordType.DecodeImage:
349 var url = initiator.args["data"]["url"]; 339 case recordType.ResizeImage:
350 if (url) 340 case recordType.DecodeLazyPixelRef:
351 detailsText = WebInspector.displayNameForURL(url); 341 if (event.url)
352 } 342 detailsText = WebInspector.displayNameForURL(event.url);
353 break; 343 break;
344
354 case recordType.EmbedderCallback: 345 case recordType.EmbedderCallback:
355 detailsText = eventData["callbackName"]; 346 detailsText = eventData["callbackName"];
356 break; 347 break;
357 348
358 case recordType.PaintImage:
359 case recordType.DecodeImage:
360 case recordType.ResizeImage:
361 case recordType.DecodeLazyPixelRef:
362 var url = event.url;
363 if (url)
364 detailsText = WebInspector.displayNameForURL(url);
365 break;
366
367 case recordType.Animation: 349 case recordType.Animation:
368 detailsText = eventData && eventData["name"]; 350 detailsText = eventData && eventData["name"];
369 break; 351 break;
370 352
371 default: 353 default:
372 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) 354 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory))
373 detailsText = null; 355 detailsText = null;
374 else 356 else
375 detailsText = linkifyTopCallFrameAsText(); 357 detailsText = linkifyTopCallFrameAsText();
376 break; 358 break;
377 } 359 }
378 360
379 return detailsText; 361 return detailsText;
380 362
381 /** 363 /**
382 * @param {string} scriptId 364 * @param {string} scriptId
383 * @param {number} lineNumber 365 * @param {number} lineNumber
384 * @param {number=} columnNumber 366 * @param {number=} columnNumber
385 * @return {?string} 367 * @return {?string}
386 */ 368 */
387 function linkifyLocationAsText(scriptId, lineNumber, columnNumber) 369 function linkifyLocationAsText(scriptId, lineNumber, columnNumber)
388 { 370 {
389 // FIXME(62725): stack trace line/column numbers are one-based. 371 // FIXME(62725): stack trace line/column numbers are one-based.
390 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 372 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
391 var rawLocation = target && !target.isDetached() && scriptId && debugger Model ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber - 1, (col umnNumber || 1) - 1) : null; 373 var rawLocation = target && !target.isDetached() && scriptId && debugger Model ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber - 1, (col umnNumber || 1) - 1) : null;
392 if (!rawLocation) 374 if (!rawLocation)
393 return null; 375 return null;
394 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(rawLocation); 376 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(rawLocation);
395 return uiLocation.toUIString(); 377 return uiLocation.linkText();
396 } 378 }
397 379
398 /** 380 /**
399 * @return {?string} 381 * @return {?string}
400 */ 382 */
401 function linkifyTopCallFrameAsText() 383 function linkifyTopCallFrameAsText()
402 { 384 {
403 var stackTrace = event.stackTrace; 385 var stackTrace = event.stackTrace;
404 if (!stackTrace) { 386 if (!stackTrace) {
405 var initiator = event.initiator; 387 var initiator = event.initiator;
(...skipping 16 matching lines...) Expand all
422 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, tar get, linkifier) 404 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, tar get, linkifier)
423 { 405 {
424 var recordType = WebInspector.TimelineModel.RecordType; 406 var recordType = WebInspector.TimelineModel.RecordType;
425 var details; 407 var details;
426 var detailsText; 408 var detailsText;
427 var eventData = event.args["data"]; 409 var eventData = event.args["data"];
428 switch (event.name) { 410 switch (event.name) {
429 case recordType.GCEvent: 411 case recordType.GCEvent:
430 case recordType.MajorGC: 412 case recordType.MajorGC:
431 case recordType.MinorGC: 413 case recordType.MinorGC:
432 case recordType.TimerFire:
433 case recordType.FireAnimationFrame:
434 case recordType.EventDispatch: 414 case recordType.EventDispatch:
435 case recordType.Paint: 415 case recordType.Paint:
416 case recordType.Animation:
417 case recordType.EmbedderCallback:
418 case recordType.ParseHTML:
419 case recordType.WebSocketCreate:
420 case recordType.WebSocketSendHandshakeRequest:
421 case recordType.WebSocketReceiveHandshakeResponse:
422 case recordType.WebSocketDestroy:
423 detailsText = WebInspector.TimelineUIUtils.buildDetailsTextForTraceEvent (event, target);
424 break;
436 case recordType.PaintImage: 425 case recordType.PaintImage:
437 case recordType.DecodeImage: 426 case recordType.DecodeImage:
438 case recordType.ResizeImage: 427 case recordType.ResizeImage:
439 case recordType.DecodeLazyPixelRef: 428 case recordType.DecodeLazyPixelRef:
440 case recordType.Animation:
441 case recordType.XHRReadyStateChange: 429 case recordType.XHRReadyStateChange:
442 case recordType.XHRLoad: 430 case recordType.XHRLoad:
443 case recordType.ResourceSendRequest: 431 case recordType.ResourceSendRequest:
444 case recordType.ResourceReceivedData: 432 case recordType.ResourceReceivedData:
445 case recordType.ResourceReceiveResponse: 433 case recordType.ResourceReceiveResponse:
446 case recordType.ResourceFinish: 434 case recordType.ResourceFinish:
447 case recordType.EmbedderCallback: 435 if (event.url)
448 case recordType.ParseHTML: 436 details = WebInspector.linkifyResourceAsNode(event.url);
449 detailsText = WebInspector.TimelineUIUtils.buildDetailsTextForTraceEvent (event, target);
450 break; 437 break;
451 case recordType.FunctionCall: 438 case recordType.FunctionCall:
452 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"] , eventData["scriptLine"], 0); 439 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"] , eventData["scriptLine"], 0);
453 break; 440 break;
454 case recordType.JSFrame: 441 case recordType.JSFrame:
455 details = createElement("span"); 442 details = createElement("span");
456 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun ctionName"])); 443 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun ctionName"]));
457 var location = linkifyLocation(eventData["scriptId"], eventData["url"], eventData["lineNumber"], eventData["columnNumber"]); 444 var location = linkifyLocation(eventData["scriptId"], eventData["url"], eventData["lineNumber"], eventData["columnNumber"]);
458 if (location) { 445 if (location) {
459 details.createTextChild(" @ "); 446 details.createTextChild(" @ ");
460 details.appendChild(location); 447 details.appendChild(location);
461 } 448 }
462 break; 449 break;
463 case recordType.TimerInstall:
464 case recordType.TimerRemove:
465 details = linkifyTopCallFrame();
466 detailsText = eventData["timerId"];
467 break;
468 case recordType.RequestAnimationFrame:
469 case recordType.CancelAnimationFrame:
470 details = linkifyTopCallFrame();
471 detailsText = eventData["id"];
472 break;
473 case recordType.UpdateLayoutTree:
474 case recordType.RecalculateStyles:
475 details = linkifyTopCallFrame();
476 break;
477 case recordType.EvaluateScript: 450 case recordType.EvaluateScript:
478 var url = eventData["url"]; 451 var url = eventData["url"];
479 if (url) 452 if (url)
480 details = linkifyLocation("", url, eventData["lineNumber"], 0); 453 details = linkifyLocation("", url, eventData["lineNumber"], 0);
481 break; 454 break;
482 default: 455 default:
483 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) 456 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory))
484 detailsText = null; 457 detailsText = null;
485 else 458 else
486 details = linkifyTopCallFrame(); 459 details = linkifyTopCallFrame();
(...skipping 1441 matching lines...) Expand 10 before | Expand all | Expand 10 after
1928 if (!this._linkifier || !this._target) 1901 if (!this._linkifier || !this._target)
1929 return; 1902 return;
1930 1903
1931 var stackTraceElement = parentElement.createChild("div", "timeline-detai ls-view-row-value timeline-details-view-row-stack-trace monospace"); 1904 var stackTraceElement = parentElement.createChild("div", "timeline-detai ls-view-row-value timeline-details-view-row-stack-trace monospace");
1932 1905
1933 var callFrameElem = WebInspector.DOMPresentationUtils.buildStackTracePre viewContents(this._target, this._linkifier, stackTrace); 1906 var callFrameElem = WebInspector.DOMPresentationUtils.buildStackTracePre viewContents(this._target, this._linkifier, stackTrace);
1934 1907
1935 stackTraceElement.appendChild(callFrameElem); 1908 stackTraceElement.appendChild(callFrameElem);
1936 } 1909 }
1937 } 1910 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698