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

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

Issue 631573002: [Devtools] Replace "Stacks" with "Causes" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update per reviewer comments, and remove the causes tab Created 6 years, 2 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 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 var fragment = document.createDocumentFragment(); 531 var fragment = document.createDocumentFragment();
532 var stats = {}; 532 var stats = {};
533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event); 533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event);
534 var pieChart = hasChildren ? 534 var pieChart = hasChildren ?
535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) : 535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) :
536 WebInspector.TimelineUIUtils.generatePieChart(stats); 536 WebInspector.TimelineUIUtils.generatePieChart(stats);
537 fragment.appendChild(pieChart); 537 fragment.appendChild(pieChart);
538 538
539 var recordTypes = WebInspector.TracingTimelineModel.RecordType; 539 var recordTypes = WebInspector.TracingTimelineModel.RecordType;
540 540
541 // The messages may vary per event.name; 541 // This message may vary per event.name;
542 var callSiteStackTraceLabel;
543 var callStackLabel;
544 var relatedNodeLabel; 542 var relatedNodeLabel;
545 543
546 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); 544 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true);
547 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true)); 545 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true));
548 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()))); 546 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime())));
549 var eventData = event.args["data"]; 547 var eventData = event.args["data"];
550 var initiator = event.initiator; 548 var initiator = event.initiator;
551 549
552 switch (event.name) { 550 switch (event.name) {
553 case recordTypes.GCEvent: 551 case recordTypes.GCEvent:
554 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 552 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
555 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); 553 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta));
556 break; 554 break;
557 case recordTypes.TimerFire: 555 case recordTypes.TimerFire:
558 callSiteStackTraceLabel = WebInspector.UIString("Timer installed");
559 // Fall-through intended.
560
561 case recordTypes.TimerInstall: 556 case recordTypes.TimerInstall:
562 case recordTypes.TimerRemove: 557 case recordTypes.TimerRemove:
563 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); 558 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]);
564 if (event.name === recordTypes.TimerInstall) { 559 if (event.name === recordTypes.TimerInstall) {
565 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); 560 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"]));
566 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); 561 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]);
567 } 562 }
568 break; 563 break;
569 case recordTypes.FireAnimationFrame: 564 case recordTypes.FireAnimationFrame:
570 callSiteStackTraceLabel = WebInspector.UIString("Animation frame request ed");
571 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); 565 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]);
572 break; 566 break;
573 case recordTypes.FunctionCall: 567 case recordTypes.FunctionCall:
574 if (eventData["scriptName"]) 568 if (eventData["scriptName"])
575 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]); 569 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]);
576 break; 570 break;
577 case recordTypes.ResourceSendRequest: 571 case recordTypes.ResourceSendRequest:
578 case recordTypes.ResourceReceiveResponse: 572 case recordTypes.ResourceReceiveResponse:
579 case recordTypes.ResourceReceivedData: 573 case recordTypes.ResourceReceivedData:
580 case recordTypes.ResourceFinish: 574 case recordTypes.ResourceFinish:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 case recordTypes.DecodeLazyPixelRef: 606 case recordTypes.DecodeLazyPixelRef:
613 case recordTypes.DecodeImage: 607 case recordTypes.DecodeImage:
614 case recordTypes.ResizeImage: 608 case recordTypes.ResizeImage:
615 case recordTypes.DrawLazyPixelRef: 609 case recordTypes.DrawLazyPixelRef:
616 relatedNodeLabel = WebInspector.UIString("Image element"); 610 relatedNodeLabel = WebInspector.UIString("Image element");
617 if (event.imageURL) 611 if (event.imageURL)
618 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL)); 612 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL));
619 break; 613 break;
620 case recordTypes.RecalculateStyles: // We don't want to see default details. 614 case recordTypes.RecalculateStyles: // We don't want to see default details.
621 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]); 615 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]);
622 callStackLabel = WebInspector.UIString("Styles recalculation forced");
623 break; 616 break;
624 case recordTypes.Layout: 617 case recordTypes.Layout:
625 var beginData = event.args["beginData"]; 618 var beginData = event.args["beginData"];
626 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]); 619 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]);
627 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]); 620 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]);
628 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), 621 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"),
629 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document")); 622 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document"));
630 callSiteStackTraceLabel = WebInspector.UIString("Layout invalidated");
631 callStackLabel = WebInspector.UIString("Layout forced");
632 relatedNodeLabel = WebInspector.UIString("Layout root"); 623 relatedNodeLabel = WebInspector.UIString("Layout root");
633 break; 624 break;
634 case recordTypes.ConsoleTime: 625 case recordTypes.ConsoleTime:
635 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name ); 626 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name );
636 break; 627 break;
637 case recordTypes.WebSocketCreate: 628 case recordTypes.WebSocketCreate:
638 case recordTypes.WebSocketSendHandshakeRequest: 629 case recordTypes.WebSocketSendHandshakeRequest:
639 case recordTypes.WebSocketReceiveHandshakeResponse: 630 case recordTypes.WebSocketReceiveHandshakeResponse:
640 case recordTypes.WebSocketDestroy: 631 case recordTypes.WebSocketDestroy:
641 var initiatorData = initiator ? initiator.args["data"] : eventData; 632 var initiatorData = initiator ? initiator.args["data"] : eventData;
(...skipping 13 matching lines...) Expand all
655 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); 646 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode);
656 break; 647 break;
657 } 648 }
658 649
659 if (relatedNode) 650 if (relatedNode)
660 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); 651 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node));
661 652
662 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) 653 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall)
663 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); 654 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]);
664 655
665 if (initiator) {
666 var callSiteStackTrace = initiator.stackTrace;
667 if (callSiteStackTrace)
668 contentHelper.appendStackTrace(callSiteStackTraceLabel || WebInspect or.UIString("Call Site stack"), callSiteStackTrace);
669 }
670 var eventStackTrace = event.stackTrace;
671 if (eventStackTrace)
672 contentHelper.appendStackTrace(callStackLabel || WebInspector.UIString(" Call Stack"), eventStackTrace);
673
674 var warning = event.warning; 656 var warning = event.warning;
675 if (warning) { 657 if (warning) {
676 var div = document.createElement("div"); 658 var div = document.createElement("div");
677 div.textContent = warning; 659 div.textContent = warning;
678 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); 660 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div);
679 } 661 }
680 if (event.previewElement) 662 if (event.previewElement)
681 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement); 663 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement);
664
665 if (event.stackTrace || (event.initiator && event.initiator.stackTrace))
666 WebInspector.TracingTimelineUIUtils._generateCauses(event, contentHelper );
667
682 fragment.appendChild(contentHelper.element); 668 fragment.appendChild(contentHelper.element);
683 return fragment; 669 return fragment;
684 } 670 }
685 671
686 /** 672 /**
673 * @param {!WebInspector.TracingModel.Event} event
674 * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper
675 */
676 WebInspector.TracingTimelineUIUtils._generateCauses = function(event, contentHel per)
677 {
678 var recordTypes = WebInspector.TracingTimelineModel.RecordType;
679
680 var callSiteStackLabel;
681 var stackLabel;
682
683 switch (event.name) {
684 case recordTypes.TimerFire:
685 callSiteStackLabel = WebInspector.UIString("Timer installed");
686 break;
687 case recordTypes.FireAnimationFrame:
688 callSiteStackLabel = WebInspector.UIString("Animation frame requested");
689 break;
690 case recordTypes.RecalculateStyles:
691 stackLabel = WebInspector.UIString("Stack when style recalculation was f orced");
692 break;
693 case recordTypes.Layout:
694 callSiteStackLabel = WebInspector.UIString("First layout invalidation");
695 stackLabel = WebInspector.UIString("Stack when layout was forced");
696 break;
697 }
698
699 // Direct cause.
700 if (event.stackTrace)
701 contentHelper.appendStackTrace(stackLabel || WebInspector.UIString("Stac k when this event occurred"), event.stackTrace);
702
703 // Indirect cause / invalidation.
704 var initiator = event.initiator;
705 if (initiator && initiator.stackTrace)
706 contentHelper.appendStackTrace(callSiteStackLabel || WebInspector.UIStri ng("Stack when first invalidated"), initiator.stackTrace);
707 }
708
709 /**
687 * @param {!Object} total 710 * @param {!Object} total
688 * @param {!WebInspector.TracingTimelineModel} model 711 * @param {!WebInspector.TracingTimelineModel} model
689 * @param {!WebInspector.TracingModel.Event} event 712 * @param {!WebInspector.TracingModel.Event} event
690 * @return {boolean} 713 * @return {boolean}
691 */ 714 */
692 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event) 715 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event)
693 { 716 {
694 var events = model.inspectedTargetEvents(); 717 var events = model.inspectedTargetEvents();
695 /** 718 /**
696 * @param {number} startTime 719 * @param {number} startTime
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 return result; 835 return result;
813 } 836 }
814 837
815 /** 838 /**
816 * @return {!WebInspector.TracingTimelineModel.Filter} 839 * @return {!WebInspector.TracingTimelineModel.Filter}
817 */ 840 */
818 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() 841 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function()
819 { 842 {
820 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); 843 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes());
821 } 844 }
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