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

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

Issue 397313003: DevTools: Remove target function from TimelineModel (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 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 * @constructor 6 * @constructor
7 * @extends {WebInspector.TimelineUIUtils} 7 * @extends {WebInspector.TimelineUIUtils}
8 */ 8 */
9 WebInspector.TracingTimelineUIUtils = function() 9 WebInspector.TracingTimelineUIUtils = function()
10 { 10 {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 }, 85 },
86 86
87 /** 87 /**
88 * @param {!WebInspector.TimelineModel.Record} record 88 * @param {!WebInspector.TimelineModel.Record} record
89 * @param {!WebInspector.Linkifier} linkifier 89 * @param {!WebInspector.Linkifier} linkifier
90 * @param {boolean} loadedFromFile 90 * @param {boolean} loadedFromFile
91 * @return {?Node} 91 * @return {?Node}
92 */ 92 */
93 buildDetailsNode: function(record, linkifier, loadedFromFile) 93 buildDetailsNode: function(record, linkifier, loadedFromFile)
94 { 94 {
95 return WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent (record.traceEvent(), linkifier, loadedFromFile, record.target()); 95 return WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent (record.traceEvent(), linkifier);
96 }, 96 },
97 97
98 /** 98 /**
99 * @param {!WebInspector.TimelineModel.Record} record 99 * @param {!WebInspector.TimelineModel.Record} record
100 * @param {!WebInspector.TimelineModel} model 100 * @param {!WebInspector.TimelineModel} model
101 * @param {!WebInspector.Linkifier} linkifier 101 * @param {!WebInspector.Linkifier} linkifier
102 * @param {function(!DocumentFragment)} callback 102 * @param {function(!DocumentFragment)} callback
103 * @param {boolean} loadedFromFile 103 * @param {boolean} loadedFromFile
104 */ 104 */
105 generateDetailsContent: function(record, model, linkifier, callback, loadedF romFile) 105 generateDetailsContent: function(record, model, linkifier, callback, loadedF romFile)
106 { 106 {
107 if (!(model instanceof WebInspector.TracingTimelineModel)) 107 if (!(model instanceof WebInspector.TracingTimelineModel))
108 throw new Error("Illegal argument."); 108 throw new Error("Illegal argument.");
109 var tracingTimelineModel = /** @type {!WebInspector.TracingTimelineModel } */ (model); 109 var tracingTimelineModel = /** @type {!WebInspector.TracingTimelineModel } */ (model);
110 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(record.traceE vent(), tracingTimelineModel, linkifier, callback, loadedFromFile, record.target ()); 110 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(record.traceE vent(), tracingTimelineModel, linkifier, callback, loadedFromFile);
111 }, 111 },
112 112
113 /** 113 /**
114 * @return {!Element} 114 * @return {!Element}
115 */ 115 */
116 createBeginFrameDivider: function() 116 createBeginFrameDivider: function()
117 { 117 {
118 return this.createEventDivider(WebInspector.TracingTimelineModel.RecordT ype.BeginFrame); 118 return this.createEventDivider(WebInspector.TracingTimelineModel.RecordT ype.BeginFrame);
119 }, 119 },
120 120
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 if (record.type() === recordTypes.MarkFirstPaint) 323 if (record.type() === recordTypes.MarkFirstPaint)
324 return true; 324 return true;
325 if (record.type() === recordTypes.MarkDOMContent || record.type() === record Types.MarkLoad) 325 if (record.type() === recordTypes.MarkDOMContent || record.type() === record Types.MarkLoad)
326 return record.data()["isMainFrame"]; 326 return record.data()["isMainFrame"];
327 return false; 327 return false;
328 } 328 }
329 329
330 /** 330 /**
331 * @param {!WebInspector.TracingModel.Event} event 331 * @param {!WebInspector.TracingModel.Event} event
332 * @param {!WebInspector.Linkifier} linkifier 332 * @param {!WebInspector.Linkifier} linkifier
333 * @param {boolean} loadedFromFile
334 * @param {!WebInspector.Target} target
335 * @return {?Node} 333 * @return {?Node}
336 */ 334 */
337 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve nt, linkifier, loadedFromFile, target) 335 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve nt, linkifier)
338 { 336 {
339 var recordType = WebInspector.TracingTimelineModel.RecordType; 337 var recordType = WebInspector.TracingTimelineModel.RecordType;
340 338 var target = event.thread.target();
341 var details; 339 var details;
342 var detailsText; 340 var detailsText;
343 var eventData = event.args.data; 341 var eventData = event.args.data;
344 switch (event.name) { 342 switch (event.name) {
345 case recordType.GCEvent: 343 case recordType.GCEvent:
346 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 344 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
347 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta)); 345 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta));
348 break; 346 break;
349 case recordType.TimerFire: 347 case recordType.TimerFire:
350 detailsText = eventData["timerId"]; 348 detailsText = eventData["timerId"];
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 return details; 424 return details;
427 425
428 /** 426 /**
429 * @param {string} scriptId 427 * @param {string} scriptId
430 * @param {string} url 428 * @param {string} url
431 * @param {number} lineNumber 429 * @param {number} lineNumber
432 * @param {number=} columnNumber 430 * @param {number=} columnNumber
433 */ 431 */
434 function linkifyLocation(scriptId, url, lineNumber, columnNumber) 432 function linkifyLocation(scriptId, url, lineNumber, columnNumber)
435 { 433 {
436 if (!loadedFromFile && scriptId !== "0") {
437 var location = new WebInspector.DebuggerModel.Location(
438 target,
439 scriptId,
440 lineNumber - 1,
441 (columnNumber || 1) - 1);
442 return linkifier.linkifyRawLocation(location, "timeline-details");
443 }
444
445 if (!url) 434 if (!url)
446 return null; 435 return null;
447 436
448 // FIXME(62725): stack trace line/column numbers are one-based. 437 // FIXME(62725): stack trace line/column numbers are one-based.
449 columnNumber = columnNumber ? columnNumber - 1 : 0; 438 return linkifier.linkifyLocationByScriptId(target, scriptId, url, lineNu mber - 1, (columnNumber ||1) - 1, "timeline-details");
450 return linkifier.linkifyLocation(target, url, lineNumber - 1, columnNumb er, "timeline-details");
451 } 439 }
452 440
453 /** 441 /**
454 * @param {!ConsoleAgent.CallFrame} callFrame 442 * @param {!ConsoleAgent.CallFrame} callFrame
455 */ 443 */
456 function linkifyCallFrame(callFrame) 444 function linkifyCallFrame(callFrame)
457 { 445 {
458 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber); 446 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber);
459 } 447 }
460 448
(...skipping 13 matching lines...) Expand all
474 return linkifyCallFrame(stackTrace[0]); 462 return linkifyCallFrame(stackTrace[0]);
475 } 463 }
476 } 464 }
477 465
478 /** 466 /**
479 * @param {!WebInspector.TracingModel.Event} event 467 * @param {!WebInspector.TracingModel.Event} event
480 * @param {!WebInspector.TracingTimelineModel} model 468 * @param {!WebInspector.TracingTimelineModel} model
481 * @param {!WebInspector.Linkifier} linkifier 469 * @param {!WebInspector.Linkifier} linkifier
482 * @param {function(!DocumentFragment)} callback 470 * @param {function(!DocumentFragment)} callback
483 * @param {boolean} loadedFromFile 471 * @param {boolean} loadedFromFile
484 * @param {!WebInspector.Target} target
485 */ 472 */
486 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod el, linkifier, callback, loadedFromFile, target) 473 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod el, linkifier, callback, loadedFromFile)
487 { 474 {
475 var target = event.thread.target();
476 //FIXME: support here nullable target
477 if (!target)
478 return;
479
488 var relatedNode = null; 480 var relatedNode = null;
489 var barrier = new CallbackBarrier(); 481 var barrier = new CallbackBarrier();
490 if (!event.previewElement) { 482 if (!event.previewElement) {
491 if (event.imageURL) 483 if (event.imageURL)
492 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, event.imageURL, false, barrier.createCallback(saveImage)); 484 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, event.imageURL, false, barrier.createCallback(saveImage));
493 else if (event.picture) 485 else if (event.picture)
494 WebInspector.TracingTimelineUIUtils.buildPicturePreviewContent(model .target(), event.picture, barrier.createCallback(saveImage)); 486 WebInspector.TracingTimelineUIUtils.buildPicturePreviewContent(targe t, event.picture, barrier.createCallback(saveImage));
495 } 487 }
496 if (event.backendNodeId) 488 if (event.backendNodeId)
497 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b arrier.createCallback(setRelatedNode)); 489 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b arrier.createCallback(setRelatedNode));
498 barrier.callWhenDone(callbackWrapper); 490 barrier.callWhenDone(callbackWrapper);
499 491
500 /** 492 /**
501 * @param {!Element=} element 493 * @param {!Element=} element
502 */ 494 */
503 function saveImage(element) 495 function saveImage(element)
504 { 496 {
505 event.previewElement = element || null; 497 event.previewElement = element || null;
506 } 498 }
507 499
508 /** 500 /**
509 * @param {?Array.<!DOMAgent.NodeId>} nodeIds 501 * @param {?Array.<!DOMAgent.NodeId>} nodeIds
510 */ 502 */
511 function setRelatedNode(nodeIds) 503 function setRelatedNode(nodeIds)
512 { 504 {
513 if (nodeIds) 505 if (nodeIds)
514 relatedNode = target.domModel.nodeForId(nodeIds[0]); 506 relatedNode = target.domModel.nodeForId(nodeIds[0]);
515 } 507 }
516 508
517 function callbackWrapper() 509 function callbackWrapper()
518 { 510 {
519 callback(WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSync hronously(event, model, linkifier, relatedNode, loadedFromFile, target)); 511 callback(WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSync hronously(event, model, linkifier, relatedNode, loadedFromFile, /** @type {!WebI nspector.Target} */ (target)));
520 } 512 }
521 } 513 }
522 514
523 /** 515 /**
524 * @param {!WebInspector.TracingModel.Event} event 516 * @param {!WebInspector.TracingModel.Event} event
525 * @param {!WebInspector.TracingTimelineModel} model 517 * @param {!WebInspector.TracingTimelineModel} model
526 * @param {!WebInspector.Linkifier} linkifier 518 * @param {!WebInspector.Linkifier} linkifier
527 * @param {?WebInspector.DOMNode} relatedNode 519 * @param {?WebInspector.DOMNode} relatedNode
528 * @param {boolean} loadedFromFile 520 * @param {boolean} loadedFromFile
529 * @param {!WebInspector.Target} target 521 * @param {!WebInspector.Target} target
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 contentHelper.appendTextRow(WebInspector.UIString("URL"), initiatorD ata["webSocketURL"]); 638 contentHelper.appendTextRow(WebInspector.UIString("URL"), initiatorD ata["webSocketURL"]);
647 if (typeof initiatorData["webSocketProtocol"] !== "undefined") 639 if (typeof initiatorData["webSocketProtocol"] !== "undefined")
648 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protoco l"), initiatorData["webSocketProtocol"]); 640 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protoco l"), initiatorData["webSocketProtocol"]);
649 if (typeof eventData["message"] !== "undefined") 641 if (typeof eventData["message"] !== "undefined")
650 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]); 642 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]);
651 break; 643 break;
652 case recordTypes.EmbedderCallback: 644 case recordTypes.EmbedderCallback:
653 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]); 645 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]);
654 break; 646 break;
655 default: 647 default:
656 var detailsNode = WebInspector.TracingTimelineUIUtils.buildDetailsNodeFo rTraceEvent(event, linkifier, loadedFromFile, target); 648 var detailsNode = WebInspector.TracingTimelineUIUtils.buildDetailsNodeFo rTraceEvent(event, linkifier);
657 if (detailsNode) 649 if (detailsNode)
658 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); 650 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode);
659 break; 651 break;
660 } 652 }
661 653
662 if (relatedNode) 654 if (relatedNode)
663 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); 655 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node));
664 656
665 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) 657 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall)
666 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); 658 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 return result; 795 return result;
804 } 796 }
805 797
806 /** 798 /**
807 * @return {!WebInspector.TracingTimelineModel.Filter} 799 * @return {!WebInspector.TracingTimelineModel.Filter}
808 */ 800 */
809 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() 801 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function()
810 { 802 {
811 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); 803 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes());
812 } 804 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698