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

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: Rebase once more 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
« no previous file with comments | « Source/devtools/front_end/timeline/TracingTimelineModel.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 // 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 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 if (record.type() === recordTypes.MarkFirstPaint) 313 if (record.type() === recordTypes.MarkFirstPaint)
314 return true; 314 return true;
315 if (record.type() === recordTypes.MarkDOMContent || record.type() === record Types.MarkLoad) 315 if (record.type() === recordTypes.MarkDOMContent || record.type() === record Types.MarkLoad)
316 return record.data()["isMainFrame"]; 316 return record.data()["isMainFrame"];
317 return false; 317 return false;
318 } 318 }
319 319
320 /** 320 /**
321 * @param {!WebInspector.TracingModel.Event} event 321 * @param {!WebInspector.TracingModel.Event} event
322 * @param {!WebInspector.Linkifier} linkifier 322 * @param {!WebInspector.Linkifier} linkifier
323 * @param {boolean} loadedFromFile
324 * @param {!WebInspector.Target} target
325 * @return {?Node} 323 * @return {?Node}
326 */ 324 */
327 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve nt, linkifier, loadedFromFile, target) 325 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve nt, linkifier)
328 { 326 {
329 var recordType = WebInspector.TracingTimelineModel.RecordType; 327 var recordType = WebInspector.TracingTimelineModel.RecordType;
330 328 var target = event.thread.target();
331 var details; 329 var details;
332 var detailsText; 330 var detailsText;
333 var eventData = event.args.data; 331 var eventData = event.args.data;
334 switch (event.name) { 332 switch (event.name) {
335 case recordType.GCEvent: 333 case recordType.GCEvent:
336 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 334 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
337 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta)); 335 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta));
338 break; 336 break;
339 case recordType.TimerFire: 337 case recordType.TimerFire:
340 detailsText = eventData["timerId"]; 338 detailsText = eventData["timerId"];
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 return details; 422 return details;
425 423
426 /** 424 /**
427 * @param {string} scriptId 425 * @param {string} scriptId
428 * @param {string} url 426 * @param {string} url
429 * @param {number} lineNumber 427 * @param {number} lineNumber
430 * @param {number=} columnNumber 428 * @param {number=} columnNumber
431 */ 429 */
432 function linkifyLocation(scriptId, url, lineNumber, columnNumber) 430 function linkifyLocation(scriptId, url, lineNumber, columnNumber)
433 { 431 {
434 if (!loadedFromFile && scriptId !== "0") {
435 var location = new WebInspector.DebuggerModel.Location(
436 target,
437 scriptId,
438 lineNumber - 1,
439 (columnNumber || 1) - 1);
440 return linkifier.linkifyRawLocation(location, "timeline-details");
441 }
442
443 if (!url) 432 if (!url)
444 return null; 433 return null;
445 434
446 // FIXME(62725): stack trace line/column numbers are one-based. 435 // FIXME(62725): stack trace line/column numbers are one-based.
447 columnNumber = columnNumber ? columnNumber - 1 : 0; 436 return linkifier.linkifyLocationByScriptId(target, scriptId, url, lineNu mber - 1, (columnNumber ||1) - 1, "timeline-details");
448 return linkifier.linkifyLocation(target, url, lineNumber - 1, columnNumb er, "timeline-details");
449 } 437 }
450 438
451 /** 439 /**
452 * @param {!ConsoleAgent.CallFrame} callFrame 440 * @param {!ConsoleAgent.CallFrame} callFrame
453 */ 441 */
454 function linkifyCallFrame(callFrame) 442 function linkifyCallFrame(callFrame)
455 { 443 {
456 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber); 444 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber);
457 } 445 }
458 446
(...skipping 13 matching lines...) Expand all
472 return linkifyCallFrame(stackTrace[0]); 460 return linkifyCallFrame(stackTrace[0]);
473 } 461 }
474 } 462 }
475 463
476 /** 464 /**
477 * @param {!WebInspector.TracingModel.Event} event 465 * @param {!WebInspector.TracingModel.Event} event
478 * @param {!WebInspector.TracingTimelineModel} model 466 * @param {!WebInspector.TracingTimelineModel} model
479 * @param {!WebInspector.Linkifier} linkifier 467 * @param {!WebInspector.Linkifier} linkifier
480 * @param {function(!DocumentFragment)} callback 468 * @param {function(!DocumentFragment)} callback
481 * @param {boolean} loadedFromFile 469 * @param {boolean} loadedFromFile
482 * @param {!WebInspector.Target} target
483 */ 470 */
484 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod el, linkifier, callback, loadedFromFile, target) 471 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod el, linkifier, callback, loadedFromFile)
485 { 472 {
473 var target = event.thread.target();
474 //FIXME: support here nullable target
475 if (!target)
476 return;
477
486 var relatedNode = null; 478 var relatedNode = null;
487 var barrier = new CallbackBarrier(); 479 var barrier = new CallbackBarrier();
488 if (!event.previewElement) { 480 if (!event.previewElement) {
489 if (event.imageURL) 481 if (event.imageURL)
490 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, event.imageURL, false, barrier.createCallback(saveImage)); 482 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, event.imageURL, false, barrier.createCallback(saveImage));
491 else if (event.picture) 483 else if (event.picture)
492 WebInspector.TracingTimelineUIUtils.buildPicturePreviewContent(model .target(), event.picture, barrier.createCallback(saveImage)); 484 WebInspector.TracingTimelineUIUtils.buildPicturePreviewContent(targe t, event.picture, barrier.createCallback(saveImage));
493 } 485 }
494 if (event.backendNodeId) 486 if (event.backendNodeId)
495 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b arrier.createCallback(setRelatedNode)); 487 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b arrier.createCallback(setRelatedNode));
496 barrier.callWhenDone(callbackWrapper); 488 barrier.callWhenDone(callbackWrapper);
497 489
498 /** 490 /**
499 * @param {!Element=} element 491 * @param {!Element=} element
500 */ 492 */
501 function saveImage(element) 493 function saveImage(element)
502 { 494 {
503 event.previewElement = element || null; 495 event.previewElement = element || null;
504 } 496 }
505 497
506 /** 498 /**
507 * @param {?Array.<!DOMAgent.NodeId>} nodeIds 499 * @param {?Array.<!DOMAgent.NodeId>} nodeIds
508 */ 500 */
509 function setRelatedNode(nodeIds) 501 function setRelatedNode(nodeIds)
510 { 502 {
511 if (nodeIds) 503 if (nodeIds)
512 relatedNode = target.domModel.nodeForId(nodeIds[0]); 504 relatedNode = target.domModel.nodeForId(nodeIds[0]);
513 } 505 }
514 506
515 function callbackWrapper() 507 function callbackWrapper()
516 { 508 {
517 callback(WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSync hronously(event, model, linkifier, relatedNode, loadedFromFile, target)); 509 callback(WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSync hronously(event, model, linkifier, relatedNode, loadedFromFile, /** @type {!WebI nspector.Target} */ (target)));
518 } 510 }
519 } 511 }
520 512
521 /** 513 /**
522 * @param {!WebInspector.TracingModel.Event} event 514 * @param {!WebInspector.TracingModel.Event} event
523 * @param {!WebInspector.TracingTimelineModel} model 515 * @param {!WebInspector.TracingTimelineModel} model
524 * @param {!WebInspector.Linkifier} linkifier 516 * @param {!WebInspector.Linkifier} linkifier
525 * @param {?WebInspector.DOMNode} relatedNode 517 * @param {?WebInspector.DOMNode} relatedNode
526 * @param {boolean} loadedFromFile 518 * @param {boolean} loadedFromFile
527 * @param {!WebInspector.Target} target 519 * @param {!WebInspector.Target} target
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 contentHelper.appendTextRow(WebInspector.UIString("URL"), initiatorD ata["webSocketURL"]); 636 contentHelper.appendTextRow(WebInspector.UIString("URL"), initiatorD ata["webSocketURL"]);
645 if (typeof initiatorData["webSocketProtocol"] !== "undefined") 637 if (typeof initiatorData["webSocketProtocol"] !== "undefined")
646 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protoco l"), initiatorData["webSocketProtocol"]); 638 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protoco l"), initiatorData["webSocketProtocol"]);
647 if (typeof eventData["message"] !== "undefined") 639 if (typeof eventData["message"] !== "undefined")
648 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]); 640 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]);
649 break; 641 break;
650 case recordTypes.EmbedderCallback: 642 case recordTypes.EmbedderCallback:
651 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]); 643 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]);
652 break; 644 break;
653 default: 645 default:
654 var detailsNode = WebInspector.TracingTimelineUIUtils.buildDetailsNodeFo rTraceEvent(event, linkifier, loadedFromFile, target); 646 var detailsNode = WebInspector.TracingTimelineUIUtils.buildDetailsNodeFo rTraceEvent(event, linkifier);
655 if (detailsNode) 647 if (detailsNode)
656 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); 648 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode);
657 break; 649 break;
658 } 650 }
659 651
660 if (relatedNode) 652 if (relatedNode)
661 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); 653 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node));
662 654
663 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) 655 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall)
664 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); 656 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 return result; 793 return result;
802 } 794 }
803 795
804 /** 796 /**
805 * @return {!WebInspector.TracingTimelineModel.Filter} 797 * @return {!WebInspector.TracingTimelineModel.Filter}
806 */ 798 */
807 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() 799 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function()
808 { 800 {
809 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); 801 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes());
810 } 802 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/timeline/TracingTimelineModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698