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

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

Issue 212953003: TimelinePanel: provide scriptId in FunctionCall event. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: minor change Created 6 years, 8 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/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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 WebInspector.TimelineUIUtils._quadHeight = function(quad) 667 WebInspector.TimelineUIUtils._quadHeight = function(quad)
668 { 668 {
669 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2))); 669 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2)));
670 } 670 }
671 671
672 /** 672 /**
673 * @param {!WebInspector.TimelineModel.Record} record 673 * @param {!WebInspector.TimelineModel.Record} record
674 * @param {!WebInspector.Linkifier} linkifier 674 * @param {!WebInspector.Linkifier} linkifier
675 * @return {?Node} 675 * @return {?Node}
676 */ 676 */
677 WebInspector.TimelineUIUtils.buildDetailsNode = function(record, linkifier) 677 WebInspector.TimelineUIUtils.buildDetailsNode = function(record, linkifier)
pfeldman 2014/04/01 14:24:33 You should pass loadedFromFile as an input param i
678 { 678 {
679 var details; 679 var details;
680 var detailsText; 680 var detailsText;
681 var model = record.model();
681 682
682 switch (record.type) { 683 switch (record.type) {
683 case WebInspector.TimelineModel.RecordType.GCEvent: 684 case WebInspector.TimelineModel.RecordType.GCEvent:
684 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (record.data["usedHeapSizeDelta"])); 685 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (record.data["usedHeapSizeDelta"]));
685 break; 686 break;
686 case WebInspector.TimelineModel.RecordType.TimerFire: 687 case WebInspector.TimelineModel.RecordType.TimerFire:
687 detailsText = record.data["timerId"]; 688 detailsText = record.data["timerId"];
688 break; 689 break;
689 case WebInspector.TimelineModel.RecordType.FunctionCall: 690 case WebInspector.TimelineModel.RecordType.FunctionCall:
690 if (record.scriptName) 691 details = linkifyLocation(record.scriptId, record.scriptName, record.scr iptLine, 0);
691 details = linkifyLocation(record.scriptName, record.scriptLine, 0);
692 break; 692 break;
693 case WebInspector.TimelineModel.RecordType.FireAnimationFrame: 693 case WebInspector.TimelineModel.RecordType.FireAnimationFrame:
694 detailsText = record.data["id"]; 694 detailsText = record.data["id"];
695 break; 695 break;
696 case WebInspector.TimelineModel.RecordType.EventDispatch: 696 case WebInspector.TimelineModel.RecordType.EventDispatch:
697 detailsText = record.data ? record.data["type"] : null; 697 detailsText = record.data ? record.data["type"] : null;
698 break; 698 break;
699 case WebInspector.TimelineModel.RecordType.Paint: 699 case WebInspector.TimelineModel.RecordType.Paint:
700 var width = record.data.clip ? WebInspector.TimelineUIUtils._quadWidth(r ecord.data.clip) : record.data.width; 700 var width = record.data.clip ? WebInspector.TimelineUIUtils._quadWidth(r ecord.data.clip) : record.data.width;
701 var height = record.data.clip ? WebInspector.TimelineUIUtils._quadHeight (record.data.clip) : record.data.height; 701 var height = record.data.clip ? WebInspector.TimelineUIUtils._quadHeight (record.data.clip) : record.data.height;
702 if (width && height) 702 if (width && height)
703 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); 703 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height);
704 break; 704 break;
705 case WebInspector.TimelineModel.RecordType.TimerInstall: 705 case WebInspector.TimelineModel.RecordType.TimerInstall:
706 case WebInspector.TimelineModel.RecordType.TimerRemove: 706 case WebInspector.TimelineModel.RecordType.TimerRemove:
707 details = linkifyTopCallFrame(); 707 details = linkifyTopCallFrame();
708 detailsText = record.data["timerId"]; 708 detailsText = record.data["timerId"];
709 break; 709 break;
710 case WebInspector.TimelineModel.RecordType.RequestAnimationFrame: 710 case WebInspector.TimelineModel.RecordType.RequestAnimationFrame:
711 case WebInspector.TimelineModel.RecordType.CancelAnimationFrame: 711 case WebInspector.TimelineModel.RecordType.CancelAnimationFrame:
712 details = linkifyTopCallFrame(); 712 details = linkifyTopCallFrame();
713 detailsText = record.data["id"]; 713 detailsText = record.data["id"];
714 break; 714 break;
715 case WebInspector.TimelineModel.RecordType.ParseHTML: 715 case WebInspector.TimelineModel.RecordType.ParseHTML:
716 case WebInspector.TimelineModel.RecordType.RecalculateStyles: 716 case WebInspector.TimelineModel.RecordType.RecalculateStyles:
717 details = linkifyTopCallFrame(); 717 details = linkifyTopCallFrame();
718 break; 718 break;
719 case WebInspector.TimelineModel.RecordType.EvaluateScript: 719 case WebInspector.TimelineModel.RecordType.EvaluateScript:
720 details = record.url ? linkifyLocation(record.url, record.data["lineNumb er"], 0) : null; 720 details = linkifyLocation("", record.url, record.data["lineNumber"], 0);
721 break; 721 break;
722 case WebInspector.TimelineModel.RecordType.XHRReadyStateChange: 722 case WebInspector.TimelineModel.RecordType.XHRReadyStateChange:
723 case WebInspector.TimelineModel.RecordType.XHRLoad: 723 case WebInspector.TimelineModel.RecordType.XHRLoad:
724 case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest: 724 case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest:
725 case WebInspector.TimelineModel.RecordType.ResourceSendRequest: 725 case WebInspector.TimelineModel.RecordType.ResourceSendRequest:
726 case WebInspector.TimelineModel.RecordType.ResourceReceivedData: 726 case WebInspector.TimelineModel.RecordType.ResourceReceivedData:
727 case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse: 727 case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse:
728 case WebInspector.TimelineModel.RecordType.ResourceFinish: 728 case WebInspector.TimelineModel.RecordType.ResourceFinish:
729 case WebInspector.TimelineModel.RecordType.DecodeImage: 729 case WebInspector.TimelineModel.RecordType.DecodeImage:
730 case WebInspector.TimelineModel.RecordType.ResizeImage: 730 case WebInspector.TimelineModel.RecordType.ResizeImage:
731 detailsText = WebInspector.displayNameForURL(record.url); 731 detailsText = WebInspector.displayNameForURL(record.url);
732 break; 732 break;
733 case WebInspector.TimelineModel.RecordType.ConsoleTime: 733 case WebInspector.TimelineModel.RecordType.ConsoleTime:
734 detailsText = record.data["message"]; 734 detailsText = record.data["message"];
735 break; 735 break;
736 case WebInspector.TimelineModel.RecordType.EmbedderCallback: 736 case WebInspector.TimelineModel.RecordType.EmbedderCallback:
737 detailsText = record.data["callbackName"]; 737 detailsText = record.data["callbackName"];
738 break; 738 break;
739 default: 739 default:
740 details = record.scriptName ? linkifyLocation(record.scriptName, record. scriptLine, 0) : linkifyTopCallFrame(); 740 details = linkifyTopCallFrame();
741 break; 741 break;
742 } 742 }
743 743
744 if (!details && detailsText) 744 if (!details && detailsText)
745 details = document.createTextNode(detailsText); 745 details = document.createTextNode(detailsText);
746 return details; 746 return details;
747 747
748 /** 748 /**
749 * @param {string} scriptId
749 * @param {string} url 750 * @param {string} url
750 * @param {number} lineNumber 751 * @param {number} lineNumber
751 * @param {number=} columnNumber 752 * @param {number=} columnNumber
752 */ 753 */
753 function linkifyLocation(url, lineNumber, columnNumber) 754 function linkifyLocation(scriptId, url, lineNumber, columnNumber)
754 { 755 {
756 if (!model.loadedFromFile() && scriptId) {
757 var location = new WebInspector.DebuggerModel.Location(scriptId, lin eNumber, columnNumber || 0);
758 return linkifier.linkifyRawLocation(location, "timeline-details");
759 }
760
761 if (!url)
762 return null;
763
755 // FIXME(62725): stack trace line/column numbers are one-based. 764 // FIXME(62725): stack trace line/column numbers are one-based.
756 columnNumber = columnNumber ? columnNumber - 1 : 0; 765 columnNumber = columnNumber ? columnNumber - 1 : 0;
757 return linkifier.linkifyLocation(url, lineNumber - 1, columnNumber, "tim eline-details"); 766 return linkifier.linkifyLocation(url, lineNumber - 1, columnNumber, "tim eline-details");
758 } 767 }
759 768
760 /** 769 /**
761 * @param {!ConsoleAgent.CallFrame} callFrame 770 * @param {!ConsoleAgent.CallFrame} callFrame
762 */ 771 */
763 function linkifyCallFrame(callFrame) 772 function linkifyCallFrame(callFrame)
764 { 773 {
765 return linkifyLocation(callFrame.url, callFrame.lineNumber, callFrame.co lumnNumber); 774 return linkifyLocation(callFrame.scriptId, callFrame.url, callFrame.line Number, callFrame.columnNumber);
766 } 775 }
767 776
768 /** 777 /**
769 * @return {?Element} 778 * @return {?Element}
770 */ 779 */
771 function linkifyTopCallFrame() 780 function linkifyTopCallFrame()
772 { 781 {
773 if (record.stackTrace) 782 if (record.stackTrace)
774 return linkifyCallFrame(record.stackTrace[0]); 783 return linkifyCallFrame(record.stackTrace[0]);
775 if (record.callSiteStackTrace) 784 if (record.callSiteStackTrace)
776 return linkifyCallFrame(record.callSiteStackTrace[0]); 785 return linkifyCallFrame(record.callSiteStackTrace[0]);
777 return null; 786 return null;
778 } 787 }
779
780 /**
781 * @return {?Element}
782 */
783 function linkifyScriptLocation()
784 {
785 return record.scriptName ? linkifyLocation(record.scriptName, record.scr iptLine, 0) : null;
786 }
787 } 788 }
788 789
789 /** 790 /**
790 * @constructor 791 * @constructor
791 * @extends {WebInspector.Object} 792 * @extends {WebInspector.Object}
792 * @param {string} name 793 * @param {string} name
793 * @param {string} title 794 * @param {string} title
794 * @param {number} overviewStripGroupIndex 795 * @param {number} overviewStripGroupIndex
795 * @param {string} borderColor 796 * @param {string} borderColor
796 * @param {string} backgroundColor 797 * @param {string} backgroundColor
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 for (var i = 0; i < stackTrace.length; ++i) { 965 for (var i = 0; i < stackTrace.length; ++i) {
965 var stackFrame = stackTrace[i]; 966 var stackFrame = stackTrace[i];
966 var row = stackTraceElement.createChild("div"); 967 var row = stackTraceElement.createChild("div");
967 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); 968 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)"));
968 row.createTextChild(" @ "); 969 row.createTextChild(" @ ");
969 var urlElement = this._linkifier.linkifyLocation(stackFrame.url, sta ckFrame.lineNumber - 1); 970 var urlElement = this._linkifier.linkifyLocation(stackFrame.url, sta ckFrame.lineNumber - 1);
970 row.appendChild(urlElement); 971 row.appendChild(urlElement);
971 } 972 }
972 } 973 }
973 } 974 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/TimelineModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698